Freebsd

從 ZFS 引導時的核心語法是什麼?

  • January 4, 2019

我正在嘗試grub.cfg完全從頭開始編寫一個,它將引導幾個 FreeBSD 系統中的一個從單個 ZFS 池中啟動,該池以一組名為, ,tank的根文件系統命名。root1``root2``root3

當我查看官方 GRUB2 文件時,5.3 中有一個範例

menuentry "FreeBSD" {
         insmod zfs
         search --set=root --label freepool --hint hd0,msdos7
         kfreebsd /freebsd@/boot/kernel/kernel
         kfreebsd_module_elf /freebsd@/boot/kernel/opensolaris.ko
         kfreebsd_module_elf /freebsd@/boot/kernel/zfs.ko
         kfreebsd_module /freebsd@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
         set kFreeBSD.vfs.root.mountfrom=zfs:freepool/freebsd
         set kFreeBSD.hw.psm.synaptics_support=1
}

我認為這freepool很可能是我將替換為的 ZFS 池名稱tank。我懷疑語法是x@y引用由. 然後我會用. 可悲的是,語法沒有記錄,我不想只是嘗試交叉手指,而是理解並知道我在做什麼。任何人都可以闡明這一點嗎?y``x``search``/root1@/boot/kernel/kernel``x@y

沒錯,@ 之前的任何內容都是帶有 / 前綴的 ZFS 數據集名稱(又名文件系統名稱)。例如/boot/kernel/kernel,文件系統中的文件zroot/ROOT/freebsd-10可以/zroot/ROOT/freebsd-10@/boot/kernel/kernel在 GRUB 中引用。

您也可以通過使用 GRUB 命令行來了解這一點(c如果您在 GRUB 菜單中,請按下)。GRUB 2 中的 ZFS 支持支持目錄列表,因此您可以使用ls命令或 TAB 來探索 GRUB 2 中 ZFS 的這種內部結構。

引用自:https://unix.stackexchange.com/questions/115566