Изменяет ли `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. Ошибки могут варьироваться от isolinux, не загружающегося до Anaconda, не находящей установочный образ RHEL. Итак, вот мои вопросы:

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

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

2 ответа

Решение

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,:-)

Другие вопросы по тегам