UEFIを使用してPXE経由でmfsBSDを起動する

UEFIを使用してPXE経由でmfsBSDを起動する

UEFI起動が有効になっているホストからPXEを介してmfsBSD ISOを起動しようとしています。

BIOSブートは非常に簡単な作業です。これを行うためのipxe設定は次のとおりです。

kernel --name freebsd http://pxe.host/memdisk
initrd http://pxe.host/mfsbsd.img
imgargs freebsd harddisk raw
boot

UEFIブート方式はmemdisk方式をサポートせず、mfsBSDを直接起動できる他の方法もないようで、まずGRUB2起動に切り替えました。

kernel --name grub2 http://pxe.host/grub2.efi
boot

そこからmfsBSD ISOを起動しようとしていますgrub.cfg

insmod efinet
insmod tftp
insmod loopback
insmod iso9660
insmod ufs2
insmod part_msdos
insmod gfxterm
insmod vbe

menuentry "mfs12.1.iso" {
  set isofile=(tftp)/mfs12.1.iso
  loopback loop $isofile
  echo "ISO mounted"
  set root=(loop)
  kfreebsd /boot/kernel/kernel.gz
  echo "kernel loaded"
  kfreebsd_loadenv /boot/device.hints
  kfreebsd_module /boot/kernel/ahci.ko
  echo "ahci.ko loaded"
  kfreebsd_module /mfsroot.gz type=mfs_root
  set kFreeBSD.vfs.root.mountfrom="ufs:/dev/md0"
  echo "set kFreeBSD.vfs.root.mountfrom"
  set kFreeBSD.mfs_type="mfs_root"
  echo "set kFreeBSD.mfs_type"
  set kFreeBSD.mfs_name="/mfsroot"
  echo "set kFreeBSD.mfs_name"
  set kFreeBSD.mfsbsd.autodhcp="YES"
  echo "set kFreeBSD.mfsbsd.autodhcp"
}

残念ながら、すべての起動は画面上の情報なしで中断されます。 mfsBSDを起動

kFreeBSD.vfs.root.mountfrom結果なしで変更を試み、"cd9660:/dev/md0"別のバージョンのmfsBSDを試して、このソリューションを使用してEFIサポートISOを構築しました。https://github.com/mmatuska/mfsbsd/pull/100

この設定で何か抜けましたか?どんな助けでも本当に感謝します。

ベストアンサー1

物事がうまくいかないのは確かですか?ネットワーク経由で接続してみましたか?

見たらGRUBマニュアル検索してみると、amd64 EFIヘッドレスブートのみサポートしていることがわかります。あなたのスクリーンショットを通して可能これでシステムが正常に起動しました。ただし、画面にコンソール出力が表示されるとは思わないでください。

独自のmfsBSDバージョンを構築したり、ISOイメージにパッチを適用したりする場合は、nullconsole次の設定を試してみてください。comconsole/boot/loader.conf

console=nullconsole

...コンソールなし - または使用シリアルコンソール使用

console=comconsole

それとも見てください2.12 高度な設置ガイド

すべてがユーザーのために作られているので、mfsBSDの使いやすさを理解しています。しかし、Grubを完全にスキップしてFreeBSDで直接起動することは、実際にはそれほど難しくありません。唯一の迷惑は、始めるにはどこかでNFSを実行する必要があるということです。

文書を見ると31.8。 PXEを使用したディスクレス操作- DHCP サーバーの構成例を表示できます。 UEFIブートのためにこれを変更するのは簡単です。

# path of boot loader obtained via tftp
filename "loader.efi";

# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/tftproot/FreeBSD/" ;

/boot/loader.efiしたがって、FreeBSDをTFTPサーバーにコピーすると、すぐに正しいローダーで起動します。ネットワーク経由でNFSを介してカーネルをインポートするAFAIKloader.efiはまだサポートされています。pxeboot(8)これはTFTPを使用してさらに達成できます。しかし、NFSがあれば設定はとても簡単です。これについてもっと読むことができます。ディスクレス(8)

デフォルトでは、一般的なNFSルートディレクトリが提供されています。しかし、能力があれば、ストレージディスクで作業することはまったく難しくありません。17.9。メモリディスクそしてマルチファイルシステム(8)mdmfsサポートによってgeom_uzip必要に応じて簡単に変更できる美しい画像を含めることができます。

今後の道については、すでに仕事を始めました。UEFI HTTP ブートサポートNFSの代わりにHTTP経由でサービスを提供したい場合は、操作が簡素化されます。しかし、これはまだ新しくて光沢があります。

持つその他のレポートUEFI、Grub、および mfsBSD を使用して実行中の設定と同じ問題が発生しました。

再:私はmfsBSDイメージの使いやすさを理解しています。私は代わりの道があることを示したかっただけです。運が良ければ、Grubの経験がより多くの人がより良い答えを提供することができます。

おすすめ記事