Я пытался создать загрузочный компакт-диск с xorriso
, используя пользовательский файл boot.catalog
, чтобы - это было моей целью - указать LBA, в которую должен быть помещен мой загрузочный сектор. Однако опция xorriso
-eltorito-catalog
, похоже, не использует мой пользовательский boot.catalog
, вместо этого он создает новый каталог, который затем помещается в окончательный ISO-образ.
Мой пользовательский boot.catalog
выглядит вот так (сокращенно, остальные очищены):
$ xxd boot.catalog | head -n 8
00000000: 0100 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 aa55 55aa .............UU.
00000020: 8800 0000 0000 0400 2000 0000 0000 0000 ........ .......
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
[...]
Насколько я понимаю, DWORD
в 0x00000028
(2000 0000
, LBA 32) используется для размещения загрузочного образа на указанном LBA в загрузочном компакт-диске. Я использую следующую команду для создания нового загрузочного образа ISO:
$ xorriso -as mkisofs -iso-level 3 -full-iso9660-filenames -eltorito-boot bootimg.bin -eltorito-catalog boot.catalog -no-emul-boot -boot-load-size 4 -boot-info-table -o test2.iso build
Полученный образ ISO выглядит следующим образом:
$ isoinfo -i test2.iso -l -s
Directory listing of /
d--------- 0 0 0 1 Mar 17 2020 [ 19 02] .
d--------- 0 0 0 1 Mar 17 2020 [ 19 02] ..
---------- 0 0 0 1 Mar 17 2020 [ 33 00] boot.catalog;1
---------- 0 0 0 1 Mar 17 2020 [ 34 00] bootimg.bin;1
---------- 0 0 0 1 Mar 17 2020 [ 35 00] bootstrap.bin;1
Как видите, загрузка bootimg.bin
изображение находится на LBA 34 (вместо 32, как написано в моем boot.catalog
). Кроме того, извлечение и выгрузка boot.catalog
из полученного ISO дает мне:
$ xxd boot.catalog | head -n 8
00000000: 0100 0000 0000 0000 0000 0000 0000 0000 ................
00000010: 0000 0000 0000 0000 0000 0000 aa55 55aa .............UU.
00000020: 8800 0000 0000 0400 2200 0000 0000 0000 ........".......
00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
[...]
Мой вопрос, в зависимости от моего понимания: почему образ загрузки находится в другом секторе (и почему мой boot.catalog
заменяется новым, другим)?
Если мое понимание опции -eltorito-catalog
неверно: есть ли способ указать xorriso
, с чего начать запись файлов в образе ISO? Есть ли способы указать xorriso
, куда поместить файлы на компакт-диске?