# 2.2 FreeBSD 15 安装指南（AMD64）

本节聚焦于 FreeBSD 15.0-RELEASE 在 AMD64 架构下的标准化安装流程。以下介绍基于 bsdinstall 安装工具，提供从系统启动到首次登录的完整操作指南。

> **技巧**
>
> 相关视频教程可参考：
>
> * Bilibili. FreeBSD 14.2 基础安装配置教程\[EB/OL]. \[2026-03-25]. <https://www.bilibili.com/video/BV1STExzEEhh>（物理机）
> * Bilibili. 002-VMware17 安装 FreeBSD 14.2\[EB/OL]. \[2026-03-25]. <https://www.bilibili.com/video/BV1gji2YLEoC>（虚拟机）

以下安装说明基于 `FreeBSD-15.0-RELEASE-amd64-disc1.iso`。`-dvd1.iso` 和 `-memstick.img` 的安装流程与之类似。

> **注意**
>
> 本节基于 VMware Workstation Pro 17 进行演示（使用 UEFI），在 25H2u1 版本测试通过。
>
> 若为物理机安装，可考虑使用 Rufus <https://rufus.ie/zh/> 工具配合 <https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/15.0/FreeBSD-15.0-RELEASE-amd64-memstick.img> 镜像使用。该文件为 FreeBSD 15.0-RELEASE amd64 架构的 U 盘安装镜像。

## 启动安装盘

完成前期准备后，从安装盘启动系统，进入系统安装程序。

![启动界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-4f463af2cfaef70d90d457ec3d22da51ba93adc5%2F15-0-1.png?alt=media)

在此界面无需任何操作，等待十秒可自动进入 `1. Boot Installer [Enter]`；也可直接按 **回车键** 进入。

若按下任意其他键将暂停启动流程，此时可按数字键继续，或按 **ESC** 键进入 **OK 提示符**。

![OK 提示符](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6880383561ad4b52e639f90c71ae3330cbfc9518%2Fins111.png?alt=media)

在此界面输入 `menu` 并按 **回车键** 可返回主菜单。输入 `?` 可查看所有可用命令。

操作方式：按选项开头的数字键选定。`on` 表示已开启，`off` 表示已关闭。

| 选项                           | 解释                                                                                                    |
| ---------------------------- | ----------------------------------------------------------------------------------------------------- |
| `1. Boot Installer [Enter]`  | 用于安装系统                                                                                                |
| `2. Boot Single user`        | 单用户模式，用于找回 root 密码或修复磁盘                                                                               |
| `3. Escape to loader prompt` | 退出菜单，进入加载器命令行，输入 `reboot` 并回车可重启系统                                                                    |
| `4. Reboot`                  | 重启                                                                                                    |
| `5. Cons: Video`             | 选择控制台输出模式：视频（`Video`）、串口（`Serial`）、串口优先的双模式（`Dual (Serial primary)`）或视频优先的双模式（`Dual (Video primary)`） |
| `6. kernel (1 of 1)`         | 选择要启动的内核                                                                                              |
| `7. Boot Options`            | 启动选项                                                                                                  |

![启动选项](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3d56fbeea5836a03c719332ee3ed5e410130f9c7%2Fins2.png?alt=media)

| `7. Boot Options`                  | 默认值    | 说明                                                    |
| ---------------------------------- | ------ | ----------------------------------------------------- |
| `1. Back to main menu [Backspace]` | On（开）  | 按 **Backspace** 键可返回上级菜单                              |
| `2. Load System Defaults`          | off（关） | 恢复默认配置                                                |
| `3. ACPI`                          | off（关） | Advanced Configuration and Power Interface（高级配置与电源接口） |
| `4. Safe Mode`                     | off（关） | 安全模式                                                  |
| `5. Single user`                   | off（关） | 单用户模式                                                 |
| `6. Verbose`                       | off（关） | 详细模式，增加更多调试信息输出                                       |

> **警告**
>
> 需要指出，某些教程建议用户关闭 ACPI，这种做法目前已缺乏依据。除非并非 x86 架构，否则现代计算机没有关闭 ACPI 的理由。ACPI 与电源状态管理、设备节能、多处理器支持等功能密切相关。应将该选项视为遗留功能，仅在不支持 UEFI 的旧式计算机上才需考虑。
>
> 若出现 ACPI 报错，亦属正常现象，大多数情况下不会影响正常使用。一般通过更新 BIOS 可解决。在极个别情况下可能需要修补 SSDT（次级系统描述表）和 DSDT（差异化系统描述表），黑苹果（Hackintosh）用户对此应不陌生。

## bsdinstall 安装流程

启动安装盘后，将进入由 `bsdinstall` 工具提供的安装界面。

按回车键或等待十秒，将自动进入以下界面。

![FreeBSD 安装程序的欢迎界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3fa3eb2947ec2ee8a77a0e577e946ebbd0600a67%2Fins3.png?alt=media)

> **技巧**
>
> 此界面由 `bsdinstall` 工具提供。
>
> 本节将指导用户如何使用该工具进行 FreeBSD 安装。该工具不仅存在于安装镜像中，安装完成后在新系统中依然可以找到，并且还可用于执行普通的安装流程（此要点在高级安装方式中具有重要参考价值）。
>
> `bsdinstall` 工具本质上是由一系列 sh 脚本构成的，其源代码位于 FreeBSD Project. freebsd-src/usr.sbin/bsdinstall\[EB/OL]. \[2026-03-25]. <https://github.com/freebsd/freebsd-src/tree/main/usr.sbin/bsdinstall>。该仓库提供 FreeBSD 系统安装工具源代码，脚本位于“scripts”文件夹下。

安装程序显示欢迎菜单：

`欢迎使用 FreeBSD！您希望开始安装，还是使用 Live 系统？`

选中左侧的 `Install` 并按 **回车键** 开始安装；中间的 `Shell` 可进入命令行；右侧的 `Live System` 则为 LiveCD 模式。

> **技巧**
>
> 若无特别说明，以下操作中可使用 **Tab 键** 或 **方向键** 切换选项，按 **回车键** 确认当前高亮选项。

> **技巧**
>
> 请注意界面中选项的红色加粗首字母（例如 `Install`、`Shell`、`Live System` 中的 **I**、**S**、**L**）。直接按下键盘上对应的字母键（不区分大小写）快速选定并进入相应界面。

> **警告**
>
> 在任何步骤按下 **Esc 键** 均 **无法** 返回上一级菜单，而是会直接跳至后续步骤，直至退出或完成安装流程。

## 设定键盘布局

进入安装程序后，首先需要设定键盘布局。

![键盘布局选择](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7d81541f196875d0a01708181474f39608fc6a3e%2Fins4-15.png?alt=media)

`FreeBSD 系统控制台驱动程序默认使用标准 US（美式）键盘布局。可以在下面选择别的键盘布局。`

此为键盘布局菜单，直接按 **回车键** 使用默认的美式（US）键盘布局（目前中国普遍使用美式键盘布局）。

## 设定主机名

设定键盘布局后，接下来需要设置系统主机名。

![设置主机名](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3ddd9334fc5fcc473b8b7676ffc8f3413cbc218d%2Fins5.png?alt=media)

`请选择此机器的主机名。如果正运行在受管理的网络上，请向网络管理员询问合适的名称。`

此步骤用于设置系统主机名。

> **警告**
>
> **请勿** 在此步骤直接按 **回车键**！这将导致主机名为空，进而可能使显示管理器（如 SDDM）无法正常启动。

> **警告**
>
> 官方手册中关于“Amnesiac”的说法有误。若不设置主机名，系统不会自动分配任何值（包括“Amnesiac”），因为 FreeBSD 源代码默认假设将通过 DHCP 获取主机名。根据当前源代码逻辑，使用 DHCP 时不会有空主机名提示；仅当无网络连接时，登录信息中才会显示“Amnesiac”并伴随一条错误提示。

### 参考文献

* FreeBSD Project. Bug 286847: If the hostname is not set for the host, the value "Amnesiac" should be written to rc.conf.\[EB/OL]. \[2026-03-25]. <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286847>. 该 Bug 报告提出空主机名时应写入默认值，该 Bug 报告由笔者发现。
* FreeBSD Project. freebsd-src/libexec/getty/main.c\[EB/OL]. \[2026-03-25]. <https://github.com/freebsd/freebsd-src/blob/80c12959679ab203459dc20eb9ece3a7328b7de5/libexec/getty/main.c#L178>. 该代码段包含登录提示符显示逻辑，`Amnesiac` 源代码。
* FreeBSD Project. bsdinstall: Warn if hostname is empty\[EB/OL]. \[2026-03-25]. <https://github.com/freebsd/freebsd-src/pull/1700>. 该 PR 为空主机名添加警告。

## 选择安装类型

设定主机名后，接下来需要选择系统的安装类型。FreeBSD 15 提供了两种安装方式，分别是传统的发行组件安装和新型的软件包安装。

> **注意**
>
> 在 FreeBSD 14 中，安装程序不提供软件包（pkgbase）安装方式，仅支持传统的发行组件（Distribution Sets）安装。此时安装界面标题为“选择安装组件”，直接进入组件选择步骤。

![选择安装类型](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-8442ab4a1046ec71e638cf7b24800e5f656d02c0%2Fisn6-15.png?alt=media)

`您希望使用传统的发行组件（Distribution Sets）还是软件包（Packages，技术预览）来安装基本系统？`

### 软件包（pkgbase，技术预览）

pkgbase 是一种新型的安装方式，需注意以下要点。

> **警告**
>
> 网络与分区配置详见下文。请在通读相关章节后再进行选择。

![网络或离线安装](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9e040dc25d10194898bd7cd42c0d36604945d92e%2F15-pkg1.png?alt=media)

`想从互联网获取软件包，还是使用此安装介质内包含的部分软件包？`

pkgbase 是 TrueOS 为 FreeBSD 项目贡献的技术方案，旨在以软件包形式管理基本系统（内核与用户空间），将其拆分为可由 `pkg` 工具管理的独立二进制包。

此设计思路与常见 Linux 发行版较为接近。需要注意，pkgbase 在系统稳定性与使用便利性之间存在一定的张力：

* 可能影响稳定性：基本系统被破坏的风险有所增加（此问题曾一度被开发者低估，直至社区广泛使用后反馈增多才被进一步重视）；
* 提升了易用性：降低了在 FreeBSD 不同版本分支间切换的成本，开发者能更便捷地在 stable、current 等分支间更新，普通用户亦无需经历 freebsd-update 工具较长的等待时间。

#### 在线安装（Network）

若选择在线安装方式，系统将从互联网下载所需的软件包。在此步骤中，可以选择需要额外安装的组件。

![选择安装组件](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-89763edcc4db96e5216005439b090fe66980ba0e%2F15-sel-1.png?alt=media)

`适用于多用户系统的最小软件包集将被默认安装。请选择您希望额外安装的软件包。`

| 组件               | 说明                           |
| ---------------- | ---------------------------- |
| `[X] base`       | 完整的基本系统（包含 devel 和 optional） |
| `[ ] debug`      | 所选组件的调试符号                    |
| `[ ] devel`      | C/C++ 编译器及相关工具               |
| `[X] kernel-dbg` | 内核调试符号                       |
| `[X] lib32`      | 32 位兼容库                      |
| `[ ] optional`   | 可选软件（不含编译器）                  |
| `[ ] src`        | 系统源代码树                       |
| `[ ] tests`      | 测试套件                         |

#### 离线安装（Offline，Limited Packages）

若无法联网，可选择离线安装方式。离线安装使用安装介质内包含的有限软件包，无需联网即可完成安装。

![选择安装组件](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-89763edcc4db96e5216005439b090fe66980ba0e%2F15-sel-1.png?alt=media)

`适用于多用户系统的最小软件包集始终会被安装。请选择要安装的其他软件包。`

| 组件               | 说明                           |
| ---------------- | ---------------------------- |
| `[X] base`       | 完整的基本系统（包含 devel 和 optional） |
| `[ ] debug`      | 所选组件的调试符号                    |
| `[ ] devel`      | C/C++ 编译器及相关工具               |
| `[X] kernel-dbg` | 内核调试符号                       |
| `[X] lib32`      | 32 位兼容库                      |
| `[ ] optional`   | 可选软件（不含编译器）                  |
| `[ ] src`        | 系统源代码树                       |
| `[ ] tests`      | 测试套件                         |

经过测试，即使全部选中，也能实现完全离线安装。

### 发行组件（Distribution Sets）

除了软件包安装方式外，还可以选择传统的发行组件安装方式。该方式成熟稳定。

![选择安装组件](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-0d10dee94f631b90229b57c37a0f3c8d2ce3a1b5%2Fins6-15-2.png?alt=media)

`选择要安装的可选系统组件`

> **技巧**
>
> 若无特别说明，以下操作中按 **空格键** 可选中或取消选中条目（`[ ]` 变为 `[ * ]`）。
>
> 推荐在默认选项基础上，**额外** 选中 `src`。因为部分显卡驱动程序（如 `drm`）及其他程序需要源代码，且经测试 `lib32` 组件在系统安装后单独安装可能无法正常工作，建议在安装时即选中。

> **警告**
>
> **请勿** 选择 `kernel-dbg`、`lib32`、`src` 之外的组件，这些组件需要从网络下载安装，速度可能较慢。如有需要可在系统安装完成后另行安装。
>
> 若在安装过程中出现选择镜像站的提示，通常是因为选择了需要联网下载的额外组件，请避免此操作。

| 选项           | 解释                         |
| ------------ | -------------------------- |
| `base-dbg`   | 基本系统的调试符号文件                |
| `kernel-dbg` | 内核调试符号文件                   |
| `lib32-dbg`  | 32 位兼容库的调试符号文件             |
| `lib32`      | 用于在 64 位系统上运行 32 位应用程序的兼容库 |
| `ports`      | FreeBSD Ports 集合           |
| `src`        | 系统源代码树                     |
| `tests`      | 操作系统测试套件                   |

## 分配磁盘空间

选定安装方式和组件后，接下来需要为系统分配磁盘空间。

FreeBSD 15.0-RELEASE 支持选择 UFS 或 ZFS 作为根文件系统。在旧版本中，`bsdinstall` 工具仅支持 UFS；FreeBSD Project. Revision 256361: bsdinstall: add ZFS support\[EB/OL]. \[2026-03-25]. <http://svn.freebsd.org/viewvc/base?view=revision&revision=256361>。该修订记录 bsdinstall 增加 ZFS 支持，`bsdinstall` 开始支持 ZFS。通过手动安装方式，则早在 delphij. FreeBSD 8.0 ZFS 根分区手动安装方法\[EB/OL]. \[2026-03-25]. <https://blog.delphij.net/posts/2008/11/zfs-1/>。该博客介绍 FreeBSD 8.0 ZFS 根分区手动安装方法，即可将 ZFS 用作根分区。

![磁盘分区菜单](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-eaa1a7d5442360077bf38fa07d7752286606977b%2Fins7-15.png?alt=media)

分区菜单。`您希望如何对磁盘进行分区？`

| 配置选项                                         | 中文说明                     |
| -------------------------------------------- | ------------------------ |
| `Auto (ZFS) – Guided Root-on-ZFS`            | 自动（ZFS）– 引导式 ZFS root 分区 |
| `Auto (UFS) – Guided UFS Disk Setup`         | 自动（UFS）– 引导式 UFS 磁盘设置    |
| `Manual – Manual Disk Setup (experts)`       | 手动 – 手动磁盘设置（适合专家）        |
| `Shell – Open a shell and partition by hand` | Shell – 打开 Shell 并手动分区   |

文件系统详情请参阅其他章节（可手动分区解压 `txz` 文件以自定义）。此处推荐选择默认的 `Auto (ZFS)` 选项。通常建议内存不小于 8 GB 时选用 ZFS，小于 8 GB 时选用 UFS，以获得更佳性能。

手动分区及通过 Shell 分区的详细方法，请参见本书手动安装 FreeBSD 的相关章节。

### Auto (ZFS)（使用 ZFS 作为 `/` 文件系统）

> **技巧**
>
> 经测试，在 UEFI 环境下，256 MB 内存亦可运行 ZFS；若使用传统 BIOS，128 MB 内存即可。但此配置仅能完成安装，不具备实用价值。

> **注意**
>
> 若手动分区时反复提示分区表“损坏”（`corrupted`）等错误，请先退出安装程序，重启后进入 Shell 模式，尝试刷新分区表：
>
> ```sh
> # gpart recover ada0
> ```
>
> 请根据实际硬盘设备确定 `ada0` 参数（如可能是 `da0`、`nda0` 等）。
>
> 若不明确当前硬盘设备名，可参考图示命令进行查看。
>
> <img src="https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-34bdf6f76c4a76ab9419af83c841cab945ff79a5%2Fins11.png?alt=media" alt="查看硬盘设备" data-size="original">
>
> 刷新后，执行 `bsdinstall` 命令可重新进入安装程序界面。
>
> 此问题可能与分区表调整有关（参见 FreeBSD 中文文档项目. FreeBSD 手册：磁盘分区调整\[EB/OL]. \[2026-03-25]. <https://handbook.bsdcn.org>。该章节介绍磁盘分区调整方法），疑为程序缺陷。

![探测设备](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-1aaee8fa637d13c308e9c75a45e9989d98f6da7b%2Fzfs1.png?alt=media)

`正在探测设备，请稍候（此过程可能需要一些时间）……`

![ZFS 配置](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c26ead650c66c653f574880e69e4a689068fe738%2Fins8-15.png?alt=media)

近十年的计算机通常应选择 `GPT (UEFI)`。请勿使用默认选项，否则将创建一个 512 KB 的 `freebsd-boot` 分区（对于纯 UEFI 启动并非必需）。

较老的计算机（如 2013 年以前）才应考虑选择 `GPT (BIOS)` 选项，该选项仅支持 BIOS 启动；如需同时兼容 BIOS 和 UEFI，应选择 `GPT (BIOS+UEFI)`。

| 配置选项                                   | 中文                 | 说明                                             |
| -------------------------------------- | ------------------ | ---------------------------------------------- |
| `>> Install Proceed with Installation` | >> 安装              | 继续安装                                           |
| `T Pool Type/Disks: stripe: 0 disks`   | 存储池类型/磁盘：条带化：0 块磁盘 | 详细说明见下                                         |
| `- Rescan Devices *`                   | - 重新扫描设备 \*        |                                                |
| `- Disk Info *`                        | - 磁盘信息 \*          |                                                |
| `N Pool Name zroot`                    | 存储池名称 `zroot`      | 默认池名 `zroot`                                   |
| `4 Force 4K Sectors? YES`              | 强制 4K 扇区？是         | 4K 对齐                                          |
| `E Encrypt Disks? NO`                  | 加密磁盘？否             | 加密后的登录系统方案请参考本书其他章节                            |
| `P Partition Scheme`                   | 分区方案 GPT (UEFI)    | 只有老电脑才需要 `GPT (BIOS+UEFI)` 等选项                 |
| `S Swap Size 2g`                       | 交换分区大小 2 GB        | 若确实不需要交换分区，可在 `Swap Size` 处输入 `0` 或 `0G` 以跳过创建 |
| `M Mirror Swap? NO`                    | 交换分区镜像？否           | 是否在多个磁盘之间镜像交换分区，若选否，则每个磁盘的交换分区是独立的             |
| `W Encrypt Swap? NO`                   | 加密交换分区？否           |                                                |

> **技巧**
>
> 如果在此处设置 `P Partition Scheme` 为 `GPT (UEFI)` 而非其他，后续分区与系统更新过程会更加简单。

> **注意**
>
> 请慎重设置交换分区（`Swap Size`）的大小。通常建议为物理内存的 1～2 倍，但考虑到设计限制，不建议超过 64 GB。因 ZFS 和 UFS 文件系统创建后不易缩小，而使用 `dd` 命令创建交换文件或后续调整可能带来性能开销或复杂度。

> **技巧**
>
> 若无法确定后续应选择哪块磁盘，可在此步骤选择 `- Disk Info *` 查看各磁盘的详细信息：
>
> <img src="https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-fd1f8277b8ac8eeeaa9dbbebfa0df6dfde9e5ca1%2Fdiskinfo.png?alt=media" alt="磁盘信息" data-size="original">
>
> 在此界面中，选中磁盘并按 **回车键** 可查看详情；选中 `<Back>` 可返回上一菜单。
>
> <img src="https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c073884940db8d89a9b723e7a92d0eb65bc1f759%2Fdiskinfo2.png?alt=media" alt="磁盘详情" data-size="original">
>
> 此界面按 **上下方向键** 可浏览。按 **回车键** 可返回到上一菜单。

![选择虚拟设备类型](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-cd82cea746ab625873f998fd8fdc18042c4cc41d%2Fins9-15.png?alt=media)

`选择虚拟设备类型：`

| 配置选项     | 中文             | 特点                            |
| -------- | -------------- | ----------------------------- |
| `Stripe` | 条带化，即 `RAID 0` | 无冗余，一块硬盘即可                    |
| `mirror` | 镜像，即 `RAID 1`  | n 路镜像，最少需要 2 块硬盘              |
| `raid10` | RAID 1+0       | n 组 2 路镜像，最少需要 4 块硬盘（要求偶数块硬盘） |
| `raidz1` | RAID-Z1        | 单冗余 RAID，最少需要 3 块硬盘           |
| `raidz2` | RAID-Z2        | 双冗余 RAID，最少需要 4 块硬盘           |
| `raidz3` | RAID-Z3        | 三重冗余 RAID，最少需要 5 块硬盘          |

直接按 **回车键** 使用默认的 `Stripe` 类型。

![选择目标硬盘](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-cd82cea746ab625873f998fd8fdc18042c4cc41d%2Fins9-15.png?alt=media)

选中目标硬盘，按 **回车键** 确认选择。

> **技巧**
>
> 若要将系统安装到 U 盘或移动硬盘但未被识别，请尝试重新插拔该设备，然后选择上方的 `- Rescan Devices *` 重新扫描设备列表。

> **注意**
>
> 若硬盘为 eMMC 类型，可能会出现 `mmcsd0`、`mmcsd0boot0`、`mmcsd0boot1` 等选项，请选择 `mmcsd0`。此外，在多硬盘与 eMMC 共存的情况下，若另一块硬盘的分区数量超过 5 个，安装在 eMMC 中的 FreeBSD 可能会在启动时停留在 `Mounting from zfs:zroot/ROOT/default failed with error 22: retrying for 3 more seconds` 提示处。若手动指定参数，则可能导致内核恐慌（Panic）。此问题疑似程序缺陷，但目前尚无更详细的报告信息。

![确认格式化](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-62e2bfe473fb776af9dd3bb129ced70524eba285%2Fins12-15.png?alt=media)

`最后确认！您确定要销毁以下磁盘上的所有现有数据吗：`

这是最终的警告与确认。请确保已备份重要数据，所选磁盘将被完全格式化。使用 **方向键** 或 **Tab 键** 将焦点切换至 `<YES>`，按 **回车键** 确认。

> **警告**
>
> 此操作将执行全盘安装，目标磁盘上的所有数据都将丢失！如需非全盘安装（如双系统），请参考本书其他相关章节。

#### 附录：ZFS 加密根分区的挂载与解密

若在安装时对 ZFS 根分区启用了加密，后续如何挂载该磁盘？

以 NVMe 硬盘为例，启用 ZFS 加密（同时加密交换空间）后的磁盘结构如下：

| 分区类型         | 挂载点 | 设备                          |
| ------------ | --- | --------------------------- |
| efi          |     | /dev/nda0p1                 |
| freebsd-zfs  | /   | /dev/nda0p2、/dev/nda0p2.eli |
| freebsd-swap |     | /dev/nda0p3、/dev/nda0p3.eli |

EFI 系统分区并无特殊变化，与正常安装相同。系统启动时将提示输入密码以解密并挂载根分区。 若需要在 LiveCD 环境中挂载该加密分区，操作亦较为简单（不需要密钥）。假设根分区为 `/dev/nda0p2`，执行以下命令：

```sh
# geli attach /dev/nda0p2
```

输入正确的加密密码后，通过命令 `# zfs mount zroot/ROOT/default` 挂载根文件系统。

### Auto (UFS)（使用 UFS 作为 `/` 文件系统）

![UFS 分区菜单](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-159fa44e41b38e0276f8231e10a61b7ef83474d0%2Fufs1.png?alt=media)

`您希望如何对磁盘进行分区？`

> **技巧**
>
> 若选择 `Partition`（分区），选项同下文。

![选择磁盘使用方式](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-42818c33ca9a0c58a99ad5ff01ff908db053e51a%2Fufs2.png?alt=media)

`您希望使用整个磁盘，还是对磁盘进行分区以与其他操作系统共存？使用整个磁盘将清除该磁盘上的所有现有数据。`

![选择分区方案](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-1e8642aa129e9b68d31e88dab93198de3f38cfae%2Fufs3.png?alt=media)

`为该卷选择分区方案`

| 英文                         | 中文            | 注释                          |
| -------------------------- | ------------- | --------------------------- |
| `APM Apple Partition Map`  | Apple 分区表     | Apple `PowerPC` 使用（2006 以前） |
| `BSD BSD Labels`           | BSD 磁盘标签      | 仅 BSD 可识别                   |
| `GPT GUID Partition Table` | GPT 全局唯一标识分区表 | 现代计算机使用（2013+）              |
| `MBR DOS Partitions`       | MBR 主引导记录分区表  | 老式计算机使用（XP、Win7 年代）         |

![审查分区设置](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-a3e8c2ece3105e397520cfb0dbc1c2267dcbc5f8%2Fufs4.png?alt=media)

`请审查当前的磁盘分区设置。确认无误后，可选择 “Finish”（完成）`

| 英文       | 中文 |
| -------- | -- |
| `Create` | 创建 |
| `Delete` | 删除 |
| `Modify` | 调整 |
| `Revert` | 还原 |
| `Auto`   | 自动 |
| `Finish` | 完成 |

![确认提交更改](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-f510f8b60805ad708e19427bedc1bc496327dad7%2Fufs5.png?alt=media)

`您的更改尚未写入磁盘。若您选择了覆盖现有数据，这些数据将被永久删除。确定要提交更改吗？`

| 英文              | 中文    |
| --------------- | ----- |
| `Commit`        | 提交    |
| `Revert & Exit` | 还原并退出 |
| `Back`          | 返回    |

![初始化磁盘](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-32705ed64273df3b23456969b649ea6b7f914467%2Fufs6.png?alt=media)

正在初始化磁盘，此界面通常一闪而过。

***

若之前选择了 pkgbase 安装方式：

![安装过程](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-1893aa679c343fae9b6511ea964fa1dd8aea8937%2Fins13-15.png?alt=media)

正在校验相关分发文件：

![校验分发文件](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5b23fbbaedf660729c91a2f4769b0e44edce208f%2Fins13.png?alt=media)

正在解压并安装相关分发文件：

![解压安装](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9d80262b2c26e338fc9a567da37e0b04f511338c%2Fins14.png?alt=media)

## 设置 root 密码

磁盘分区完成后，接下来需要为系统管理员账户设置密码。

![设置 root 密码](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-994b95cd358ba082c0623c962506f17b84588776%2Fins15-15-2.png?alt=media)

`请为系统管理员账户（root）设置密码：输入的字符将不可见。正在修改待安装系统的 root 密码。`

> **技巧**
>
> 在此界面，需使用 **上下方向键** 或 **Tab 键** 在不同密码输入框间移动焦点。输入完成后按 **回车键** 确认。

此处输入 root 密码，密码在屏幕上以 `*` 显示。

要求重复输入两次以确认一致性，若两次输入的密码不同则提示 `The passwords do not match`（密码不匹配）。

root 密码强度无强制要求，但不可为空。若密码为空，将提示 `The password cannot be empty`，必须输入有效密码才能继续。

## 网络设置

设置好 root 密码后，接下来需要配置网络，使系统能够连接到互联网或局域网。

### 以太网卡

首先介绍以太网卡的配置方法。

![选择网络接口](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-dceec579ef0a765f54d83d2bc243eab5a8bea484%2Fins17-15.png?alt=media)

`请选择要配置的网络接口及其配置模式`

* `Auto`：自动
* `Manual`：手动
* `Cancel`：取消

此处选择要配置的网卡。使用 **方向键** 可切换，按 **回车键** 可确认选择。

> **注意**
>
> 在 FreeBSD 14 中，网络接口选择界面仅提示“请选择一个网络接口进行配置”，不提供 Auto/Manual/Cancel 选项，直接选择网卡后进入 IPv4 配置步骤。

#### 自动（`Auto`）

![自动配置网络](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-2e537e90fd3d65f3a549b1f26256b4983e20994a%2Fins18-15.png?alt=media)

`正在发送路由器请求`，安装程序将自动检测并配置网络环境。

#### 手动（`Manual`）

![配置 IPv4](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6a742cac08d0bb67b8a6cdbaee38da0a434991ba%2Fins18.png?alt=media)

`希望为此接口配置 IPv4 吗？`

是否配置 IPv4。按 **回车键** 确认选择。

![使用 DHCP](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-98ee8f1859b37c8015ab5ff50932215eab1ad242%2Fins19.png?alt=media)

`希望使用 DHCP 配置此接口吗？`

是否使用 DHCP 自动配置。按 **回车键** 确认选择。

![配置 IPv6](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b87d582f931f7a2f7424680210f1db5af27ae438%2Fins20.png?alt=media)

`希望为此接口配置 IPv6 吗？`

是否配置 IPv6。本书不涉及 IPv6，因此选择 `No` 并按 **回车键**。如有需要可自行配置。

![配置 DNS](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3f2a63f36a5502345ffc98a5b22b0559458cd8b3%2Fins21.png?alt=media)

`配置解析器`

通常可保留 DHCP 分配的 DNS 设置，也可手动指定。图中示例使用了阿里云公共 DNS `223.5.5.5`。使用 **方向键** 切换选项，按 **回车键** 确认。

### 无线网卡/Wi-Fi 设置

> **警告**
>
> 由于 FreeBSD Project. Bug 289202: Missing CN regulatory domain and 11ac/DFS support in regdomain.xml\[EB/OL]. \[2026-03-25]. <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=289202>。该 Bug 报告记录中国无线管制域缺失问题，此部分功能目前存在问题，**建议跳过**。

> **注意**
>
> 建议跳过此步骤的无线网络配置，待系统安装完成后重启，再参考本书无线网络章节进行设置（尤其对于博通等网卡）。否则安装程序可能长时间无响应或引发内核恐慌（Panic）。

![选择无线网络接口](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-538e5c5f7b0b374a69d7ea18b51eae454c8ad7f1%2Fins-w1.png?alt=media)

`请选择要配置的无线网络接口`

> **警告**
>
> 由于 FreeBSD Project. Bug 287538: Installer error on setting regdomain\[EB/OL]. \[2026-03-25]. <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287538>。该 Bug 报告记录安装程序设置无线管制域错误，目前选择任何无线管制域，都会报错如下：
>
> ```sh
> Error while applying chosen settings
> (unknown regdomain Expected eval: Use: not found)
> ```
>
> 该问题在 FreeBSD 15.0 中已修复。

![更改无线管制域](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b3b83d82b3816e3d1355e49b01d7f24d46c94129%2Fins-w2.png?alt=media)

`更改无线管制域（当前为 FCC/US）？`

修改无线管制域，按回车键确认。

![选择区域码](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c82f39a45a751df83dac7b7168b7f55b2c0bb5db%2Fins-w3.png?alt=media)

`请选择您的区域码`

此处应选择 `NONE ROW`。

![选择所在地区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-52ca7998fee409b1a66e6753d527b472a22a4350%2Fins-w4.png?alt=media)

`请选择您所在的地区`

选择对应的地区：

![扫描无线网络](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5b989468363a804e65bd2e3ef9eaa8465a1e9f91%2Fins-w5.png?alt=media)

`请等待 5 秒，正在扫描可用的无线网络……`

扫描。

> **技巧**
>
> 只要系统能识别网卡，即表明其驱动程序可用。但安装程序可能无法正确扫描到所有 WiFi 网络。建议此处留空跳过，待系统安装完成后重启，再参考本书无线网络章节进行配置。

在列表中找到您的 WiFi 网络。若未找到，可尝试更改无线路由器的信道后重试。

![选择 WiFi 网络](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-554a79dcaf08ca84b7c7fe1c971d503d70194c7a%2Fins-w6.png?alt=media)

`请选择要连接的无线网络`

输入 WiFi 密码以连接：

![输入 WiFi 密码](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b093d882ce39803f16672eaaabc51122d7606c21%2Fins-w7.png?alt=media)

![配置 IPv4](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6a742cac08d0bb67b8a6cdbaee38da0a434991ba%2Fins18.png?alt=media)

`想要为此接口配置 IPv4 吗？`

配置 IPv4。按 **回车键** 可选定。

![使用 DHCP](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-98ee8f1859b37c8015ab5ff50932215eab1ad242%2Fins19.png?alt=media)

`希望使用 DHCP 配置此接口吗？`

配置使用 DHCP。按 **回车键** 可选定。

![配置 IPv6](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b87d582f931f7a2f7424680210f1db5af27ae438%2Fins20.png?alt=media)

`希望为此接口配置 IPv6 吗？`

配置 IPv6。因本书未使用 IPv6，故选 `No`，按 **回车键** 可选定。如有需要可自行配置 IPv6。

![配置 DNS](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-3f2a63f36a5502345ffc98a5b22b0559458cd8b3%2Fins21.png?alt=media)

`配置解析器`

通常可保留 DHCP 分配的 DNS 设置，也可手动指定。图中示例使用了阿里云公共 DNS `223.5.5.5`。使用 **方向键** 切换选项，按 **回车键** 确认。

### 参考文献

* FreeBSD Project. Regulatory Domain Support\[EB/OL]. \[2026-03-25]. <https://wiki.freebsd.org/WiFi/RegulatoryDomainSupport>. 该页面介绍 FreeBSD 无线管制域支持状态。
* FreeBSD Project. freebsd-src/lib/lib80211/regdomain.xml\[EB/OL]. \[2026-03-25]. <https://github.com/freebsd/freebsd-src/blob/main/lib/lib80211/regdomain.xml>. 该文件定义 802.11 无线管制域配置，regdomain.xml 在源代码的位置。
* FreeBSD Project. regdomain.xml -- 802.11 wireless regulatory definitions\[EB/OL]. \[2026-03-25]. <https://man.freebsd.org/cgi/man.cgi?query=regdomain&sektion=5>. 该手册页说明无线管制域配置文件格式，对应编码请参考系统中的 `/etc/regdomain.xml` 文件。
* Alibaba Cloud. 阿里云公共 DNS\[EB/OL]. \[2026-03-25]. <https://www.alidns.com/>. 该服务提供公共 DNS 解析。

## 时区设置

网络配置完成后，接下来需要设置系统的时区，以确保系统时间显示正确。

![选择地区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-67bd1f1b2d29f6a086218fe095819b2fc0807bc9%2Fins22.png?alt=media)

`请选择您所在的地区`

设置系统时区。中国属于 `5 Asia`（亚洲）。使用 **方向键** 选择，按 **回车键** 确认。

![选择国家或地区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-e51278bc24a3c52d8d9fe77e760159226eed2e98%2Fins23.png?alt=media)

`设置国家或地区`

选择 `9 China`（中国）。使用 **方向键** 选择，按 **回车键** 确认。

![选择时区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-acd4c8179d67aac9555c76b493c403652344d13e%2Fins24.png?alt=media)

中国统一使用东八区时间（北京时间），请选择 `1 Beijing Time`。使用 **方向键** 选择，按 **回车键** 确认。

![确认时区](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-2a131cc6eb9ac2e4ea680bb65e19c687065a0244%2Fins25.png?alt=media)

`时区缩写 'CST' 是否合适？`

CST 为中国标准时间（China Standard Time）的缩写，确认无误后按 **回车键** 选择 `Yes`。

![设置时间日期](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-8cd383cd863746ea7e46036175652e64d97d7def%2Fins26.png?alt=media)

`设置时间与日期`

直接按 **回车键** 使用默认设置。

![确认时间日期](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9786b6511cb10c0ccabd25290a53f3095d6b5aaf%2Fins27.png?alt=media)

`时间与日期`

按 **回车键** 确认。

## 启动服务设置

时区设置完成后，接下来需要选择系统启动时自动运行的服务。

![选择启动服务](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-f3707ac46806469498d785191b80f8bc3429a22c%2Fins28-15.png?alt=media)

`请选择您希望系统启动时自动运行的服务`

> **警告**
>
> **请勿全选！**
>
> **不要** 选择 `local_unbound`，否则可能影响系统 DNS 解析（参见 FreeBSD Project. Bug 262290: After a normal FreeBSD installation and reboot, /etc/resolv.conf will be changed\[EB/OL]. \[2026-03-25]. <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262290>。该 Bug 报告记录 local\_unbound 服务导致 resolv.conf 变更问题）。除非明确了解其用途。

| 选项                   | 解释                                                                   |
| -------------------- | -------------------------------------------------------------------- |
| `sshd`               | 启用 SSH 远程访问服务                                                        |
| `ntpd`               | 启用 NTP 网络时间协议守护进程，用于自动时钟同步                                           |
| `ntpd_sync_on_start` | 系统启动时立即同步时间                                                          |
| `local_unbound`      | 启用本地 Unbound DNS 缓存转发解析器。注意：启用后需手动配置 DNS，否则可能无法正常联网。不建议未充分了解其功能的用户启用 |
| `powerd`             | 启用电源管理守护进程，动态调整 CPU 频率以节约能耗                                          |
| `moused`             | 在文本控制台（tty）中启用鼠标支持                                                   |
| `dumpdev`            | 启用内核崩溃转储功能，便于系统调试                                                    |

> **注意**
>
> 在 FreeBSD 14 中，服务列表的显示顺序不同：`local_unbound` 位于列表首位，其后依次为 `sshd`、`moused`、`ntpd`、`ntpd_sync_on_start`、`powerd`、`dumpdev`。

## 安全加固

启动服务设置完成后，接下来需要配置系统安全加固选项，以增强系统的安全性。

![安全加固选项](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b4478de413e5d7d48d80917fd2a6d7ac62416e1c%2Fins29.png?alt=media)

`请选择系统安全加固方案`

此处为系统安全加固选项，可根据实际需求选择启用。

> **技巧**
>
> 在 FreeBSD 14 以前版本的安装中，此步骤会出现 `disable_sendmail` 选项，建议选定。若不禁止该服务，每次开机时可能会延迟数分钟，且该服务主要用于邮件发送，一般用户无需使用。

| 选项                  | 解释                                  |
| ------------------- | ----------------------------------- |
| `0 hide_uids`       | 隐藏其他用户拥有的进程                         |
| `1 hide_gids`       | 隐藏其他组拥有的进程                          |
| `2 hide_jail`       | 隐藏 jail 内的进程                        |
| `3 read_msgbuf`     | 禁止非特权用户读取内核消息缓冲区（通常通过 `dmesg` 命令访问） |
| `4 proc_debug`      | 禁用非特权用户的进程调试功能                      |
| `5 random_pid`      | 启用进程 PID 随机化                        |
| `6 clear_tmp`       | 系统启动时自动清理 `/tmp` 目录                 |
| `7 disable_syslogd` | 禁用 syslogd 的网络套接字（即禁用远程日志接收）        |
| `8 secure_console`  | 启用控制台安全保护（单用户模式也需 root 密码）          |
| `9 disable_ddtrace` | 禁用 DTrace 的破坏性（destructive）操作模式     |

## 安装固件

安全加固设置完成后，接下来需要安装硬件所需的固件，以确保硬件设备能够正常工作。

![虚拟机无固件可安装](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-4c44f3ae80733145483b606715dd6a7d18861de5%2Finstall-14.2.png?alt=media)

自动检测并安装所需的硬件固件（该功能自 14.2 版本 FreeBSD Project. Commit 03c07bdc8b31: firmware auto-detection\[EB/OL]. \[2026-03-25]. <https://cgit.freebsd.org/src/commit/?id=03c07bdc8b31>.）

（此图为虚拟机安装界面截图）

![物理机也许有些固件需要安装](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6a027f26787a4874d5f458b04e41fe4a9898c886%2F2-install.png?alt=media)

**（此图为使用采集卡获得的物理机安装界面截图）**

> **警告**
>
> 建议在此步骤取消所有勾选，即不安装任何固件（在线安装可能因网络问题失败或耗时过长）。如需安装固件，可在系统安装完成后使用 `fwget` 命令另行获取。
>
> 在 FreeBSD 14 的物理机安装中，此步骤可能会显示需要安装的固件列表（如显卡固件等），请同样取消勾选，待安装完成后使用 `fwget` 命令获取。

## 创建普通用户

固件安装完成后，接下来需要创建普通用户账户，以便日常使用系统时避免直接使用 root 账户。

![添加用户](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-eee535fa67ea4ac7609242f8ef366e88090147d5%2Fins30.png?alt=media)

`现在希望向已安装的系统添加用户吗？`

如需创建，请按 **回车键** 选择 `Yes`；如果不需要创建普通用户（仅使用 root），请使用 **方向键** 选择 `No`。

> **技巧**
>
> 绝大多数图形显示管理器默认禁止 root 用户直接登录。因此，若不进行额外配置（参见其他章节），默认情况下可能无法使用 root 账户登录桌面环境。

![填写用户信息](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-44b6a66db14fbc42ec94292457d0f36ce077426f%2Fins31-15.png?alt=media)

> **警告**
>
> 若创建普通用户，请务必将其同时加入 `wheel` 组（用于 `su` 提权）和 `video` 组（用于图形加速）。仅加入 `wheel` 组可能无法正常调用 GPU。

```sh
FreeBSD Installer # FreeBSD 安装程序
========================
Add Users # 添加用户

Username: ykla # 输入用户名。只能使用小写字母（不支持非拉丁字符）或数字，不能以连字符开头。最大长度 16 个字符（历史原因）。
Full name: # 输入用户全名 ①。可留空。不能包含英文冒号 `:`。
Uid (Leave empty for default):  # 用户 UID，留空则使用默认值。手动设置需小于 32000。
Login group [ykla]: # 用户主组
Login group is ykla. Invite ykla into other groups? []: wheel video # 邀请用户加入其他组，输入“wheel video”（用空格分隔）
Login class [default]: # 用户分级
Shell (sh csh tcsh nologin) [sh]: # 用户默认 shell，默认是 sh
Home directory [/home/ykla]: # 用户家目录路径，普通用户默认在 /home 下面
Home directory permissions (Leave empty for default): # 用户家目录权限，留空使用默认值
Enable ZFS encryption? (yes/no) [no]: # 是否启用 ZFS 加密（15.0 新增）
Use password-based authentication? [yes]:  # 是否启用密码验证
Use an empty password? (yes/no) [no]:  # 是否使用空密码，即密码为空
Use a random password? (yes/no) [no]:  # 是否使用随机密码。若设置 yes 将生成随机字符串用作密码。该密码会回显到标准输出。②
Enter password:  # 输入密码，密码不显示在屏幕上，也不会是 ****，就是什么也没有
Enter password again:  # 重复输入密码，密码不显示在屏幕上，也不会是 ****，就是什么也没有
Lock out the account after creation? [no]: #  创建后是否立即锁定账户（禁用该账户）
Username    : ykla # 设定的用户名
Password    : ***** # 设定的用户密码
Full Name   : # 设定的用户全名
Uid         : 1001 # 设定的用户 UID
ZFS dataset : zroot/home/ykla # 家目录对应的 ZFS 数据集（自 14.1 引入）
Class       :  # 设定的用户分级
Groups      : ykla wheel video # 所属的用户组
Home        : /home/ykla # 设定的用户主（家）目录路径
Home Mode   :  # 设定的用户主（家）目录权限
Shell       : /bin/sh # 设定的用户默认的 shell
Locked      : no # 是否锁定（禁用）用户
OK? (yes/no) [yes]: #  确认上述设置是否正确
adduser: INFO: Successfully added (ykla) to the user database. # 用户 ykla 已成功添加至数据库
Add another user? (yes/no) [no]: # 是否继续添加其他用户
```

* ① 如果用户全名为空（即不设置），系统会分配一个默认值 `User &`。这是早期 UNIX 系统 GECOS 字段的遗留行为。相关代码位于 FreeBSD Project. freebsd-src/usr.sbin/pw/pw\_user.c\[EB/OL]. \[2026-03-25]. <https://github.com/freebsd/freebsd-src/blob/main/usr.sbin/pw/pw_user.c> 的 `static struct passwd fakeuser` 结构中。
* ② 若选择使用随机密码，在最终确认信息前会显示一行：`adduser: INFO: Password for (ykla) is: D1MnujkWMv/m`，其中 `D1MnujkWMv/m` 即为生成的随机密码。

其余参数通常可保持默认。自 FreeBSD 14 起，所有新用户的默认 Shell 已统一为 `/bin/sh`。

最后会询问 `Add another user? (yes/no) [no]`，按 **回车键** 可结束用户添加流程；

若输入 `yes` 并按 **回车键**，则可继续添加第二个用户。

### 参考文献

* FreeBSD Project. man adduser(8)\[EB/OL]. \[2026-03-25]. <https://man.freebsd.org/cgi/man.cgi?adduser(8)>. 该手册页说明 FreeBSD 用户添加命令使用方法。

## 完成安装

普通用户创建完成后，接下来可以完成整个安装流程，开始使用 FreeBSD 系统。

![完成安装](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7407257725eefb9b28b67e12238ec3ba827d083c%2Fins32-15.png?alt=media)

`您的 FreeBSD 系统设置即将完成。现在可以返回修改先前的配置选项。在此菜单之后，您还可以进入 Shell 进行更复杂的调整。`

按 **回车键** 选择 `Finish` 以完成安装。

| 配置选项               | 功能描述                |
| ------------------ | ------------------- |
| `Finish`           | 应用所有配置并退出安装程序       |
| `Add User`         | 添加系统用户              |
| `Root Password`    | 重新设置 root 密码        |
| `Hostname`         | 修改系统主机名             |
| `Network`          | 重新配置网络              |
| `Services`         | 调整系统启动时运行的服务        |
| `System Hardening` | 修改安全加固方案            |
| `Time Zone`        | 重新设置时区              |
| `Firmware`         | 安装固件（需要网络）          |
| `Handbook`         | 安装 FreeBSD 手册（需要网络） |

![是否进入 Shell](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-40bf1cd87eb6ee3482a12109f9baa8a8c9da0b2a%2Fins33-15.png?alt=media)

`安装现已完成。在退出安装程序前，您是否希望在新系统中打开 Shell 以进行最终的手动调整？`

按 **回车键** 选择 `No` 以直接完成安装（或选择 `Yes` 进入 Shell）。

![确认重启](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ebc3d0656511fd78887691716636f61486d97de4%2Fins34.png?alt=media)

`FreeBSD 安装完成！您现在是否希望重启并进入新安装的系统？`

按 **回车键** 确认重启。

## 欢迎进入 FreeBSD 世界

安装完成后重启，进入 FreeBSD 新系统：

![系统启动](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-4ae0611c6390584c4782014354c5fbb2582b30b7%2Fins35-15.png?alt=media)

系统完全启动后：

> **技巧**
>
> FreeBSD 基本系统默认不包含图形界面（未安装 Xorg），因此启动后将进入文本控制台界面（TTY）。

![登录界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9a1f3e6e86dec852e36d366e959095104f63c682%2Fins36-15.png?alt=media)

输入用户名 `root` 及安装时设置的 root 密码以登录系统。

> **技巧**
>
> 输入密码，密码在屏幕上不显示，无 `****` 等掩码提示，输入完毕后直接按回车键登录。

![登录成功](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-1727609dc6134626492c8ae5b918539b7fa40ede%2Fins37-15.png?alt=media)

## 课后习题

1. 阅读 bsdinstall 的源代码脚本（`/usr/src/usr.sbin/bsdinstall/`），定位其中处理主机名设置的逻辑，分析未设置主机名时系统回退为默认值的具体机制。
2. 对比 bsdinstall 中自动分区与手动分区两种模式的实现差异，分析 ZFS 自动分区方案中 swap 卷大小与内存容量的映射关系。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/di-2-zhang-freebsd-an-zhuang-ji-chu/di-2.2-jie-freebsd-15-an-zhuang-zhi-nan-amd64.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
