Назад | Перейти на главную страницу

Модифицирует ли `mkisofs` загрузочный образ и / или загрузочный каталог?

Я играл с Kickstart на RHEL 6.2, и это включает в себя повторное освоение установочного ISO. Но я заметил кое-что странное. Если я один раз введу следующую команду (где diskFiles это каталог, в котором я хранил файлы DVD) ...

mkisofs -o file.iso -b isolinux/isolinux.img -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T diskFiles/

... Я не могу снова создать рабочий ISO, если не использую новую копию файлов DVD. Ошибки могут варьироваться от изолинукса, который не загружается, до Anaconda, не находящего установочного образа RHEL. Итак, вот мои вопросы:

  1. Являются ли isolinux файлы в моем diskFiles каталог изменяется при создании ISO?
  2. Если да, то какие файлы мне следует заменять, когда я пытаюсь создать другой ISO? Я знаю, что копирование всего DVD еще раз работает, но это кажется ненужным.
  3. Если нет, могу ли я что-то упустить в процессе, чтобы объяснить это?

По сути, мой вопрос таков: как mkisofs делает свое волшебство, и что он делает с загрузочным образом в процессе?

1) Если файлы в diskFiles каталог изменяется, тогда это будет отображаться с помощью простых инструментов, таких как ls. Если у вас много файлов и / или подкаталогов, тогда найти твой друг.

2) Rsync из резервной копии DVD будет намного быстрее. Я не рекомендую это, потому что это обходной путь. Почти всегда лучше найти причину проблемы. Однако я понимаю, что иногда требуется обходной путь, чтобы добиться цели. СЕЙЧАС. Мой опыт показывает, что эти обходные пути остаются в силе навсегда, поэтому по возможности лучше их избегать.

(пропущу пункт 3, потому что у меня нет на него ответа).

Чтобы добавить к ответу, который я принял, у меня был простой способ выяснить это - сгенерировать контрольную сумму MD5! (да.)

md5sum diskFiles/isolinux/isolinux.bin

Если бы вы запускали эту команду до и после вызова mkisofs, вы увидите, что файл действительно меняется по следующей причине (спасибо @Hennes):

-boot-info-table Указывает, что 56-байтовая таблица с информацией о структуре компакт-диска будет исправлена ​​по смещению 8 в загрузочном файле. Если задана эта опция, загрузочный файл изменяется в исходной файловой системе, поэтому обязательно сделайте копию, если этот файл не может быть легко регенерирован!

Чтобы преодолеть это, я использую следующую команду:

rsync -rv /home/derp/diskBackup/isolinux diskFiles/isolinux

В rsync команда очень похожа на cp, только намного умнее и гибче. Использование этой команды "очистит" файлы образа загрузки в исходной файловой системе, так что mkisofs может исправить 56-байтовую таблицу снова, не повреждая файл isolinux.

Вероятно, я мог бы сделать это для всего содержимого DVD, но мне было лень снова скопировать все с диска, и isolinux это единственный каталог, на который влияет mkisofs. :-)