第 2 章. 安装 FreeBSD

2.1. 概要

FreeBSD 支持不同的架构,包括 amd64、ARM®、RISC-V® 和 PowerPC®。根据架构和平台的不同,可以下载不同的镜像来安装或直接运行 FreeBSD。

镜像类型有:

  • 虚拟机磁盘镜像,例如 qcow2vmdkvhd 和原始设备镜像。这些不是安装镜像,而是预装了 FreeBSD 并准备好执行安装后任务的镜像。虚拟机镜像也常用于云环境。

  • SD 卡镜像,用于嵌入式系统,例如 Raspberry Pi。这些文件必须解压缩并作为原始镜像写入 SD 卡,然后板载设备会从该卡启动。

  • 安装镜像,可从 ISO 或 USB 设备启动,将 FreeBSD 安装到驱动器上,用于常规的桌面、笔记本电脑或服务器系统。

本章的其余部分描述了第三种情况,解释了如何使用名为 bsdinstall 的基于文本的安装程序安装 FreeBSD。安装程序与此处显示的内容之间可能存在细微差异,因此请将本章用作一般指南,而不是一组逐字指令。

阅读本章后,您将了解

  • 如何获取 FreeBSD 镜像并创建 FreeBSD 安装介质。

  • 如何启动 bsdinstall。

  • bsdinstall 将提出的问题、其含义以及如何回答它们。

  • 如何排除安装失败故障。

  • 如何在承诺安装之前访问 FreeBSD 的实时版本。

2.2. 最低硬件要求

安装 FreeBSD 的硬件要求因架构和版本而异。FreeBSD 发行版支持的硬件架构和设备列在FreeBSD 发行版信息页面上。FreeBSD 下载页面还提供了针对不同架构选择正确镜像的建议。

2.3. 安装前任务

一旦确定系统满足安装 FreeBSD 的最低硬件要求,就应下载安装文件并准备安装介质。

如果您想在已安装其他操作系统的系统上使用 FreeBSD,请考虑使用虚拟化

在继续安装之前,请通过验证此清单中的项目来检查系统是否已准备就绪

  1. 备份重要数据

    在安装任何操作系统之前,**始终**首先备份所有重要数据。不要将备份存储在要安装的系统上。而是将数据保存到可移动磁盘(如 USB 驱动器)、网络上的另一个系统或在线备份服务。在开始安装之前测试备份,以确保它包含所有需要的文件。一旦安装程序格式化系统的磁盘,该磁盘上存储的所有数据都将丢失。

  2. 确定 FreeBSD 的安装位置

    如果 FreeBSD 将是唯一安装的操作系统,则可以跳过此步骤。但如果 FreeBSD 将与其他操作系统共享磁盘,请确定将使用哪个磁盘或分区用于 FreeBSD。

    在 i386 和 amd64 架构中,可以使用两种分区方案之一将磁盘划分为多个分区。传统的主引导记录 (MBR) 包含一个分区表,定义了最多四个主分区。由于历史原因,FreeBSD 将这些主分区称为切片。其中一个主分区可以制成扩展分区,其中包含多个逻辑分区GUID 分区表 (GPT) 是一种更新、更简单的方法来分区磁盘。常见的 GPT 实现允许每个磁盘最多 128 个分区,从而消除了对逻辑分区的需要。

    FreeBSD 引导加载程序需要主分区或 GPT 分区。如果所有主分区或 GPT 分区都已在使用,则必须释放一个用于 FreeBSD。要创建分区而不删除现有数据,请使用分区调整大小工具缩小现有分区,并使用释放的空间创建新分区。

    修改系统现有磁盘分区的替代方法是使用虚拟化,它允许多个操作系统同时运行,而无需更改分区。

    各种免费和商业分区调整大小工具列在磁盘分区软件列表维基百科条目中。GParted Live 是一个免费的 Live CD,其中包含 GParted 分区编辑器。

    如果使用得当,磁盘缩小实用程序可以安全地创建空间以创建新分区。由于存在选择错误分区的可能性,因此在修改磁盘分区之前,始终备份任何重要数据并验证备份的完整性。

    包含不同操作系统的磁盘分区可以使一台计算机上安装多个操作系统成为可能。

  3. 收集网络信息

    某些 FreeBSD 安装方法需要网络连接才能下载安装文件。在任何安装之后,安装程序都将提供设置系统网络接口的选项。

    如果网络具有 DHCP 服务器,则可以使用它来提供自动网络配置。如果 DHCP 不可用,则必须从本地网络管理员或互联网服务提供商处获取以下系统网络信息

    所需的网络信息

    1. IP 地址

    2. 子网掩码

    3. 默认网关的 IP 地址

    4. 网络的域名

    5. 网络 DNS 服务器的 IP 地址

  4. 检查 FreeBSD 勘误表

    尽管 FreeBSD 项目努力确保每个 FreeBSD 发行版都尽可能稳定,但错误偶尔也会出现在过程中。在极少数情况下,这些错误会影响安装过程。随着这些问题的发现和解决,它们将在每个版本的 FreeBSD 勘误表页面中记录。在安装之前检查勘误表,以确保没有可能影响安装的问题。

    所有发行版的信息和勘误表都可以在FreeBSD 发行版信息页面上找到。

2.3.1. 准备安装介质

FreeBSD 安装程序不是可以在另一个操作系统内部运行的应用程序。而是下载 FreeBSD 安装文件,将其刻录到与其文件类型和大小关联的介质(CD、DVD 或 USB)上,然后启动系统以从插入的介质进行安装。

FreeBSD 安装文件可在FreeBSD 下载页面上获取。每个安装文件的文件名都包含 FreeBSD 的发行版本、架构和文件类型。

安装文件有几种格式,使用xz(1)压缩或未压缩。格式因计算机架构和介质类型而异。

安装文件类型

  • -bootonly.iso:这是最小的安装文件,因为它仅包含安装程序。安装过程中需要有效的互联网连接,因为安装程序将下载完成 FreeBSD 安装所需的必要文件。此文件应刻录到光学介质上。

  • -disc1.iso:此文件包含安装 FreeBSD、其源代码和 Ports Collection 所需的所有文件。此文件应刻录到光学介质上。

  • -dvd1.iso:此文件包含安装 FreeBSD、其源代码和 Ports Collection 所需的所有文件。它还包含一组流行的二进制软件包,用于安装窗口管理器和一些应用程序,以便可以从介质安装完整系统,而无需连接到互联网。此文件应刻录到光学介质上。

  • -memstick.img:此文件包含安装 FreeBSD、其源代码和 Ports Collection 所需的所有文件。将此文件写入 USB 闪存盘,如将镜像文件写入 USB中所示。

  • -mini-memstick.img:与-bootonly.iso类似,不包含安装文件,而是根据需要下载它们。安装过程中需要有效的互联网连接。它应写入 USB 闪存盘,如将镜像文件写入 USB中所示。

下载镜像文件后,请从同一目录下载至少一个校验和文件。有两种校验和文件可用,其名称以发行版号和架构名称命名。例如:CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64CHECKSUM.SHA512-FreeBSD-13.1-RELEASE-amd64

下载其中一个文件(或两个文件)后,计算镜像文件的校验和,并将其与校验和文件中显示的校验和进行比较。请注意,您需要将计算出的校验和与正确的文件进行比较,因为它们对应于两种不同的算法:SHA256 和 SHA512。FreeBSD 提供了sha256(1)sha512(1),可用于计算校验和。其他操作系统也有类似的程序。

在 FreeBSD 中验证校验和可以使用sha256sum(1)(和sha512sum(1))自动完成,方法是执行

% sha256sum -c CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 FreeBSD-13.1-RELEASE-amd64-dvd1.iso
FreeBSD-13.1-RELEASE-amd64-dvd1.iso: OK

校验和必须完全匹配。如果校验和不匹配,则镜像文件已损坏,必须重新下载。

2.3.1.1. 将镜像文件写入 USB

*memstick.img 文件是内存棒完整内容的镜像。它不能作为文件复制到目标设备。有几种应用程序可用于将*.img 写入 USB 闪存盘。本节介绍了这两个实用程序中的两个。

在继续操作之前,请备份 USB 闪存盘上的任何重要数据。此过程将擦除闪存盘上的现有数据。

过程。使用dd写入镜像

此示例使用/dev/da0 作为将写入镜像的目标设备。请务必非常小心使用正确的设备,因为此命令将破坏指定目标设备上的现有数据。

  1. 命令行实用程序在 BSD、Linux® 和 Mac OS® 系统上可用。要使用dd刻录镜像,请插入 USB 闪存盘并确定其设备名称。然后,指定下载的安装文件的文件名和 USB 闪存盘的设备名称。此示例将 amd64 安装镜像刻录到现有 FreeBSD 系统上的第一个 USB 设备。

    # dd if=FreeBSD-13.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync

    如果此命令失败,请验证 USB 闪存盘是否未挂载以及设备名称是磁盘而不是分区。

    某些操作系统可能需要使用sudo(8)运行此命令。dd(1) 语法在不同平台上略有不同;例如,Mac OS® 需要小写bs=1m。Linux® 等系统可能会缓冲写入。要强制所有写入完成,请使用sync(8)

过程。使用 Windows® 写入镜像

请确保提供正确的驱动器盘符,因为指定驱动器上的现有数据将被覆盖并销毁。

  1. 获取适用于 Windows® 的 Image Writer

    适用于 Windows® 的 Image Writer 是一款免费应用程序,可以正确地将映像文件写入内存棒。从win32diskimager 主页下载并解压缩到一个文件夹中。

  2. 使用 Image Writer 写入映像

    双击 Win32DiskImager 图标以启动程序。确认Device下显示的驱动器盘符是带有内存棒的驱动器。单击文件夹图标并选择要写入内存棒的映像。单击Save以确认映像文件名。确认所有内容都正确,并且其他窗口中没有打开内存棒上的任何文件夹。准备就绪后,单击Write将映像文件写入内存棒。

2.4. 开始安装

默认情况下,安装在显示以下消息之前不会对磁盘进行任何更改

Your changes will now be written to disk. If you
have chosen to overwrite existing data, it will
be PERMANENTLY ERASED. Are you sure you want to
commit your changes?

在出现此警告之前,可以随时退出安装。如果担心某些配置不正确,只需在此之前关闭计算机,系统磁盘将不会发生任何更改。

本节介绍如何从安装介质启动系统,该介质是使用准备安装介质中的说明准备的。使用可启动 USB 闪存盘时,请在打开计算机之前插入 USB 闪存盘。从 CD 或 DVD 启动时,请打开计算机并在第一时间插入介质。如何配置系统以从插入的介质启动取决于体系结构。

2.4.1. FreeBSD 引导加载程序菜单

系统从安装介质启动后,将显示类似于以下内容的菜单

FreeBSD boot loader menu
图 1. FreeBSD 引导加载程序菜单

默认情况下,菜单将在启动到 FreeBSD 安装程序或(如果已安装 FreeBSD)启动到 FreeBSD 之前等待十秒钟以获取用户输入。要暂停启动计时器以查看选择内容,请按Space。要选择一个选项,请按其突出显示的数字、字符或键。以下选项可用。

  • Boot Multi User:这将继续 FreeBSD 启动过程。如果启动计时器已暂停,请按1、大写或小写BEnter

  • Boot Single User:此模式可用于修复现有 FreeBSD 安装,如“单用户模式”中所述。按2或大写或小写S进入此模式。

  • Escape to loader prompt:这将启动系统进入一个修复提示符,其中包含数量有限的低级命令。此提示符在“第三阶段”中进行了描述。按3Esc启动到此提示符。

  • Reboot:重新启动系统。

  • Cons:允许通过videoserialDual (serial primary)Dual (Video primary)继续安装。

  • Kernel:加载不同的内核。

  • Boot Options:打开FreeBSD 启动选项菜单中显示并描述的菜单。

Menu showing the different boot options supported
图 2. FreeBSD 启动选项菜单

启动选项菜单分为两个部分。第一部分可用于返回主启动菜单或将任何已切换选项重置为其默认值。

下一部分用于通过按选项的突出显示的数字或字符将可用选项切换到OnOff。系统将始终使用这些选项的设置启动,直到修改这些设置。可以使用此菜单切换多个选项

  • ACPI Support:如果系统在启动过程中挂起,请尝试将此选项切换到Off。此选项仅在 ACPI 支持可用但不需要时出现。

  • Safe Mode:如果系统即使在将ACPI Support设置为Off后仍挂起,请尝试将此选项设置为On

  • Single User:将此选项切换到On以修复现有 FreeBSD 安装,如“单用户模式”中所述。修复问题后,将其设置回Off

  • Verbose:将此选项切换到On以在启动过程中查看更详细的消息。这在对硬件进行故障排除时很有用。

完成所需的选择后,按1Backspace返回主启动菜单,然后按Enter继续启动到 FreeBSD。FreeBSD 执行其硬件设备探测并加载安装程序时,将出现一系列启动消息。启动完成后,将显示欢迎菜单中显示的欢迎菜单。

FreeBSD installation welcome menu
图 3. 欢迎菜单

Enter选择默认的Install以进入安装程序。本章的其余部分介绍如何使用此安装程序。否则,使用左右箭头或彩色字母选择所需的菜单项。Shell可用于访问 FreeBSD shell,以便使用命令行实用程序在安装之前准备磁盘。Live CD选项可用于在安装 FreeBSD 之前试用它。实时版本在使用 Live CD中进行了描述。

要查看启动消息(包括硬件设备探测),请按大写或小写S,然后按Enter访问 shell。在 shell 提示符下,键入more /var/run/dmesg.boot并使用空格键滚动浏览消息。完成后,键入exit返回欢迎菜单。

2.5. 使用 bsdinstall

本节显示了 bsdinstall 菜单的顺序以及在安装系统之前将询问的信息类型。使用箭头键突出显示菜单选项,然后使用Space选择或取消选择该菜单项。完成后,按Enter保存选择并转到下一个屏幕。

2.5.1. 选择键盘映射菜单

在开始过程之前,bsdinstall 将加载键盘映射文件,如键盘映射加载中所示。

Keymap loading
图 4. 键盘映射加载

加载键盘映射后,bsdinstall 将显示键盘映射选择菜单中显示的菜单。使用向上和向下箭头选择最接近系统连接的键盘映射的键盘映射。按Enter保存选择。

Keymap selection menu showing all supported keyboards
图 5. 键盘映射选择菜单

Esc将退出此菜单并使用默认键盘映射。如果键盘映射的选择不明确,United States of America ISO-8859-1也是一个安全选项。

此外,在选择不同的键盘映射时,用户可以尝试键盘映射并确保其正确性,如键盘映射测试菜单中所示。

Keymap testing menu
图 6. 键盘映射测试菜单

2.5.2. 设置主机名

下一个 bsdinstall 菜单用于设置新安装系统的名称。

Setting the hostname
图 7. 设置主机名

输入网络中唯一的主机名。它应该是完全限定的主机名,例如machine3.example.com

2.5.3. 选择要安装的组件

接下来,bsdinstall 将提示选择要安装的可选组件。

Different components that can be installed. Example: base-dbg
图 8. 选择要安装的组件

决定安装哪些组件将在很大程度上取决于系统的预期用途和可用的磁盘空间。FreeBSD 内核和用户空间(统称为基础系统)始终安装。根据体系结构,其中一些组件可能不会出现

  • base-dbg - 基本工具(如 cat 和 ls 等,以及许多其他工具),并激活调试符号。

  • kernel-dbg - 激活调试符号的内核和模块。

  • lib32-dbg - 用于在 64 位版本的 FreeBSD 上运行 32 位应用程序的兼容库,并激活调试符号。

  • lib32 - 用于在 64 位版本的 FreeBSD 上运行 32 位应用程序的兼容库。

  • ports - FreeBSD Ports 集合是一组文件,可自动下载、编译和安装第三方软件包。安装应用程序:包和端口讨论了如何使用 Ports 集合。

    安装程序不会检查磁盘空间是否充足。仅当有足够的硬盘空间时,才选择此选项。FreeBSD Ports 集合占用大约 3 GB 的磁盘空间。

  • src - 内核和用户空间的完整 FreeBSD 源代码。虽然大多数应用程序不需要它,但它可能是构建设备驱动程序、内核模块或 Ports 集合中某些应用程序所必需的。它也用于开发 FreeBSD 本身。完整的源代码树需要 1 GB 的磁盘空间,重新编译整个 FreeBSD 系统需要额外的 5 GB 空间。

  • tests - FreeBSD 测试套件。

2.5.4. 从网络安装

从网络安装中显示的菜单仅在从-bootonly.iso-mini-memstick.img安装时出现,因为此安装介质不包含安装文件的副本。由于必须通过网络连接检索安装文件,因此此菜单指示必须首先配置网络接口。如果在过程的任何步骤中显示此菜单,请记住遵循配置网络接口中的说明。

Indicates that certain components have not been found and will be downloaded using the network.
图 9. 从网络安装

2.6. 分配磁盘空间

下一个菜单用于确定分配磁盘空间的方法。

Shows the different partition options. Example: Manual
图 10. 分区选择

bsdinstall 为用户提供了四种分配磁盘空间的方法

  • Auto (ZFS)分区创建了一个基于 ZFS 的根系统,并可选地支持用于引导环境的 GELI 加密。

  • Auto (UFS)分区使用UFS文件系统自动设置磁盘分区。

  • Manual分区允许高级用户从菜单选项创建自定义分区。

  • Shell打开一个 shell 提示符,高级用户可以在其中使用命令行实用程序(如gpart(8)fdisk(8)bsdlabel(8))创建自定义分区。

本节介绍在布局磁盘分区时需要考虑的事项。然后演示如何使用不同的分区方法。

2.6.1. 设计分区布局

文件系统的默认分区布局包括一个用于整个系统的一个文件系统。当使用UFS时,如果拥有足够的磁盘空间或多个磁盘,则可能值得考虑使用多个文件系统。在布局文件系统时,请记住硬盘驱动器从外轨到内轨传输数据的速度更快。因此,较小且访问量较大的文件系统应更靠近驱动器外部,而较大的分区(如/usr)应放置在磁盘的内部。最好按照以下顺序创建分区:/、swap、/var/usr

/var分区的尺寸反映了预期机器的使用情况。此分区用于保存邮箱、日志文件和打印机后台打印作业。邮箱和日志文件可能会根据用户数量和保留日志文件的时间长短而增长到意想不到的大小。平均而言,大多数用户很少需要在/var中超过大约 1 GB 的空闲磁盘空间。

有时,/var/tmp 需要大量的磁盘空间。安装新软件时,打包工具会在 /var/tmp 下提取软件包的临时副本。如果 /var/tmp 下没有足够的磁盘空间,安装大型软件包(如 Firefox 或 LibreOffice)可能会很麻烦。

/usr 分区包含许多支持系统的文件,包括 FreeBSD Ports 集合和系统源代码。此分区建议至少有 2GB 的空间。此外,请注意,默认情况下,用户的 home 目录位于 /usr/home 中,但可以放在另一个分区上。默认情况下,/home 是指向 /usr/home 的符号链接。

选择分区大小时,请记住空间需求。在一个分区空间不足而另一个分区几乎未使用时,可能会造成麻烦。

根据经验,交换分区的大小应约为物理内存 (RAM) 的两倍。具有最小 RAM 的系统(对于更大内存配置,RAM 更少)在使用更多交换空间时可能性能更好。配置过少的交换空间会导致 VM 页面扫描代码效率低下,并且如果以后添加更多内存,可能会导致问题。

在具有多个 SCSI 磁盘或在不同控制器上运行的多个 IDE 磁盘的大型系统上,建议在每个驱动器上配置交换空间,最多四个驱动器。交换分区的大小应大致相同。内核可以处理任意大小,但内部数据结构扩展到最大交换分区的 4 倍。使交换分区的大小保持一致将允许内核在磁盘之间最佳地条带化交换空间。大型交换空间可能会引发有关配置的总交换空间的内核警告消息。可以通过增加跟踪交换分配所需的内存量来提高限制,如警告消息中所述。在被迫重启之前,从失控程序中恢复可能更容易。

通过正确分区系统,在较小的写入密集型分区中引入的碎片不会蔓延到主要读取的分区。将写入负载分区保持在磁盘边缘附近将提高分区中 I/O 性能,而 I/O 性能发生得最多。虽然可能需要较大分区中的 I/O 性能,但将它们更多地移向磁盘边缘不会比将 /var 移到边缘带来明显的性能提升。

2.6.2. 使用 UFS 的引导分区

选择此方法后,将显示一个菜单,其中包含可用的磁盘。如果连接了多个磁盘,请选择要安装 FreeBSD 的磁盘。

Shows the list of disks on which FreeBSD can be installed
图 11. 从多个磁盘中选择

选择磁盘后,下一个菜单提示将安装到整个磁盘或使用可用空间创建分区。如果选择 整个磁盘,则会自动创建一个填充整个磁盘的通用分区布局。选择 分区将从磁盘上的未使用空间创建分区布局。

Menu asking the user if he wants to use all the available space on the disk or wants to make a partition
图 12. 选择整个磁盘或分区

选择 整个磁盘选项后,bsdinstall 会显示一个对话框,指示磁盘将被擦除。

Menu indicating the user that all data on the disk will be deleted and asking for confirmation
图 13. 确认

下一个菜单显示一个包含可用分区方案类型的列表。对于 amd64 计算机,GPT 通常是最合适的选择。与 GPT 不兼容的旧计算机应使用 MBR。其他分区方案通常用于不常见或旧的计算机。更多信息可在 分区方案 中找到。

Menu showing the user the different the different types of partition that exist and requesting one of them
图 14. 选择分区方案

创建分区布局后,请查看它以确保它满足安装的需要。选择 恢复将把分区重置为其原始值。按下 自动将重新创建自动 FreeBSD 分区。还可以手动创建、修改或删除分区。分区正确后,选择 完成继续安装。

Menu showing created partitions
图 15. 查看已创建的分区

配置磁盘后,下一个菜单提供了在格式化所选驱动器之前进行更改的最后机会。如果需要进行更改,请选择 后退返回到主分区菜单。 恢复并退出退出安装程序,而不会对驱动器进行任何更改。否则,选择 提交开始安装过程。

Menu indicating to the user that all changes will be written to disk and informing that if he decides to continue the existing data will be permanently deleted.
图 16. 最终确认

要继续安装过程,请转到 获取发行版文件

2.6.3. 手动分区

选择此方法将打开分区编辑器

Menu showing the Partition Editor.
图 17. 手动创建分区

突出显示安装驱动器(在本例中为 ada0)并选择 创建以显示可用分区方案的菜单

Menu showing the different kind of partition schemes
图 18. 手动创建分区

对于 amd64 计算机,GPT 通常是最合适的选择。与 GPT 不兼容的旧计算机应使用 MBR。其他分区方案通常用于不常见或旧的计算机。

表 1. 分区方案
缩写描述

APM

Apple Partition Map,由 PowerPC® 使用。

BSD

没有 MBR 的 BSD 标签,有时称为危险专用模式,因为非 BSD 磁盘实用程序可能无法识别它。

GPT

GUID 分区表.

MBR

主引导记录.

选择并创建分区方案后,再次选择 创建以创建分区。 Tab 键用于将焦点放在字段上(在循环遍历 <OK><Options><Cancel> 后)。

Menu requesting type
图 19. 手动创建分区

标准 FreeBSD GPT 安装至少使用三个分区,包括 UFS 或 ZFS

  • freebsd-bootefi - 包含 FreeBSD 引导代码。

  • freebsd-ufs - FreeBSD UFS 文件系统。

  • freebsd-zfs - FreeBSD ZFS 文件系统。有关 ZFS 的更多信息,请参阅 Z 文件系统 (ZFS)

  • freebsd-swap - FreeBSD 交换空间。

有关可用 GPT 分区类型的描述,请参阅 gpart(8)

可以创建多个文件系统分区。有些人更喜欢传统的布局,其中 //var/tmp/usr 分别位于自己的分区上。

请注意,/tmp 可以稍后添加为基于内存的文件系统(tmpfs(5)),适用于具有足够内存的系统。

有关示例,请参阅 创建传统的分裂文件系统分区

可以使用常见的缩写输入 大小K 表示千字节,M 表示兆字节,或 G 表示千兆字节。

正确的扇区对齐可提供最佳性能,并且使分区大小成为 4K 字节的偶数倍有助于确保在具有 512 字节或 4K 字节扇区的驱动器上对齐。通常,使用分区大小为 1M 或 1G 的偶数倍是最简单的方法,以确保每个分区都从 4K 的偶数倍开始。有一个例外:由于当前引导代码的限制,freebsd-boot 分区不应大于 512K。

如果分区将包含文件系统,则需要 挂载点。如果只创建一个 UFS 分区,则挂载点应为 /

标签是分区将被识别的名称。如果驱动器连接到不同的控制器或端口,驱动器名称或编号可能会更改,但分区标签不会更改。在 /etc/fstab 等文件中引用标签而不是驱动器名称和分区编号使系统更能容忍硬件更改。当磁盘连接时,GPT 标签出现在 /dev/gpt/ 中。其他分区方案具有不同的标签功能,它们的标签出现在 /dev/ 中的不同目录中。

在每个分区上使用唯一的标签以避免来自相同标签的冲突。可以将计算机名称、用途或位置的一些字母添加到标签中。例如,在名为 lab 的计算机上,将 UFS 根分区命名为 labrootrootfslab

示例 1. 创建传统的分裂文件系统分区

对于 //var/tmp/usr 目录分别位于其自身分区上的文件系统的传统分区布局,请创建一个 GPT 分区方案,然后按照所示创建分区。显示的分区大小是针对 20G 目标磁盘的典型大小。如果目标磁盘上有更多可用空间,则可以使用更大的交换空间或 /var 分区。此处显示的标签以 ex 为前缀表示“示例”,但读者应使用上面所述的其他唯一标签值。

默认情况下,FreeBSD 的 gptboot 预期第一个 UFS 分区为 / 分区。

分区类型大小挂载点标签

freebsd-boot

512K

freebsd-ufs

2G

/

exrootfs

freebsd-swap

4G

exswap

freebsd-ufs

2G

/var

exvarfs

freebsd-ufs

1G

/tmp

extmpfs

freebsd-ufs

接受默认值(磁盘的剩余部分)

/usr

exusrfs

创建自定义分区后,选择 完成继续安装,然后转到 获取发行版文件

2.6.4. 使用 Root-on-ZFS 的引导分区

此分区模式仅适用于整个磁盘,并将擦除整个磁盘的内容。主 ZFS 配置菜单提供许多选项来控制池的创建。

Menu showing the different options to configure the ZFS pool
图 20. ZFS 分区菜单

以下是此菜单中选项的摘要

  • 安装 - 使用所选选项继续安装。

  • 池类型/磁盘 - 配置将构成池的 池类型 和磁盘。自动 ZFS 安装程序目前仅支持创建单个顶级 vdev,除非处于条带模式。要创建更复杂的池,请使用 Shell 模式分区 中的说明创建池。

  • 重新扫描设备 - 重新填充可用磁盘列表。

  • 磁盘信息 - 此菜单可用于检查每个磁盘,包括其分区表以及其他各种信息,例如设备型号和序列号(如果可用)。

  • 池名称 - 设置池的名称。默认名称为 zroot

  • 强制使用 4K 扇区? - 强制使用 4K 扇区。默认情况下,安装程序会自动创建对齐到 4K 边界的分区,并强制 ZFS 使用 4K 扇区。即使对于 512 字节扇区磁盘,这也很安全,并且额外的好处是可以确保在 512 字节磁盘上创建的池将来能够添加 4K 扇区磁盘,无论是作为额外的存储空间还是作为故障磁盘的替换。按 Enter 键选择是否激活。

  • 加密磁盘? - 加密磁盘允许用户使用 GELI 加密磁盘。有关磁盘加密的更多信息,请参阅 “使用 geli 进行磁盘加密”。按 Enter 键选择是否激活。

  • 分区方案 - 选择分区方案。在大多数情况下,GPT 是推荐的选择。按 Enter 键在不同的选项之间进行选择。

  • 交换空间大小 - 设置交换空间的大小。

  • 镜像交换空间? - 是否在磁盘之间镜像交换空间。请注意,启用镜像交换空间将破坏崩溃转储。按 Enter 键选择是否激活。

  • 加密交换空间? - 是否加密交换空间。这将在系统每次启动时使用临时密钥加密交换空间,并在重新启动时将其丢弃。按 Enter 键选择是否激活。有关交换空间加密的更多信息,请参阅 “加密交换空间”

选择 T 配置池类型以及构成池的磁盘。

Menu requesting the Virtual Device type. Ex: stripe
图 21. ZFS 池类型

以下是此菜单中可以选择池类型的摘要

  • stripe - 条带化提供了所有连接设备的最大存储空间,但没有冗余。如果仅一个磁盘发生故障,池中的数据将不可挽回地丢失。

  • mirror - 镜像在每个磁盘上存储所有数据的完整副本。镜像提供了良好的读取性能,因为数据是从所有磁盘并行读取的。写入性能较慢,因为数据必须写入池中的所有磁盘。允许除一个磁盘之外的所有磁盘发生故障。此选项至少需要两个磁盘。

  • raid10 - 条带化镜像。提供最佳性能,但存储空间最少。此选项至少需要偶数个磁盘,并且至少需要四个磁盘。

  • raidz1 - 单冗余 RAID。允许一个磁盘同时发生故障。此选项至少需要三个磁盘。

  • raidz2 - 双冗余 RAID。允许两个磁盘同时发生故障。此选项至少需要四个磁盘。

  • raidz3 - 三冗余 RAID。允许三个磁盘同时发生故障。此选项至少需要五个磁盘。

选择池类型后,将显示可用磁盘列表,并提示用户选择一个或多个磁盘组成池。然后验证配置以确保选择了足够的磁盘。如果验证失败,请选择 <更改选择> 返回磁盘列表或 <返回> 更改池类型

Menu requesting how many disks will be added to the pool
图 22. 磁盘选择
Menu indicating that not enough disks have been selected.
图 23. 无效选择

如果列表中缺少一个或多个磁盘,或者在安装程序启动后连接了磁盘,请选择 - 重新扫描设备 以重新填充可用磁盘列表。

Device rescan
图 24. 重新扫描设备

为了避免意外擦除错误的磁盘,可以使用 - 磁盘信息 菜单检查每个磁盘,包括其分区表以及其他各种信息,例如设备型号和序列号(如果可用)。

Menu showing the information of the partitions.
图 25. 分析磁盘

选择 N 配置池名称。输入所需的名称,然后选择 <确定> 设置它或 <取消> 返回主菜单并保留默认名称。

Menu requesting the name of the pool.
图 26. 池名称

选择 S 设置交换空间量。输入所需的交换空间量,然后选择 <确定> 设置它或 <取消> 返回主菜单并使用默认量。

Menu requesting the amount of swap memory
图 27. 交换空间量

将所有选项设置为所需的值后,选择菜单顶部的 >>> 安装 选项。然后,安装程序提供最后一次取消的机会,然后再销毁所选驱动器的内容以创建 ZFS 池。

Menu indicating to the user that the data will be lost
图 28. 最后机会

如果启用了 GELI 磁盘加密,安装程序将提示两次输入用于加密磁盘的密码。然后开始加密的初始化。

Menu requesting the password to encrypt the devices.
图 29. 磁盘加密密码
Menu showing that the encryption is initializing.
图 30. 初始化加密

然后安装正常进行。要继续安装,请转到 获取发行版文件

2.6.5. Shell 模式分区

在创建高级安装时,bsdinstall 分区菜单可能无法提供所需的灵活性。高级用户可以从分区菜单中选择 Shell 选项,以手动分区驱动器、创建文件系统、填充/tmp/bsdinstall_etc/fstab,并在/mnt下挂载文件系统。完成后,键入exit返回到 bsdinstall 并继续安装。

2.7. 获取发行版文件

安装时间会根据所选的发行版、安装介质和计算机速度而有所不同。一系列消息将指示进度。

首先,安装程序格式化所选磁盘并初始化分区。接下来,对于bootonly 介质mini memstick,它会下载所选组件

Menu showing the download of the different components.
图 31. 获取发行版文件

接下来,验证发行版文件的完整性,以确保它们在下载过程中或从安装介质读取时未损坏

Menu showing the verification of the different components.
图 32. 验证发行版文件

最后,将经过验证的发行版文件解压缩到磁盘

Menu showing the extraction of the different components.
图 33. 解压缩发行版文件

所有请求的发行版文件都解压缩后,bsdinstall 将显示第一个安装后配置屏幕。下一节将介绍可用的安装后配置选项。

2.8. 网络接口、帐户、时区、服务和加固

2.8.1. 设置root 密码

首先,必须设置root 密码。输入密码时,屏幕上不会显示输入的字符。必须输入两次密码以防止输入错误。

Menu showing requesting the password for the root user.
图 34. 设置root 密码

2.8.2. 配置网络接口

接下来,将显示计算机上找到的网络接口列表。选择要配置的接口。

Menu showing the different network interfaces to configure.
图 35. 选择网络接口

如果选择以太网接口,安装程序将跳至 选择 IPv4 网络 中显示的菜单。如果选择无线网络接口,系统将改为扫描无线接入点

Menu showing wireless network scanning.
图 36. 扫描无线接入点

无线网络由服务集标识符 (SSID) 标识;每个网络都有一个简短的唯一名称。扫描期间找到的 SSID 将列出,后跟该网络可用的加密类型的描述。如果所需 SSID 未出现在列表中,请选择 重新扫描 以再次扫描。如果所需网络仍未出现,请检查天线连接是否存在问题,或尝试将计算机移至更靠近接入点的位置。每次更改后重新扫描。

Menu showing the different wireless networks to connect to.
图 37. 选择无线网络

接下来,输入连接到所选无线网络的加密信息。强烈建议使用 WPA2 加密而不是 WEP 等旧的加密类型,因为后者提供的安全性很低。如果网络使用 WPA2,请输入密码,也称为预共享密钥 (PSK)。出于安全原因,输入框中键入的字符将显示为星号。

Menu requesting the wireless network password.
图 38. WPA2 设置

接下来,选择是否应在以太网或无线接口上配置 IPv4 地址

Menu indicating if IPv4 wants to be configured for the selected interface.
图 39. 选择 IPv4 网络

IPv4 配置有两种方法。DHCP 将自动正确配置网络接口,如果网络提供 DHCP 服务器,则应使用此方法。否则,需要手动输入寻址信息作为静态配置。

不要输入随机的网络信息,因为它们不会起作用。如果 DHCP 服务器不可用,请从网络管理员或互联网服务提供商处获取 所需网络信息 中列出的信息。

如果 DHCP 服务器可用,请在下一个菜单中选择 以自动配置网络接口。安装程序似乎会暂停一分钟左右,因为它正在查找 DHCP 服务器并获取系统的寻址信息。

Menu indicating if DHCP wants to be configured for the selected interface.
图 40. 选择 IPv4 DHCP 配置

如果 DHCP 服务器不可用,请选择 并在此菜单中输入以下寻址信息

Menu requesting data to configure IPv4 network.
图 41. IPv4 静态配置
  • IP 地址 - 分配给此计算机的 IPv4 地址。该地址必须唯一,并且本地网络上的其他设备不得使用。

  • 子网掩码 - 网络的子网掩码。

  • 默认路由器 - 网络默认网关的 IP 地址。

下一个屏幕将询问是否应为接口配置 IPv6。如果 IPv6 可用且需要,请选择 以选择它。

Menu indicating if IPv6 wants to be configured for the selected interface.
图 42. 选择 IPv6 网络

IPv6 也有两种配置方法。无状态地址自动配置 (SLAAC) 将自动向本地路由器请求正确的配置信息。有关更多信息,请参阅 rfc4862。静态配置需要手动输入网络信息。

如果 IPv6 路由器可用,请在下一个菜单中选择 以自动配置网络接口。安装程序似乎会暂停一分钟左右,因为它正在查找路由器并获取系统的寻址信息。

Menu indicating if SLAAC wants to be configured for the selected interface.
图 43. 选择 IPv6 SLAAC 配置

如果 IPv6 路由器不可用,请选择 并在此菜单中输入以下寻址信息

Menu requesting data to configure IPv6 network.
图 44. IPv6 静态配置
  • IPv6 地址 - 分配给此计算机的 IPv6 地址。该地址必须唯一,并且本地网络上的其他设备不得使用。

  • 默认路由器 - 网络默认网关的 IPv6 地址。

最后一个网络配置菜单用于配置域名系统 (DNS) 解析器,该解析器将主机名转换为网络地址并反之亦然。如果使用 DHCP 或 SLAAC 自动配置网络接口,则解析器配置值可能已填写。否则,在搜索字段中输入本地网络的域名。DNS #1DNS #2 是 DNS 服务器的 IPv4 和/或 IPv6 地址。至少需要一个 DNS 服务器。

Menu requesting data to configure DNS for the network.
图 45. DNS 配置

配置接口后,选择一个与安装 FreeBSD 的计算机位于同一世界区域的镜像站点。当镜像靠近目标计算机时,可以更快地检索文件,从而减少安装时间。

选择ftp://download.freebsd.org (主站点) 将自动路由到最近的镜像。

Menu requesting a network mirror.
图 46. 选择镜像

2.8.3. 设置时区

接下来的菜单系列用于通过选择地理区域、国家/地区和时区来确定正确的本地时间。设置时区允许系统自动校正区域时间变化(例如夏令时)并正确执行其他与时区相关的功能。

此处显示的示例适用于位于欧洲西班牙大陆时区的机器。选择将根据地理位置而有所不同。

Menu requesting the timezone region.
图 47. 选择区域

使用方向键选择相应的区域,然后按Enter

Menu requesting the timezone country.
图 48. 选择国家/地区

使用方向键选择相应的国家/地区,然后按Enter

Menu requesting the timezone zone.
图 49. 选择时区

使用方向键选择相应的时区,然后按Enter

Menu requesting confirmation of the selected timezone.
图 50. 确认时区

确认时区的缩写是否正确。

Menu requesting the system date.
图 51. 选择日期

使用方向键选择相应的日期,然后按设置日期。或者,可以通过按跳过来跳过日期选择。

Menu requesting the system time.
图 52. 选择时间

使用方向键选择相应的时间,然后按设置时间。或者,可以通过按跳过来跳过时间选择。

2.8.4. 启用服务

下一个菜单用于配置系统启动时将启动哪些系统服务。所有这些服务都是可选的。仅启动系统正常运行所需的那些服务。

Menu showing the different services available.
图 53. 选择要启用的其他服务

以下是可以在此菜单中启用的服务的摘要

  • local_unbound - 启用 DNS 本地 unbound。需要记住的是,此配置仅适用于用作本地缓存转发解析器。如果目标是为整个网络设置解析器,请安装dns/unbound

  • sshd - 安全外壳 (SSH) 守护程序用于通过加密连接远程访问系统。仅当系统应可用于远程登录时才启用此服务。

  • moused - 如果要从命令行系统控制台使用鼠标,请启用此服务。

  • ntpdate - 在启动时启用自动时钟同步。请注意,此程序的功能现在已在ntpd(8)守护程序中提供,并且ntpdate(8)实用程序将很快被淘汰。

  • ntpd - 用于自动时钟同步的网络时间协议 (NTP) 守护程序。如果希望将系统时钟与远程时间服务器或池同步,请启用此服务。

  • powerd - 用于电源控制和节能的系统电源控制实用程序。

  • dumpdev - 崩溃转储在调试系统问题时很有用,因此鼓励用户启用它们。

2.8.5. 启用强化安全选项

下一个菜单用于配置将启用的哪些安全选项。所有这些选项都是可选的。但鼓励使用它们。

Menu shoring the different hardening security options.
图 54. 选择强化安全选项

以下是可以在此菜单中启用的选项的摘要

  • hide_uids - 隐藏以其他用户 (UID) 身份运行的进程。这可以防止非特权用户查看其他用户的运行进程。

  • hide_gids - 隐藏以其他组 (GID) 身份运行的进程。这可以防止非特权用户查看其他组的运行进程。

  • hide_jail - 隐藏在 jail 中运行的进程。这可以防止非特权用户查看在 jail 内运行的进程。

  • read_msgbuf - 禁用非特权用户读取内核消息缓冲区。防止非特权用户使用dmesg(8)查看来自内核日志缓冲区的消息。

  • proc_debug - 禁用非特权用户的进程调试功能。禁用各种非特权进程间调试服务,包括一些 procfs 功能、ptrace()ktrace()。请注意,这也会阻止诸如lldb(1)truss(1)procstat(1)等调试工具,以及某些脚本语言(如 PHP)中的一些内置调试功能。

  • random_pid - 随机化进程的 PID。

  • clear_tmp - 系统启动时清理/tmp

  • disable_syslogd - 禁用打开 syslogd 网络套接字。默认情况下,FreeBSD 以安全的方式使用-s运行 syslogd。这可以防止守护程序侦听端口 514 上的传入 UDP 请求。启用此选项后,syslogd 将改为使用-ss运行,这可以防止 syslogd 打开任何端口。有关更多信息,请参阅syslogd(8)

  • disable_sendmail - 禁用 sendmail 邮件传输代理。

  • secure_console - 在进入单用户模式时,使命令提示符请求root密码。

  • disable_ddtrace - DTrace 可以运行在影响正在运行的内核的模式下。除非明确启用,否则不得使用破坏性操作。使用-w在使用 DTrace 时启用此选项。有关更多信息,请参阅dtrace(1)

  • enable_aslr - 启用地址空间布局随机化。有关地址空间布局随机化的更多信息,可以查阅维基百科文章

2.8.6. 添加用户

下一个菜单提示创建至少一个用户帐户。建议使用用户帐户而不是以root身份登录系统。以root身份登录时,基本上对可以执行的操作没有限制或保护。以普通用户身份登录更安全。

选择以添加新用户。

Menu requesting if a user want to be added to the system.
图 55. 添加用户帐户

按照提示并输入用户帐户所需的的信息。输入用户信息中显示的示例创建了asample用户帐户。

Menu requesting different information for the new user.
图 56. 输入用户信息

以下是输入信息的摘要

  • 用户名 - 用户登录时将输入的名称。一个常见的约定是使用名字的首字母加上姓氏,只要每个用户名在系统中都是唯一的。用户名区分大小写,并且不应包含任何空格。

  • 全名 - 用户的完整姓名。这可以包含空格,并用作用户帐户的描述。

  • Uid - 用户 ID。这通常留空,以便系统自动分配值。

  • 登录组 - 用户的组。这通常留空以接受默认值。

  • 邀请用户加入其他组? - 用户将被添加为成员的其他组。如果用户需要管理员访问权限,请在此处键入wheel

  • 登录类 - 通常留空以使用默认值。

  • Shell - 键入列出的值之一以设置用户的交互式 shell。有关 shell 的更多信息,请参阅Shell

  • 主目录 - 用户的主目录。默认值通常是正确的。

  • 主目录权限 - 用户主目录的权限。默认值通常是正确的。

  • 使用基于密码的身份验证? - 通常为,以便在登录时提示用户输入其密码。

  • 使用空密码? - 通常为,因为空密码或空白密码是不安全的。

  • 使用随机密码? - 通常为,以便用户可以在下一个提示中设置自己的密码。

  • 输入密码 - 此用户的密码。在屏幕上不会显示键入的字符。

  • 再次输入密码 - 必须再次输入密码以进行验证。

  • 创建后锁定帐户? - 通常为,以便用户可以登录。

输入所有详细信息后,将显示摘要以供查看。如果发生错误,请输入进行更正。一切正确后,输入创建新用户。

Menu showing the information of the new user and requesting if everything is correct.
图 57. 退出用户和组管理

如果有更多用户要添加,请使用回答添加另一个用户?问题。输入以完成添加用户并继续安装。

有关添加用户和用户管理的更多信息,请参阅用户和基本帐户管理

2.8.7. 最终配置

在安装和配置所有内容后,将提供最后一次修改设置的机会。

Menu showing different options to perform before finishing the installation. Ex: Add user
图 58. 最终配置

使用此菜单在完成安装之前进行任何更改或执行任何其他配置。

配置完成后,选择退出

Menu showing that the installation has finished. And asking if you want to open a shell to make manual changes.
图 59. 手动配置

bsdinstall 会提示您在重新启动到新系统之前需要进行的任何其他配置。选择退出到新系统中的 shell,或选择继续安装的最后一步。

Menu showing that the installation has finished and asking whether to reboot the system or access the Live CD.
图 60. 完成安装

如果需要进一步配置或特殊设置,请选择Live CD以 Live CD 模式启动安装介质。

如果安装完成,请选择重启以重新启动计算机并启动新的 FreeBSD 系统。请勿忘记移除 FreeBSD 安装介质,否则计算机可能会再次从中启动。

FreeBSD 启动时,会显示信息消息。系统完成启动后,将显示登录提示。在login:提示符下,输入安装期间添加的用户名。避免以root身份登录。有关在需要管理访问权限时如何成为超级用户的说明,请参阅超级用户帐户

可以通过按下Scroll-Lock打开回滚缓冲区来查看启动期间显示的消息。可以使用PgUpPgDn和箭头键在消息中回滚。完成后,再次按下Scroll-Lock以解锁显示并返回到控制台。要在系统运行一段时间后查看这些消息,请从命令提示符处键入less /var/run/dmesg.boot。查看完后,按q返回命令行。

如果在选择要启用的其他服务中启用了 sshd,则第一次启动可能会稍微慢一些,因为系统会生成 SSH 主机密钥。随后的启动将更快。然后,密钥的指纹将如下例所示显示

Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 [email protected]
The key's randomart image is:
+--[RSA1 1024]----+
|    o..          |
|   o . .         |
|  .   o          |
|       o         |
|    o   S        |
|   + + o         |
|o . + *          |
|o+ ..+ .         |
|==o..o+E         |
+-----------------+
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 [email protected]
The key's randomart image is:
+--[ DSA 1024]----+
|       ..     . .|
|      o  .   . + |
|     . ..   . E .|
|    . .  o o . . |
|     +  S = .    |
|    +  . = o     |
|     +  . * .    |
|    . .  o .     |
|      .o. .      |
+-----------------+
Starting sshd.

有关指纹和 SSH 的更多信息,请参阅OpenSSH

FreeBSD 默认情况下不安装图形环境。有关安装和配置图形窗口管理器的更多信息,请参阅X 窗口系统

正确关闭 FreeBSD 计算机有助于保护数据和硬件免受损坏。在系统正确关闭之前,请勿关闭电源!如果用户是wheel组的成员,请在命令行中键入su并输入root密码以成为超级用户。然后,键入shutdown -p now,系统将干净地关闭,并且如果硬件支持,则会自动关闭。

2.9. 故障排除

本节介绍基本的安装故障排除,例如人们报告的常见问题。

检查 FreeBSD 发布信息页面上列出的硬件说明FreeBSD 发布信息,以确保硬件受支持。

可以通过更新各种硬件组件(最值得注意的是主板)上的固件来避免或缓解某些安装问题。主板固件通常称为 BIOS。大多数主板和计算机制造商都有一个网站提供升级和升级信息。

制造商通常建议除非有充分的理由(例如关键更新),否则不要升级主板 BIOS。升级过程可能会出错,导致 BIOS 不完整并使计算机无法运行。

如果系统在启动期间探测硬件时挂起或在安装过程中表现异常,则 ACPI 可能是罪魁祸首。如果在启动期间检测到 ACPI,FreeBSD 会在 i386 和 amd64 平台上广泛使用系统 ACPI 服务来帮助系统配置。不幸的是,ACPI 驱动程序和系统主板以及 BIOS 固件中仍然存在一些错误。可以通过在第三阶段引导加载程序中设置hint.acpi.0.disabled提示来禁用 ACPI

set hint.acpi.0.disabled="1"

每次启动系统时都会重置此设置,因此需要将hint.acpi.0.disabled="1"添加到/boot/loader.conf文件中。有关引导加载程序的更多信息,请参阅“概要”

2.10. 使用 Live CD

bsdinstall 的欢迎菜单(如欢迎菜单中所示)提供了Live CD选项。这对那些仍在考虑 FreeBSD 是否适合他们的操作系统并希望在安装之前测试一些功能的人很有用。

在使用Live CD之前,应注意以下几点

  • 要访问系统,需要身份验证。用户名为root,密码为空。

  • 由于系统直接从安装介质运行,因此性能将明显慢于安装在硬盘上的系统。

  • 此选项仅提供命令提示符,而不提供图形界面。


最后修改时间:2024 年 9 月 23 日,作者:Fernando Apesteguía