如何指定 ISO 作为 GRUB 根文件系统的位置?

如何指定 ISO 作为 GRUB 根文件系统的位置?

我正在尝试了解 Debian“从硬盘启动”安装手册。

过程如下:我将 a kernel image、 aramdisk initrdISOwith 安装程序复制到硬盘驱动器,然后配置 GRUB 来启动内核和 ramdisk,而且我还必须告诉 GRUB,根文件系统在哪里(它应该位于ISO),以便内核可以将 root 转向它。但是debian 提供的 grub 配置似乎将整个硬盘驱动器指定为根文件系统,而不是其中的 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 文件挂载在硬盘上作为根文件系统,而不是整个硬盘?或者我必须将ddISO 的内容直接复制到硬盘上吗? Debian 对此含糊其辞。

答案1

复制自frostshutz评论:

initrd.gz (initramfs) 包含 busybox 用户区和为此目的编写的 Debian 脚本。 GRUB2 还支持直接循环安装 ISO,但通常只是从 ISO 本身获取内核/initrd,一旦再次加载,内核/initrd 必须找到 ISO 并循环安装。

相关内容