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

Bor*_*kov 5 boot kernel debian grub2 system-installation

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

过程如下:我将a kernel image、aramdisk initrd和an ISOwith installer拷贝到硬盘,然后配置GRUB启动内核和ramdisk,还要告诉GRUB,根文件系统在哪里(应该位于ISO),这样内核就可以将根转为它。但是debian 提供的 grub 配置似乎将整个硬盘驱动器指定为根文件系统,而不是其中的 ISO 文件:

GRUB1:

title  New Install
root   (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz
Run Code Online (Sandbox Code Playgroud)

GRUB2:

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

为什么会这样?GRUB 将 ISO 文件作为根文件系统挂载在硬盘上,而不是整个硬盘,这么聪明吗?还是我必须将ddISO 的内容直接放到硬盘上?Debian 对此含糊其辞。

Bra*_*iam 3

复制自frostshutz评论:

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