GRUB のルートファイルシステムの場所として ISO を指定するにはどうすればいいですか?

GRUB のルートファイルシステムの場所として ISO を指定するにはどうすればいいですか?

私はDebianを理解しようとしています「ハードディスクから起動」導入手引き。

手順は以下のとおりです。インストーラー付きのkernel imageramdisk initrd、 をISOハードドライブにコピーし、カーネルとramdiskを起動するようにGRUBを設定しますが、カーネルがルートをそこに移動できるように、ルートファイルシステムがどこにあるか(ISOにあるはずです)をGRUBに伝える必要があります。しかし、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 が検出され、ループマウントされる必要があります。

関連情報