第二章 安装FreeBSD2.1. 简介2.2. 最低硬件要求2.3. 预安装任务2.3.1. 准备安装介质2.3.1.1. 将映像文件写入USB2.4. 开始安装2.4.1. FreeBSD引导加载程序菜单2.5. 使用 bsdinstall 2.5.1. 选择键盘映射菜单2.5.2. 设置主机名2.5.3. 选择要安装的组件2.5.4. 从网络安装2.6. 分配磁盘空间2.6.1. 设计分区布局2.6.2. 使用UFS进行引导分区2.6.3. 手动分区示例1. 创建传统的分割文件系统分区2.6.4. ZFS上基于根的引导分区2.6.5. Shell模式分区2.7. 获取分发文件2.8. 网络接口、帐户、时区、服务和强化2.8.1. 设置 root 密码2.8.2. 配置网络接口2.8.3. 设置时区2.8.4. 启用服务2.8.5. 启用强化安全选项2.8.6. 添加用户2.8.7. 最终配置2.9. 排除故障2.10. 使用 Live CD
FreeBSD支持多种架构,包括amd64、ARM®、RISC-V®和PowerPC®。根据架构和平台的不同,可以下载不同的映像来安装或直接运行FreeBSD。
映像类型有:
qcow2 、 vmdk 、 vhd 和原始设备映像(raw device images)。这些不是安装映像,而是预装了FreeBSD并准备好进行安装后任务的映像。虚拟机映像也常用于云环境。本章的其余部分描述了第三种情况,解释了如何使用名为 bsdinstall 的基于文本的安装程序安装FreeBSD。安装程序和此处显示的内容之间可能存在细微差异,因此请将本章用作一般指南,而不是一组文字说明。
阅读本章可以了解:
bsdinstall 。bsdinstall 会问的问题、它们的含义以及如何回答。安装FreeBSD的硬件要求因架构和版本而异。FreeBSD版本支持的硬件架构和设备列在FreeBSD版本信息页面上。FreeBSD下载页面还提供了为不同架构选择正确映像的建议。
一旦确定系统满足安装FreeBSD的最低硬件要求,就应该下载安装文件并准备安装介质。
xxxxxxxxxx当想要在已经安装了另一个操作系统的系统上使用FreeBSD时,请考虑使用虚拟化。在继续安装之前,通过验证此检查表中的项目来检查系统是否已准备就绪:
备份重要数据
在安装任何操作系统之前,请务必先备份所有重要数据。不要将备份存储在正在安装的系统上。相反,将数据保存到可移动磁盘,如USB驱动器、网络上的另一个系统或在线备份服务。在开始安装之前测试备份,以确保它包含所有需要的文件。一旦安装程序格式化了系统的磁盘,存储在该磁盘上的所有数据都将丢失。
决定在哪里安装FreeBSD
如果FreeBSD将是唯一安装的操作系统,则可以跳过此步骤。但是,如果FreeBSD将与另一个操作系统共享磁盘,请决定将哪个磁盘或分区用于FreeBSD。
在i386和amd64架构中,可以使用两种分区方案之一将磁盘划分为多个分区。传统的 主引导记录(Master Boot Record,MBR)保存了一个分区表,该表最多定义了四个主分区。由于历史原因,FreeBSD调用这些主分区 片(slices)。其中一个主分区可以制成包含多个逻辑分区的扩展分区。GUID分区表(GUID Partition Table,GPT)是一种更新、更简单的磁盘分区方法。常见的GPT实现允许每个磁盘最多128个分区,从而消除了对逻辑分区的需求。
FreeBSD引导加载程序(boot loader)需要主分区或GPT分区。如果所有主分区或GPT分区都已在使用中,则必须为FreeBSD释放一个分区。要创建分区而不删除现有数据,请使用分区大小调整工具缩小现有分区,并使用释放的空间创建新分区。
修改系统现有磁盘分区的另一种方法是使用虚拟化(【第二十四章 虚拟化】),它允许多个操作系统同时运行,而无需更改分区。
维基百科条目:磁盘分区软件列表中列出了各种免费和商业分区调整工具。GParted Live 是一张免费的Live CD,其中包含GParted分区编辑器。
xxxxxxxxxx如果使用得当,磁盘收缩(shrinking)实用程序可以安全地为创建新分区创建空间。由于存在选择错误分区的可能性,因此在修改磁盘分区之前,请务必备份任何重要数据并验证备份的完整性。包含不同操作系统的磁盘分区使在一台计算机上安装多个操作系统成为可能。
收集网络信息
某些FreeBSD安装方法需要网络连接才能下载安装文件。安装后,安装程序将提供设置系统网络接口的服务。
如果网络有DHCP服务器,它可以用于提供自动网络配置。如果DHCP不可用,则必须从本地网络管理员或互联网服务提供商处获取系统的以下网络信息:
检查FreeBSD勘误表(Errata)
尽管FreeBSD项目努力确保FreeBSD的每个版本都尽可能稳定,但偶尔也会出现bug。在极少数情况下,这些错误会影响安装过程。当这些问题被发现并修复时,它们会在每个版本的FreeBSD勘误表页面中注明。安装前请检查勘误表,以确保没有可能影响安装的问题。
所有版本的信息和勘误表都可以在 FreeBSD发布信息 页面上找到。
FreeBSD安装程序不是一个可以在其他操作系统中运行的应用程序。相反,下载FreeBSD安装文件,将其刻录到与其文件类型和大小相关的介质(CD、DVD或USB)上,然后从插入的介质启动系统进行安装。
FreeBSD安装文件可以在 FreeBSD下载页面 上找到。每个安装文件的名称都包括FreeBSD的发布版本、体系结构和文件类型。
安装文件有几种格式,用 xz(1) 压缩或未压缩。格式因计算机体系结构和媒体类型而异。
安装文件类型:
-bootonly.iso
这是最小的安装文件,因为它只包含安装程序。安装过程中需要一个可用的互联网连接,因为安装程序将下载完成FreeBSD安装所需的文件。此文件应刻录到光学介质。
-disk1.iso
此文件包含安装FreeBSD、其源代码和Ports Collection所需的所有文件。此文件应刻录到光学介质。
-dvd1.iso
此文件包含安装FreeBSD、其源代码和Ports Collection所需的所有文件。它还包含一组流行的二进制包,用于安装窗口管理器和一些应用程序,这样就可以从媒体安装完整的系统,而不需要连接到互联网。此文件应刻录到光学介质。
-memstick.img
此文件包含安装FreeBSD、其源代码和Ports Collection所需的所有文件。将此文件写入U盘,如【2.3.1.1. 将映像文件写入USB】所示。
-mini-memstick.img
与 -bootonly.iso 一样,它不包括安装文件,但会根据需要下载它们。安装过程中需要可用的互联网连接。应将其写入USB记忆棒,如【2.3.1.1. 将映像文件写入USB】所示所示。
下载映像文件后,从同一目录下载至少一个 校验和(checksum)文件。有两个校验和文件可用,以版本号和体系结构名称命名。例如:CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 和 CHECKSUM.SHA512-FreeBSD-13.1-RELEASE-amd64 。
下载其中一个文件(或两个文件)后,计算映像文件的校验和,并将其与校验和文件中显示的校验和进行比较。请注意,需要将计算出的校验和与正确的文件进行比较,因为它们对应于两种不同的算法:SHA256和SHA512。FreeBSD提供了可用于计算校验和的sha256(1)和 sha512(1) 。其他操作系统也有类似的程序。
在FreeBSD中验证校验和可以通过执行以下命令使用 sha256sum(1) (和 sha512sum(1) )自动完成:
xxxxxxxxxx% sha256sum -c CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 FreeBSD-13.1-RELEASE-amd64-dvd1.isoFreeBSD-13.1-RELEASE-amd64-dvd1.iso: OK校验和必须完全匹配。如果校验和不匹配,则映像文件已损坏,必须重新下载。
*memstick.img 文件是记忆棒完整内容的 映像(image)。它不能作为文件复制到目标设备。有几个应用程序可用于将 *.img 写入USB记忆棒。本节介绍其中两个实用程序。
xxxxxxxxxx在继续之前,请备份U盘上的所有重要数据。此程序将擦除记忆棒上的现有数据。步骤。使用 dd 写入映像
xxxxxxxxxx此示例使用 */dev/da0* 作为写入映像的目标设备。请务必小心使用正确的设备,因为此命令将销毁指定目标设备上的现有数据。命令行实用程序可在BSD、Linux®和Mac OS®系统上使用。要使用 dd 刻录映像,请插入U盘并确定其设备名称。然后,指定下载的安装文件的名称和U盘的设备名称。此示例将amd64安装映像刻录到现有FreeBSD系统上的第一个USB设备上。
xxxxxxxxxx# 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®写入图像
xxxxxxxxxx请确保提供正确的驱动器号,因为指定驱动器上的现有数据将被覆盖和销毁。获取适用于Windows®的映像编写器
Image Writer for Windows®是一个免费应用程序,可以将图像文件正确写入记忆棒。从 win32diskimager主页 下载并解压缩到文件夹中。
用Image Writer编写映像
双击Win32DiskImager图标以启动程序。确认 Device 下显示的驱动器号是带有记忆棒的驱动器。单击文件夹图标,然后选择要写入记忆棒的映像。单击【Save】接受映像文件名。验证所有内容是否正确,以及记忆棒上的文件夹是否在其他窗口中打开。一切就绪后,单击【Write】将映像文件写入记忆棒。
默认情况下,在出现以下消息之前,安装程序不会对磁盘进行任何更改:
xxxxxxxxxxYour changes will now be written to disk. If youhave chosen to overwrite existing data, it willbe PERMANENTLY ERASED. Are you sure you want tocommit your changes?在此警告之前,可以随时退出安装。如果担心配置不正确,只需在此之前关闭计算机,就不会对系统的磁盘进行任何更改。
本节介绍如何从使用【2.3.1. 准备安装介质】中的说明准备的安装介质引导系统。使用可引导的USB记忆棒时,请在打开计算机之前插入USB记忆棒。从CD或DVD启动时,请打开计算机并在第一时间插入介质。如何配置系统以从插入的介质启动取决于体系结构。
系统从安装介质启动后,将显示类似于以下内容的菜单:

默认情况下,在引导到FreeBSD安装程序之前,菜单将等待10秒等待用户输入,或者如果已经安装了FreeBSD,则在引导到BSD之前。要暂停启动计时器以查看选择,请按 Space 键。要选择一个选项,请按其突出显示的数字、字符或键。以下选项可用。
Boot Muti User
这将继续FreeBSD引导过程。如果启动计时器已暂停,请按 1 、大写或小写 B 或 Enter 。
Boot Single User
此模式可用于修复现有的FreeBSD安装,如【15.2.4.1. 单用户模式】中所述。按 2 或大写或小写 S 键进入此模式。
Escape to loader prompt
这将引导系统进入修复提示,其中包含有限数量的低级命令。此提示在【15.2.3. 第三阶段】中进行了描述。按 3 或 Esc 键启动到此提示。
Reboot
重启系统
Cons
允许通过 video(视频)、serial(串口)、Dual(双路(serial primary))或 Dual(双路(Video primary))继续安装
Kernel
加载不同内核
Boot Options
打开FreeBSD引导选项菜单中所示和下所述的菜单。

引导选项菜单分为两部分。第一部分可用于返回主启动菜单或将任何切换的选项重置为默认值。
下一节用于通过按选项突出显示的数字或字符将可用选项切换为 On 或 Off 。在修改这些选项之前,系统将始终使用这些选项的设置启动。使用此菜单可以切换几个选项:
ACPI Support
如果系统在启动过程中挂起,请尝试将此选项切换到 Off 。此选项仅在ACPI支持可用但不需要时存在。
Safe Mode
如果系统在引导过程中仍然挂起,即使ACPI支持设置为关闭,请尝试将此选项设置为 On 。
Single User
将此选项切换到 On 以修复现有的FreeBSD安装,如【15.2.4.1. 单用户模式】中所述。问题解决后,将其设置回 Off 。
Verbose
将此选项切换为 On ,以便在启动过程中查看更详细的消息。这在排除硬件故障时非常有用。
做出所需选择后,按 1 或 Backspace 返回主引导菜单,然后按 Enter 继续引导到FreeBSD。当FreeBSD执行硬件设备探测并加载安装程序时,将出现一系列引导消息。启动完成后,将显示欢迎菜单中显示的欢迎菜单。

按 Enter 键选择默认的[Install]以进入安装程序。本章的其余部分将介绍如何使用此安装程序。否则,使用向右或向左箭头或彩色字母选择所需的菜单项。[Shell]可用于访问FreeBSD Shell,以便在安装前使用命令行实用程序准备磁盘。在安装FreeBSD之前,可以使用[Live-CD]选项试用FreeBSD。实时版本在【2.10. 使用Live-CD】中进行了描述。
xxxxxxxxxx要查看引导消息,包括硬件设备探测,请按大写或小写 <kbd>S</kdb> ,然后按Enter键访问shell。在shell提示符下,键入 `more/var/run/dmesg.boot` ,并使用空格键滚动浏览消息。完成后,键入 `exit` 返回欢迎菜单。bsdinstall 本节显示了 bsdinstall 菜单的顺序以及在安装系统之前将询问的信息类型。使用箭头键突出显示菜单选项,然后使用空格键选择或取消选择该菜单项。完成后,按 Enter 键保存选择并移动到下一个屏幕。
在开始该过程之前, bsdinstall 将加载键映射文件,如键映射加载中所示。

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

xxxxxxxxxx按Esc键将退出此菜单并使用默认键映射。如果键盘映射的选择不明确,美国ISO-8859-1也是一个安全的选择。此外,在选择其他键映射时,用户可以尝试键映射并确保其正确,然后再继续,如键映射测试菜单所示。

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

键入一个对网络唯一的主机名。它应该是一个完全限定的主机名(fully-qualified hostname),例如 machine3.example.com 。
接下来, bsdinstall 将提示选择要安装的可选组件。

决定安装哪些组件在很大程度上取决于系统的预期用途和可用磁盘空间量。FreeBSD内核和用户区,统称为 base system(基础系统),始终被安装。根据架构的不同,其中一些组件可能不会出现:
base-dbg
基本工具,如cat和ls,以及许多其他工具,都激活了调试符号。
kernel-dbg
激活了调试符号的内核和模块。
lib32-dbg
兼容库,用于在64位版本的FreeBSD上运行32位应用程序,并激活调试符号。
lib32
兼容库,用于在64位版本的FreeBSD上运行32位应用程序。
ports
FreeBSD Ports Collection是一组文件,可以自动下载、编译和安装第三方软件包。【4. 安装应用程序:Packages和Ports】讨论了如何使用Ports Collection。
xxxxxxxxxx安装程序不会检查是否有足够的磁盘空间。仅当有足够的硬盘空间可用时,才选择此选项。FreeBSD Ports Collection大约占用3GB的磁盘空间。src
内核和用户区的完整FreeBSD源代码。虽然大多数应用程序不需要,但可能需要从Ports Collection构建设备驱动程序、内核模块或某些应用程序。它也用于开发FreeBSD本身。完整的源代码树需要1GB的磁盘空间,重新编译整个FreeBSD系统需要额外的5GB空间。
tests
FreeBSD测试套件。
下图“从网络安装”中显示的菜单仅在从 -bootonly.iso 或 -mini-memstick.img 安装时出现,因为此安装介质不包含安装文件的副本。由于必须通过网络连接检索安装文件,因此此菜单指示必须首先配置网络接口。如果此菜单显示在流程的任何步骤中,请记住按照【2.8.2. 配置网络接口】中的说明进行操作。

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

bsdinstall 为用户提供了四种分配磁盘空间的方法:
Auto (ZFS)
在ZFS系统上创建根,并为 引导环境 (boot environments)提供可选的GELI加密支持。
AUTO (UFS)
使用UFS文件系统自动设置磁盘分区。
Manual
允许高级用户从菜单选项创建自定义分区。
Shell
打开一个Shell提示符,高级用户可以在其中使用 gpart(8) 、 fdisk(8) 和 bsdlabel(9) 等命令行实用程序创建自定义分区。
本节介绍布局磁盘分区时需要考虑的事项。然后,它演示了如何使用不同的分区方法。
文件系统的默认分区布局包括整个系统的一个文件系统。使用 UFS 时,可能值得考虑使用具有足够磁盘空间或多个可用磁盘的多个文件系统。在布局文件系统时,请记住 硬盘驱动器外圈轨道比内圈轨道传输数据更快 。因此,较小和重度访问文件系统应该更靠近驱动器的外部,而像 /usr 这样的较大分区应该放置在磁盘的内部。最好按照类似于 / 、 swap 、/var 和 /usr 的顺序创建分区。
/var 分区的大小反映了预期机器的使用情况。此分区用于保存邮箱、日志文件和打印机后台打印。邮箱和日志文件可能会增长到意外的大小,具体取决于用户数量和日志文件的保存时间。平均而言,大多数用户在 /var 中很少需要超过约1GB的可用磁盘空间。
有时, /var/tmp 中需要大量磁盘空间。安装新软件时,打包工具会在 /var/tmp 下提取包的临时副本。如果 /var/tmp 下没有足够的磁盘空间,安装大型软件包(如Firefox或LibreOffice)可能会很棘手。
/usr 分区保存了许多支持该系统的文件,包括FreeBSD Ports Collection和系统源代码。建议此分区至少有2GB的空间。此外,请注意,默认情况下,用户的主目录放置在 /usr/home 中,但也可以放置在另一个分区上。默认情况下,/home 是指向 /usr/home 的符号链接。
选择分区大小时,请记住空间要求。在一个分区中用完空间而几乎不使用另一个分区可能会很麻烦。
根据经验,交换分区的大小应该是物理内存(RAM)的两倍左右。具有最小RAM的系统(对于较大的内存配置,RAM更少)可能会在交换更多的情况下表现更好。配置太少的交换可能会导致VM页面扫描代码效率低下,如果添加更多内存,可能会在以后产生问题。
xAbsolute FreeBSD第2章关于交换空间的描述:长久以来,人们一直认为主机的交换量应该是物理内存的两倍。但现在这种想法不仅过时了,而且很危险。当一个进程开始灾难性地分配内存时,一旦系统用完虚拟内存,内核就会杀死该进程。i386平台将每个进程的内存使用限制在512MB,这意味着内核会很快停止此类失控的进程。但amd64系统具有巨大的虚拟内存空间。一个在磁盘和RAM之间来回切换千兆字节内存的系统将极其缓慢。现代主机应该只有足够的交换空间来执行其任务。现代系统上交换的主要用途是在系统死机和崩溃时有一个存储内存转储的地方。FreeBSD使用内核迷你转储,因此它们只转储内核内存。迷你转储比完整转储小得多。对于大多数情况,每10GB RAM提供1GB的交换空间应该就足够了。对于特殊场景,应考虑采用特殊手段。对于在不同控制器上运行多个SCSI磁盘或多个IDE磁盘的较大系统,建议在每个驱动器上配置交换,最多四个驱动器。交换分区的大小应该大致相同。内核可以处理任意大小的数据,但内部数据结构可以扩展到最大交换分区的4倍。保持交换分区接近相同的大小将允许内核在磁盘上优化条带交换空间。较大的交换大小可能会引发关于总配置交换的内核警告消息。根据警告消息的指示,通过增加用于跟踪交换分配的内存量来提高限制。在被迫重新启动之前,从失控的程序中恢复可能更容易。
通过正确地对系统进行分区,在较小的重度写(write-heave)分区中引入的碎片不会渗透到大部分读分区中。将写加载的(write-loaded)分区保持在更靠近磁盘边缘的位置,将提高发生最多的分区的I/O性能。虽然可能需要较大分区中的I/O性能,但将它们更多地移向磁盘边缘不会比将 /var 移到边缘带来显著的性能提升。
选择此方法后,菜单将显示可用磁盘。如果连接了多个磁盘,请选择要安装FreeBSD的磁盘。

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

选择【Entire Disk】选项后,bsdinstall 将显示一个对话框,指示将擦除磁盘。

下一个菜单显示了可用分区方案类型的列表。GPT通常是amd64计算机最合适的选择。与GPT不兼容的旧计算机应使用MBR。其他分区方案通常用于不常见或较旧的计算机。更多信息请参见【Table 1. 分区方案】。

创建分区布局后,请对其进行审查,以确保其满足安装需求。选择【Revert】将把分区重置为其原始值。按【Auto】将重新创建FreeBSD自动分区。分区也可以手动创建、修改或删除。分区正确后,选择【Finish】继续安装。

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

要继续安装过程,请转到【2.7. 获取分发文件】。
选择此方法将打开分区编辑器:

突出显示安装驱动器(本例中为 ada0 ),然后选择【Create】以显示可用分区方案的菜单:

GPT通常是amd64计算机最合适的选择。与GPT不兼容的旧计算机应使用MBR。其他分区方案通常用于不常见或较旧的计算机。
表1. 分区方案
| 缩写 | 描述 |
|---|---|
| APM | Apple Partition Map, 用于 PowerPC®. |
| BSD | 没有MBR的BSD标签,有时被称为 危险的专用模式,因为非BSD磁盘实用程序可能无法识别它。 |
| GPT | GUID Partition Table |
| MBR | Master Boot Record |
选择并创建分区方案后,再次选择【Create】以创建分区。 Tab 键用于将焦点放在字段上(在循环【OK】、【Option】和【Cancel】之后)。

标准的FreeBSD GPT安装至少使用三个分区,包括UFS或ZFS:
freebsd-boot 或 efi
保存FreeBSD引导代码。
freebsd-ufs
FreeBSD UFS文件系统
freebsd-zfs
FreeBSD ZFS文件系统。更多信息参阅【22. Z文件系统(ZFS)】
freebsd-swap
FreeBSD交换空间
有关可用GPT分区类型的描述,请参阅 gpart(8) 。
可以创建多个文件系统分区。有些人更喜欢为 / 、 /var/tmp 和 /usr 设置单独分区的传统布局。
xxxxxxxxxx请注意,稍后可以在具有足够内存的系统上将/tmp添加为基于内存的文件系统( `tmpfs(5)` )。请参阅【示例1. 创建传统分割文件系统分区】以获取示例。
Size 可以用常见的缩写输入:K 表示千字节,M 表示兆字节,G 表示千兆字节。
xxxxxxxxxx正确的扇区对齐可提供最佳性能,使分区大小甚至是4K字节的倍数有助于确保512字节或4K字节扇区的驱动器对齐。通常,使用1M或1G的偶数倍的分区大小是确保每个分区以4K的偶数倍开始的最简单方法。有一个例外:由于传统引导代码的限制,用于BIOS引导的freebsd引导分区不应大于512K。此限制不适用于UEFI引导。如果分区将包含文件系统,则需要 Mountpoint (挂载点)。如果只创建一个UFS分区,则挂载点应为 / 。
Label (标签)是一个标识分区的名称。如果驱动器连接到不同的控制器或端口,驱动器名称或编号可能会更改,但分区标签不会更改。在 /etc/fstab 等文件中引用标签而不是驱动器名称和分区号,可以使系统对硬件更改更加宽容。连接磁盘时,GPT标签出现在 /dev/gpt/ 中。其他分区方案具有不同的标签功能,它们的标签出现在 /dev/ 中的不同目录中。
xxxxxxxxxx在每个分区上使用唯一的标签,以避免相同标签的冲突。标签上可以添加计算机名称、用途或位置的几个字母。例如,在名为lab的计算机上使用labroot或rootfslab作为UFS根分区。对于传统的分区布局,其中 / 、/var/tmp 和 /usr 目录是各自分区上的独立文件系统,请创建GPT分区方案,然后创建所示的分区。所示的分区大小是20G目标磁盘的典型值。如果目标磁盘上有更多可用空间,则较大的swap或 /var 分区可能会有用。此处显示的标签以 ex 作为前缀,表示“example”(示例),但读者应使用如上所述的其他唯一标签值。
默认情况下,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 |
创建自定义分区后,选择【Finish】继续安装,然后转到【2.7. 获取分发文件】。
此分区模式仅适用于整个磁盘,并将擦除整个磁盘的内容。主ZFS配置菜单提供了许多选项来控制池的创建。

以下是此菜单中选项的摘要:
Install
使用所选选项继续安装。
Pool Type/Disks
配置Pool Type(池类型)和将构成池的磁盘。自动ZFS安装程序目前仅支持创建单个顶级vdev,条带模式除外。要创建更复杂的池,请使用【2.6.5. Shell模式分区】中的说明创建池。
Rescan Devices
重新填充可用磁盘列表。
Disk Info
此菜单可用于检查每个磁盘,包括其分区表和各种其他信息,如设备型号和序列号(如果可用)。
Pool Name
确定池的名称。默认名称为 zroot 。
Force 4K Sectors?
强制使用4K扇区。默认情况下,安装程序将自动创建与4K边界对齐的分区,并强制ZFS使用4K扇区。即使使用512字节的扇区磁盘,这也是安全的,并且具有额外的好处,即确保在512字节磁盘上创建的池将来能够添加4K扇区磁盘,作为额外的存储空间或故障磁盘的替代品。按 Enter 键选择是否激活它。
Encrypt Disks?
加密磁盘允许用户使用GELI加密磁盘。有关磁盘加密的更多信息,请参阅【20.12.2. 使用geli的磁盘加密】。按 Enter 键选择是否激活它。
Partition Scheme
选择分区方案。在大多数情况下,GPT是推荐的选项。按 Enter 键在不同选项之间进行选择。
Swap Size
确定交换空间的大小。
Mirror Swap?
是否镜像磁盘之间的交换。请注意,启用镜像交换将破坏崩溃转储(break crash dumps)。按 Enter 键激活或不激活。
Encrypt Swap?
是否加密交换。这将在每次系统启动时使用临时密钥加密交换,并在重新启动时丢弃它。按 Enter 键选择是否激活它。有关交换加密的更多信息,请参阅【20.13. 加密交换】。
选择 T 以配置 Pool Type 和将构成池的磁盘。

以下是可在此菜单中选择的 Pool Type 的摘要:
stripe
条带化为所有连接的设备提供了最大的存储空间,但没有冗余。如果只有一个磁盘发生故障,池中的数据将不可逆转地丢失。
mirror
镜像在每个磁盘上存储所有数据的完整副本。镜像提供了良好的读取性能,因为数据是从所有磁盘并行读取的。写入性能较慢,因为数据必须写入池中的所有磁盘。允许除一个磁盘外的所有磁盘发生故障。此选项至少需要两个磁盘。
raid10
条带化的镜像。提供最佳性能,但存储空间最少。此选项至少需要偶数(even)个磁盘和至少四个磁盘。
raidz1
单冗余RAID。允许一个磁盘同时发生故障。此选项至少需要三个磁盘。
raidz2
双冗余RAID。允许两个磁盘同时发生故障。此选项至少需要四个磁盘。
raidz3
三重冗余RAID。允许三个磁盘同时发生故障。此选项至少需要五个磁盘。
选择 Pool Type 后,将显示可用磁盘列表,并提示用户选择一个或多个磁盘来组成池。然后验证配置,以确保选择了足够的磁盘。如果验证失败,请选择【Change Selection】返回磁盘列表,或选择【Back】更改 Pool Type 。


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

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

选择 N 以配置 Pool Name 。输入所需的名称,然后选择【OK】以建立它,或选择【Cancel】以返回主菜单并保留默认名称。

选择 S 设置交换空间数值。输入所需的交换空间数值,然后选择【OK】以建立交换空间数值,或选择【Cancel】以返回主菜单并使用默认数值。

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

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


然后安装正常进行。要继续安装,请转到【2.7. 获取分发文件】。
在创建高级安装时, bsdinstall 分区菜单可能无法提供所需的灵活性。高级用户可以从分区菜单中选择【Shell】]选项,手动对驱动器进行分区,创建文件系统,填充 /tmp/bsdinstall_etc/fstab ,并在 /mnt 下挂载文件系统。完成此操作后,键入 exit 返回 bsdinstall 并继续安装。
安装时间将根据所选的发行版、安装介质和计算机速度而有所不同。一系列消息将指示进度。
首先,安装程序格式化所选磁盘并初始化分区。接下来,在 bootonly media 或 mini memstick 的情况下,它会下载所选组件:

接下来,验证分发文件的完整性,以确保它们在下载过程中没有损坏或从安装介质中误读:

最后,将经过验证的分发文件提取到磁盘上:

一旦提取了所有请求的分发文件, bsdinstall 将显示第一个安装后配置屏幕。下一节将介绍可用的后配置选项。
首先,必须设置 root 密码。输入密码时,键入的字符不会显示在屏幕上。必须输入两次密码以防止键入错误。

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

如果选择了以太网接口,安装程序将跳到【选择IPv4网络】中显示的菜单。如果选择了无线网络接口,系统将转而扫描无线接入点:

无线网络由 服务集标识符(Service Set Identifier,SSID)标识;为每个网络提供一个简短、唯一的名称。列出扫描期间发现的SSID,然后描述该网络可用的加密类型。如果所需的SSID未出现在列表中,请选择【Rescan】再次扫描。如果所需的网络仍未出现,请检查天线连接是否存在问题,或尝试将计算机移近接入点。每次更改后重新扫描。

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

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

IPv4配置有两种方法。DHCP将自动正确配置网络接口,如果网络提供DHCP服务器,则应使用DHCP。否则,地址信息需要作为静态配置手动输入。
xxxxxxxxxx不要输入随机网络信息,因为它不起作用。如果DHCP服务器不可用,请从网络管理员或Internet服务提供商处获取所需网络信息中列出的信息。如果DHCP服务器可用,请在下一菜单中选择【Yes】以自动配置网络接口。安装程序将暂停一分钟左右,因为它找到了DHCP服务器并获得了系统的地址信息。

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

IP Address
分配给此计算机的IPv4地址。该地址必须是唯一的,并且尚未被本地网络上的其他设备使用。
Subnet Mask
网络的子网掩码。
Default Router
网络默认网关的IP地址。
下一个屏幕将询问是否应将接口配置为IPv6。如果IPv6可用且需要,请选择【Yes】进行选择。

IPv6也有两种配置方法。无状态地址自动配置(StateLess Address AutoConfiguration,SLAAC)将自动从本地路由器请求正确的配置信息。更多信息请参考 rfc4862 。静态配置需要手动输入网络信息。
如果IPv6路由器可用,请在下一菜单中选择【Yes】以自动配置网络接口。安装程序将暂停一分钟左右,因为它找到了路由器并获得了系统的地址信息。

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

IPv6 Address
分配给此计算机的IPv6地址。该地址必须是唯一的,并且尚未被本地网络上的其他设备使用。
Default Router
网络默认网关的IPv6地址。
最后一个网络配置菜单用于配置域名系统(Domain Name System,DNS)解析器,该解析器将主机名转换为网络地址或从网络地址转换主机名。如果使用DHCP或SLAAC自动配置网络接口,则可能已经填写了 Resolver Configuration 值。否则,请在 Search 字段中输入本地网络的域名。DNS#1 和 DNS#2 是DNS服务器的IPv4和/或IPv6地址。至少需要一个DNS服务器。

配置界面后,选择一个镜像站点,该站点与安装FreeBSD的计算机位于世界同一地区。当镜像靠近目标计算机时,可以更快地检索文件,从而减少安装时间。
xxxxxxxxxx选择ftp://download.freebsd.org(主站)将自动路由到最近的镜像。
下一系列菜单用于通过选择地理区域、国家和时区来确定正确的当地时间。设置时区允许系统自动校正区域时间变化,如夏令时,并正确执行其他与时区相关的功能。
此处显示的示例适用于位于欧洲西班牙大陆时区的机器。选择将根据地理位置而有所不同。

使用箭头键选择适当的区域,然后按 Enter 键。

使用箭头键选择相应的国家,然后按 Enter 键。

使用箭头键并按 Enter 键选择适当的时区。

确认时区缩写正确。

使用箭头键选择适当的日期,然后按【Set Date】。否则,按【Skip】可以跳过日期选择。

使用箭头键选择适当的时间,然后按【Set Time】。否则,按【Skip】可以跳过时间选择。
下一个菜单用于配置系统启动时将启动哪些系统服务。所有这些服务都是可选的。仅启动系统运行所需的服务。

以下是此菜单中可以启用的服务的摘要:
local_unbound
启用DNS本地未绑定。有必要记住,这是一种仅用作本地缓存转发解析器的配置。如果目标是为整个网络设置解析器,请安装dns/unbound。
sshd
Secure Shell(SSH)守护进程用于通过加密连接远程访问系统。仅当系统可用于远程登录时才启用此服务。
moused
如果要从命令行系统控制台使用鼠标,请启用此服务。
ntpdate
在启动时启用自动时钟同步。请注意,此程序的功能现在可以在 ntpd(8) 守护进程中使用, ntpdate(8) 实用程序很快就会退役。
ntpd
用于自动时钟同步的网络时间协议(Network Time Protocol,NTP)守护进程。当想要将系统时钟与远程时间服务器或池同步时,启用此服务。
powerd
用于功率控制和节能的系统功率控制实用程序。
dumpdev
在调试系统问题时,崩溃转储很有用,因此鼓励用户启用它们。
下一个菜单用于配置将启用哪些安全选项。所有这些选项都是可选的。但鼓励使用它们。

以下是此菜单中可以启用的选项的摘要:
hide_uids
隐藏以其他用户身份(UID)运行的进程。这可以防止无特权用户看到其他用户正在运行的进程。
hide_gids
隐藏作为其他组(GID)运行的进程。这可以防止无特权用户看到其他组正在运行的进程。
hide_jail
隐藏jails中运行的进程。这可以防止无特权用户看到jails内运行的进程。
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可以在影响正在运行的内核的模式下运行。除非明确启用,否则不得使用破坏性操作。使用DTrace时,使用 -w 启用此选项。有关更多信息,请参见 dtrace() 。
enable_aslr
启用地址布局随机化(address layout randomization)。有关地址布局随机化的更多信息,请参阅维基百科文章。
下一个菜单提示创建至少一个用户帐户。建议使用用户帐户而不是 root 登录系统。当以 root 身份登录时,对可以做的事情基本上没有限制或保护。以普通用户身份登录更安全。
选择【Yes】添加新用户。

按照提示输入用户帐户所需的信息。【Enter User Information】中显示的示例创建了一个 asample 用户帐户。

以下是要输入的信息摘要:
Username
用户登录时输入的名称。一个常见的惯例是使用名字的第一个字母加上姓氏,只要每个用户名对系统都是唯一的。用户名区分大小写,不应包含任何空格。
Full name
用户的全名。这可以包含空格,并用作用户帐户的描述。
Uid
用户ID。这通常为空,因此系统会自动分配一个值。
Login group
用户的组。这通常留空以接受默认值。
Invite user into other groups?
用户将被添加为成员的其他组。如果用户需要管理权限,请在此处键入 wheel 。
Login calss
默认情况下通常留空。
Shell
键入列出的值之一,为用户设置交互式Shell。有关Shell的更多信息,请参阅【3.9. Shells】。
Home Directory
用户的主目录。默认值通常是正确的。
Home directory permissions
对用户主目录的权限。默认值通常是正确的。
Use password-based authentication?
通常设为 Yes ,这样用户在登录时就会被提示输入密码。
Use an empty password?
通常设为 no ,因为空密码是不安全的。
Use a random password?
通常为 no ,以便用户可以在下一个提示中设置自己的密码。
Enter password
此用户的密码。键入的字符将不会显示在屏幕上。
Enter password again
必须再次键入密码进行验证。
Lock out the account after creation?
通常为 no ,以便用户可以登录。
输入所有详细信息后,将显示摘要以供查看。如果出现错误,请输入 no 进行更正。一切正确后,输入 yes 创建新用户。

如果有更多用户要添加,请使用 yes 回答 Add another user? 。输入 no 以完成添加用户并继续安装。
有关添加用户和用户管理的更多信息,请参阅【3.3. 用户和基本帐户管理】。
在安装和配置完所有内容后,提供了修改设置的最后机会。

在完成安装之前,使用此菜单进行任何更改或进行任何其他配置。
配置完成后,选择【Exit】。

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

如果需要进一步配置或特殊设置,请选择【Live CD】将安装介质引导到Live CD模式。
如果安装完成,请选择【Reboot】重新启动计算机并启动新的FreeBSD系统。不要忘记移除FreeBSD安装介质,否则计算机可能会再次从中启动。
当FreeBSD启动时,会显示信息消息。系统启动完成后,将显示登录提示。在 login: 提示下,输入安装过程中添加的用户名。避免以 root 身份登录。有关在需要管理访问权限时如何成为超级用户的说明,请参阅【3.3.1.3. 超级用户帐户】。
通过按 Scroll-Lock 打开向后滚动缓冲区,可以查看启动过程中出现的消息。PgUp 、 PgDn 和箭头键可用于滚动浏览消息。完成后,再次按 Scroll-Lock 解锁显示屏并返回控制台。要在系统启动一段时间后查看这些消息,请在命令提示符下键入 less /var/run/dmesg.boot 。查看后按 q 返回命令行。
如果在【2.8.4. 选择要启用的其他服务】中启用了 sshd ,则第一次启动可能会有点慢,因为系统会生成SSH主机密钥。后续的启动会更快。然后显示钥匙的指纹,如下例所示:
xxxxxxxxxxGenerating 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 root@machine3.example.comThe 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 root@machine3.example.comThe key's randomart image is:+--[ DSA 1024]----+| .. . .|| o . . + || . .. . E .|| . . o o . . || + S = . | | + . = o || + . * . || . . o . || .o. . |+-----------------+Starting sshd.有关指纹和SSH的更多信息,请参阅【16.7. OpenSSH】。
FreeBSD默认不安装图形环境。有关安装和配置图形窗口管理器的更多信息,请参阅【5. X Window系统】。
正确关闭FreeBSD计算机有助于保护数据和硬件免受损坏。在系统正确关闭之前,请勿关闭电源!如果用户是 wheel 组的成员,则通过在命令行中键入 su 并输入 root 密码来成为超级用户。然后键入 shutdown -p now ,系统将干净地关闭,如果硬件支持,则自行关闭。
本节介绍基本的安装故障排除,例如人们报告的常见问题。
查看 FreeBSD版本信息 页面上列出的硬件说明,以确保硬件受支持。
xxxxxxxxxx通过更新各种硬件组件(最明显的是主板)上的固件,可以避免或缓解一些安装问题。主板固件通常被称为BIOS。大多数主板和电脑制造商都有一个网站,提供升级和升级信息。制造商通常建议不要升级主板BIOS,除非有充分的理由这样做,比如关键更新。升级过程可能会出错,导致BIOS不完整,计算机无法运行。如果系统在启动期间探测硬件时挂起,或者在安装过程中行为异常,ACPI可能是罪魁祸首。FreeBSD在i386和amd64平台上广泛使用系统ACPI服务,以便在启动期间检测到系统配置。不幸的是,ACPI驱动程序、系统主板和BIOS固件中仍然存在一些错误。可以通过在第三阶段引导加载程序中设置 hint.acpi.0.disabled 提示来禁用ACPI:
xxxxxxxxxxset hint.acpi.0.disabled="1"每次系统启动时都会重置此设置,因此有必要在 /boot/loader.conf 文件中添加 hint.acpi.0.disabled=“1” 。有关引导加载程序的更多信息,请参阅【15.1. 概要】。
bsdinstall 的欢迎菜单(显示在欢迎菜单中)提供了一个【Live CD】选项。对于那些仍然想知道FreeBSD是否适合他们,并想在安装前测试一些功能的人来说,这很有用。
在使用【Live CD】之前,应注意以下几点:
root ,密码为空。