ZFSのインストール時にFreeBSD用のGRUBエントリをどのように作成しますか?

ZFSのインストール時にFreeBSD用のGRUBエントリをどのように作成しますか?

明らかに、私が望むのは、BIOSファームウェア(UEFIではない)を使用してZFS(名前:zroot)からFreeBSDを起動できるFreeBSD GRUB2エントリです。役に立つ場合は、GRUBからインストールされるオペレーティングシステムはArch Linuxであり、Archはext4ルートを使用し、FreeBSDはZFSを使用します。

私のパーティションテーブルは(GPT)です:

/dev/sda1 - BIOS boot (1M) 
/dev/sda2 - Linux swap (4G) 
/dev/sda3 - Linux filesystem (ext4, 50G) 
/dev/sda4 - FreeBSD boot (128k) 
/dev/sda5 - FreeBSD ZFS filesystem (74G)

私は見たこの回答しかし、それはUFSルートのFreeBSDに関連しています。この回答ZFSのFreeBSDではなく、ZFSのArch Linuxで動作します。

私はこのアイテムを試しました:

menuentry "FreeBSD" --class freebsd --class bsd --class os {
    insmod zfs
    insmod bsd
    set root=(hd0,4)
    kfreebsd /boot/kernel/kernel
    kfreebsd_loadenv /boot/device.hints
    set kFreeBSD.vfs.root.mountfrom="zfs:zroot"
    set kFreeBSD.vfs.root.mountfrom.options=rw
    set kFreeBSD.hw.psm.synaptics_support=1
}

しかし、次のエラーが発生しました。

ここに画像の説明を入力してください。

FreeBSDのブートローダを使用して(悲しいことに、GRUBをディスクにインストールして上書きしましたが、復元は簡単でした)FreeBSDのインストールを正常に起動したので、問題はありませんでした。 FreeBSDをインストールし、このディレクトリに入れた内容に従って起動するように設定しました。https://github.com/fusion809/freebsd-scripts/tree/master/zfs-manual-install

ベストアンサー1

大丈夫です、答えを見つけました、ありがとう。FreeBSDフォーラム。これが私のgrub.cfgに必要なものです:

menuentry "FreeBSD" --class freebsd --class bsd --class os {
    insmod zfs
    insmod bsd
    search -s -l zroot
    kfreebsd /@/boot/zfsloader
    kfreebsd_loadenv /@/boot/device.hints
}

確かに、私はこれをうまく試してみて、読み取り専用でないことを確認するためにファイルを作成し、再起動を試み、ファイルがまだ存在し、再起動のために何も変更されていないことを確認しました。権限も変更されていません))。

おすすめ記事