Этот оператор отключает первые 3 символа переменной TEMP и присваивает остальные переменной VAR.
Я уже использовал Мастер ISO для добавления файлов в ISO. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
Я уже использовал Мастер ISO для добавления файлов в ISO. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
Я уже использовал Мастер ISO для добавления файлов в ISO. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
Я уже использовал Мастер ISO для добавления файлов в ISO. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
Я использовал Мастер ISO для добавления файлов в ISO до этого. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
[!d3]
Я использовал Мастер ISO для добавления файлов в ISO до этого. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
[!d3]
Я использовал Мастер ISO для добавления файлов в ISO до этого. Он подходит для того, что вам нужно, потому что он сохраняет состояние того, является ли ISO загрузочным. Я использовал его в прошлом, чтобы добавить другой контент (например, музыку) на живой диск. Обратите внимание, однако, что после внесения изменений в файл ISO вы можете только «Сохранить как», то есть будет создан другой файл ISO, поэтому убедитесь, что у вас достаточно свободного места на диске.
[!d3]
Общий ответ на этот вопрос - распаковать файл iso, изменить его и снова упаковать. Похоже, что «Мастер ISO», как упоминается в ответе dv3500ea, является хорошим интерфейсом для этого.
Если:
Тогда этот ответ для вас!
Итак, мы заменим существующий файл в файловой системе isofs на наш желаемый файл. Наш желаемый файл должен быть меньше, чем существующий (целевой) файл, а конечный пробел (или мусор) должен быть приемлемым. Это фактически требует только двух команд, но будьте осторожны: опечатка может полностью уничтожить целевую файловую систему или даже перезаписать исходный файл. Резервные копии - ваш друг!
В моем случае я хотел сохранить скрипт в реальном времени, поэтому мне не нужно его повторять каждый раз. Сценарий находится в script.py
, а моя цель (USB-накопитель) находится на /dev/sdc
. Размер скрипта составляет 202 байта, поэтому наш первый шаг - найти файл размером более 202 байта, чтобы мы могли его перезаписать. После установки в /mnt
я нашел подходящий файл в /mnt/info.txt
.
Мы не можем просто перезаписать info.txt
на точке монтирования, он будет жаловаться, что это файловая система только для чтения. Однако мы корень, поэтому давайте покажем им, что это значит! Нам нужно выяснить, где info.txt
находится в файловой системе. Найдите некоторую строку, которая (вероятно) уникальна для info.txt
, например This is the official distribution CD of X.
, и найдите ее на диске:
$ sudo strings -a -t d /dev/sdc | grep 'CD of X.'
2573588480 This is the official distribution CD of X. See INSTALL for how to [...]
В качестве альтернативы это также можно сделать с помощью grep, который намного быстрее, но тогда вам нужно указать его с самого начала: $ sudo grep -oba 'This is ...' /dev/sdc
.
Теперь, когда мы знаем, где это, нам просто нужно заменить эти байты нашим файлом:
$ sudo dd if=script.py of=/dev/sdc conv=notrunc bs=1 seek=2573588480 count=202
Эта строка:
if
) в выходной файл (of
), и ему все равно, что выходной файл на самом деле устройство, потому что «все это файл». conv=notrunc
говорит, что он не усекает выходной файл, потому что мы хотим только перезаписать несколько байтов, а не переписывать файл с определенной точки дальше. bs=1
устанавливает размер блока равным 1. Обычно вам нужен размер блока 4k или выше, но это позволяет избежать необходимости делать (встроенную) математику и позволяет указать точное местоположение для байта. seek=N
ищет определенную точку в выходном файле (обратите внимание, что seek=N
отличается от skip=N
, потому что skip
пропускает байты из входного файла!). Мы установили его, конечно, где целевой текст. count=N
копирует только это много байтов. Я думаю, что это можно опустить, потому что он увидит конец входного файла, но я оставил его, чтобы быть уверенным. И воела, файл перезаписан!
Но подождите, целевой файл был больше, чем наш скрипт, поэтому на USB-накопителе файл теперь выглядит примерно так: «while do if run () blah; blah (); yright 2007 X Inc.». Есть хвостовой мусор. Два способа исправить это: сделать наш входной файл более длинным (добавить пробелы) или добавить символ комментария в конце. Обратите внимание, что многие редакторы добавляют новую строку в конце, поэтому вы можете установить count=
на N-1
байты (если ваш файл теперь составляет 203 байта, и вы заметили, что последний байт является новой линией, установите значение 202) , Вы можете проверить файл для строк новой строки с помощью xxd script.py | tail
и проверить, является ли последний байт 0a
(или в странных случаях 0d
).
Процесс идентичен для параметра .iso
файл, просто мысленно замените /dev/sdc
на your.iso
.
Обратите внимание, что когда вы проверяете цель на своей точке монтирования, чтобы увидеть, сработала ли она, вам может понадобиться снова использовать strings
(на этот раз поиск ваш скрипт), поскольку файл, вероятно, все еще находится в кэше чтения.