loopback コマンドを介して、GRUB2はISOファイルを直接起動できます。
これで、PC-BSDを起動するようにmenuentryを構成しましたLive DVD ISOですが、それを起動すると、FreeBSD bootstrapローダー出力:
can't load 'kernel'
これが私が現在使用しているGRUB2メニューエントリです:
menuentry "PC-BSD" {
search --no-floppy --fs-uuid --set root 0d11c28a-7186-43b9-ae33-b4bd351c60ad
loopback loop /PCBSD9.0-RC1-x64-DVD-live.iso
kfreebsd (loop)/boot/loader
}
PC-BSDライブシステムを起動できるようにするために、それをどのように修正する必要があるか知っていますか?
「「カーネル」をロードできません」の後、ローダープロンプトにドロップされます。
ls
コマンドがあるので、カーネルがどこにあるかを確認し、load
、次にboot
でロードできます。
また、kfreebsd (loop)/boot/kernel/kernel
のようなものを試して、カーネルを直接起動することもできます。
編集: このスレッド で指摘されているように、問題は、ある時点で、ブートプロセスがGRUBのループバック機能では不可能な方法でループバックデバイスからルートファイルシステムをマウントしたいということです。 PC-BSDの名前が TrueOS に変更され、USBイメージを提供するようになったことに注意してください。
私はBSDにあまり精通しておらず、Archの マルチブートUSBドライブの記事 でBSDについて何も見つけることができませんが、少なくとも GRUBの記事 には3つの方法があります。ループマウントデバイスに適合した場合に機能するはずです。
埋め込まれたブートレコードのチェーンロード
menuentry 'FreeBSD' { insmod ufs2 set root='hd0,gpt4,bsd1' chainloader +1 }
これは簡単なようで、適切なファイルシステムモジュールをロードするのは良い考えのようですが、光メディアにはISO 9660またはUDFがあり、私の知る限り、ElTorito以外のパーティションはありません。
従来のBSD第2ステージローダーの実行
menuentry 'FreeBSD' { insmod ufs2 set root='(hd0,4)' kfreebsd /boot/loader }
これは、検索を呼び出さずに静的構成として行ったこととほぼ同じです。
カーネルを直接ロードする
menuentry 'FreeBSD' { insmod ufs2 set root='hd0,gpt4,bsd1' ## or 'hd0,msdos4,bsd1', if using an IBM-PC (MS-DOS) style partition table kfreebsd /boot/kernel/kernel kfreebsd_loadenv /boot/device.hints set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s4a set kFreeBSD.vfs.root.mountfrom.options=rw }
それは驚くほど複雑に見えます。私はPC-BSD10.3 isoをダウンロードするのをやめました。うまくいけば、数日以内にUEFIまたはレガシーを介してそれを機能させる方法を理解するためにそれを試してみる時間があります。
イメージにブートローダーをチェーンロードしてみてください。 grub2チェーンロードは次のように機能します。
insmod chain
set root = (hdX,Y)
chainloader +1