web-dev-qa-db-ja.com

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

Debianを理解しようとしています "ハードディスクからの起動" インストールマニュアル。

プロセスは次のとおりです。インストーラーを使用してkernel imageramdisk initrd、およびISOをハードドライブにコピーし、GRUBを開始するように構成します。カーネルとRAMディスクだけでなく、カーネルがルートをピボットできるように、ルートファイルシステム(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ファイルをハードディスクにマウントするのに非常に賢いですか?または、ISOの内容をddに直接マウントする必要がありますか?ハードディスク?Debianはこれについて曖昧です。

5
Boris Burkov

Frostshutzコメントからコピー:

initrd.gz(initramfs)には、busyboxユーザーランドとその目的のために作成されたDebianスクリプトが含まれています。 GRUB2はISOを直接ループマウントすることもサポートしていますが、通常はISO自体からkernel/initrdを取得するためだけであり、それが再度ロードされると、カーネル/ initrdによってISOが検出され、ループマウントされる必要があります。

2
Braiam