Как указать ISO в качестве расположения корневой файловой системы для GRUB?

Как указать ISO в качестве расположения корневой файловой системы для GRUB?

Я пытаюсь понять Debian"загрузка с жесткого диска"инструкция по установке.

Процесс выглядит следующим образом: я копирую kernel image, ramdisk initrdи ISOс установщиком на жесткий диск, а затем настраиваю GRUB для запуска ядра и ramdisk, но также мне нужно указать GRUB, где находится корневая файловая система (она должна быть расположена в ISO), чтобы ядро ​​могло переключиться на нее. НоКонфигурации grub, предоставляемые Debianпохоже, в качестве корневой файловой системы указан весь жесткий диск, а не файл ISO внутри него:

GRUB1:

title  New Install
root   (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz

GRUB2:

menuentry 'New Install' {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz
}

Почему это должно работать? Неужели GRUB настолько умен, что монтирует файл ISO на жесткий диск как корневую файловую систему, а не весь жесткий диск? Или мне нужно скопировать ddсодержимое ISO прямо на жесткий диск? Debian неопределенно отвечает на этот вопрос.

решение1

Скопировано из комментария frostshutz:

initrd.gz (initramfs) содержит пользовательское пространство busybox и скрипты Debian, написанные для этой цели. GRUB2 также поддерживает циклическое монтирование ISO напрямую, но обычно просто для того, чтобы захватить ядро/initrd из самого ISO, и как только он снова загружен, ISO должен быть найден и циклически смонтирован ядром/initrd.

Связанный контент