Я пытаюсь понять 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.