For the complete documentation index, see llms.txt. This page is also available as Markdown.

gptzfsboot(8)

gptzfsboot — 用于基于 BIOS 的计算机上从 ZFS 启动的 GPT 引导代码

名称

gptzfsboot

描述

gptzfsboot 用于在基于 BIOS 的计算机上从 ZFS 存储池中的文件系统引导系统。gptzfsboot 通过 gpart(8) 安装到 GPT 分区磁盘的 freebsd-boot 分区中。

实现说明

GPT 标准允许可变数量的分区,但 gptzfsboot 只能从包含 128 个或更少分区的分区表引导。

引导

gptzfsboot 会尝试查找所有由 BIOS 可见的硬盘或其上的分区所组成的 ZFS 存储池。gptzfsboot 会在所有可见磁盘以及已发现的受支持分区中(针对所有受支持的分区方案类型)查找 ZFS 设备标签。搜索从加载 gptzfsboot 自身的磁盘开始。其他磁盘按 BIOS 定义的顺序进行探测。在对磁盘进行探测后,如果 gptzfsboot 确定整盘不是 ZFS 存储池的成员,则会按分区表中的顺序逐一探测各分区。目前支持 GPT 和 MBR 分区方案。对于 GPT 方案,仅探测 freebsd-zfs 类型的分区。在探测过程中看到的第一个存储池将作为默认引导存储池。

由存储池的 bootfs 属性指定的文件系统作为默认引导文件系统。如果未设置 bootfs 属性,则使用该存储池的根文件系统作为默认值。从引导文件系统加载 loader(8)。如果引导文件系统中存在 /boot.config/boot/config,则从中读取引导选项,方式与 boot(8) 相同。

第一个成功探测到的设备以及第一个检测到的存储池的 ZFS GUID 会通过 vfs.zfs.boot.primary_vdevvfs.zfs.boot.primary_pool 变量提供给 loader(8)

用法

通常 gptzfsboot 会以完全自动的模式引导。但与 boot(8) 一样,可以中断自动引导过程,并通过提示符与 gptzfsboot 交互。gptzfsboot 接受 boot(8) 支持的所有选项。

文件系统规范和 loader(8) 的路径与 boot(8) 不同。其格式为

[[zfs:pool/filesystem:][/path/to/loader]]

文件系统和路径都可以指定。如果仅指定路径,则使用默认文件系统。如果仅指定存储池和文件系统,则使用 /boot/loader 作为路径。

此外,可以使用 status 命令查询有关已发现存储池的信息。输出格式与 zpool status(参见 zpool(8))类似。

已配置或自动确定的 ZFS 引导文件系统会存储在 loader(8)loaddev 变量中,并同时设置为 currdev 变量的初始值。

文件

/boot/gptzfsboot 引导代码二进制文件

/boot.config 引导块参数(可选)

/boot/config 引导块的替代参数(可选)

实例

gptzfsboot 通常与“保护性 MBR”(参见 gpart(8))配合安装。要在 ada0 驱动器上安装 gptzfsboot

也可以不带 PMBR 安装 gptzfsboot

参见

boot.config(5), boot(8), gpart(8), loader(8), zpool(8)

历史

gptzfsboot 出现于 FreeBSD 7.3。

作者

本手册页由 Andriy Gapon avg@FreeBSD.org 编写。

缺陷

gptzfsboot 仅在 MBR 分区(在 FreeBSD 中称为 slice)中查找 ZFS 元数据。它不会查看传统上称为 partition 的 BSD disklabel(8) 分区。如果某个 disklabel 分区恰好被放置在使得 ZFS 元数据可在相对于 slice 的固定偏移处找到的位置,那么 gptzfsboot 会将该分区识别为 ZFS 存储池的一部分,但这并不保证一定会发生。

最后更新于

这有帮助吗?