web-dev-qa-db-ja.com

PC-BSDライブDVD-ISOIMAGEをGRUB2経由で直接起動するにはどうすればよいですか?

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ライブシステムを起動できるようにするために、それをどのように修正する必要があるか知っていますか?

8
user569825

「「カーネル」をロードできません」の後、ローダープロンプトにドロップされます。

lsコマンドがあるので、カーネルがどこにあるかを確認し、load、次にbootでロードできます。

また、kfreebsd (loop)/boot/kernel/kernelのようなものを試して、カーネルを直接起動することもできます。

1
arved

編集: このスレッド で指摘されているように、問題は、ある時点で、ブートプロセスが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またはレガシーを介してそれを機能させる方法を理解するためにそれを試してみる時間があります。

0
LiveWireBT

イメージにブートローダーをチェーンロードしてみてください。 grub2チェーンロードは次のように機能します。

insmod chain
set root = (hdX,Y)
chainloader +1
0
allo