web-dev-qa-db-ja.com

ZFSインストールでFreeBSDのGRUBエントリを作成する方法は?

はっきりさせておきたいのは、BIOSファームウェア(UEFIではない)を備えたZFS(名前:zroot)でFreeBSDをブートするFreeBSD GRUB2エントリです。オペレーティングシステムGRUBは、Arch Linuxにインストールされている場合に役立ちます。Archはext4ルートを使用しています。ZFSを使用しているのはFreeBSDです。

私のパーティションテーブルは(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
}

しかし、私はこのエラーを受け取りました:

enter image description here

FreeBSDのブートローダーを使用します(悲しいことにGRUBをインストールすることで上書きしましたが、復元するのは簡単です)。そして、私がこのディレクトリに置いたものに従ってブートするように設定します: https://github.com/fusion809/freebsd-scripts/tree/master/zfs-manual-install

3
BH2017

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
}

明確に言うと、これを成功させました。ファイルを書き込んで再起動して、それが読み取り専用ではないことを確認しました。ファイルはまだそこにあり、再起動によって変更されていませんでした(権限さえもありません) )。

3
BH2017