Я играл с 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. Итак, вот мои вопросы:
isolinux
файлы в моем diskFiles
каталог изменяется при создании ISO?По сути, мой вопрос таков: как 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
. :-)