Пожалуйста, подскажите, что я делаю неправильно или упускаю. (Причина, по которой мне нужно создать загрузочный
ISO, заключается в том, что приложение, которое я использую, основано на старой версии Debian и предоставляет .img
, содержащий vmlinuz, initrd и корневую файловую систему, включая двоичные файлы приложения. Мне нужно
создать ISO для развертывания приложения в облаке в качестве облачного экземпляра)
Я выполняю двухэтапный процесс:
Шаг 1: grub-mkrescue
Код: Выделить всё
sudo grub-mkrescue --modules ="part_msdos, part_gpt, gzio, ext2, iso9660" -o final.iso -d img0
Шаг 2: xorriso
Код: Выделить всё
sudo xorriso -as mkisofs -c boot.catalog -volid "MY_CUSTOM_LINUX" -eltorito-boot boot/grub/i386-pc/eltorito.img -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -partition-offset -append_partition 2 0x83 disk.img -output final.iso -partition_cycl_align out-combine
disk.img — это раздел ext2, который я создал с намерением использовать его в качестве корневого файла. система.
Проблема, с которой я столкнулся. когда я загружаю ISO в виртуальной машине, grub создает следующие файловые системы:
(hd0), (cd), (cd,msdos2) (cd,msdos1)
Распознается только тип файловой системы для (cd).
Поскольку файловая система (cd,msdos*) не распознается, тип корневой файловой системы неизвестен, grub не может загрузить Linux и initrd . Я не понимаю, почему msdos1 становится разделом cd, а не hd0.
кроме того, когда я запускаю fdisk на полученном ISO-образе, я получаю вывод:
Код: Выделить всё
Device Boot Start End Sectors Size Id Type
final.iso1 * 64 61439 61376 30M 17 Hidden HPFS/NTFS
final.iso2 61440 2158591 2097152 1G 83 Linux
(hd0), (hd0,msods5), (hd0,msdos1)
(hd0,msdos1) распознается как файловая система ext*.
Я скачал предварительно собранный ISO-образ Debian Linux и загрузил его в Virtual Box для сравнения.
Подробнее здесь: https://stackoverflow.com/questions/787 ... nd-xorriso
Мобильная версия