2.6.分配磁盘空间

接下来的菜单可用来选择分配磁盘空间的方案。

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

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

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

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

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

本节说明了在规划磁盘分区时需要考虑的因素。然后演示了如何使用不同的分区方法。

2.6.1. 设计分区布局

文件系统的默认分区布局包括一个用于整个系统的文件系统。在使用UFS时,如果有足够的磁盘空间或多个磁盘,尝试使用多个文件系统可能是值得的。在布局文件系统时,请记住硬盘从外部轨道到内部轨道传输数据速度更快。因此,较小且访问较频繁的文件系统应该更靠近驱动器的外部,而像/usr这样的较大分区应该放在磁盘的内部部分。按照以下顺序创建分区是个好主意:/,交换,/var/usr

/var 分区的大小反映了预期机器的使用情况。此分区用于保存邮箱、日志文件和打印机输出队列。邮箱和日志文件的大小取决于用户数量和保存日志文件的时间长度,因此可能会变得不可预测。平均而言,大多数用户在/var中几乎不需要超过 1 GB 的空闲磁盘空间。

注意*

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

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

在选择分区大小时,请考虑空间要求。在一个分区用得很少的情况下,另一个分区却几乎用尽的情况可能会很麻烦。

作为一个经验法则,交换分区的大小应该是物理内存(RAM)的两倍左右。具有最小 RAM 的系统(对于更大内存配置,内存较少)可能在有更多交换空间时性能更好。配置太小的交换可能导致 VM 页面扫描代码效率低下,并可能在稍后添加更多内存时出现问题。

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

通过正确分区系统,引入在较小的写入密集分区中引入的碎片不会流入主要是读取的分区。将写入负载较重的分区保持在磁盘的边缘将提高在发生最频繁的分区的 I/O 性能。虽然可能需要较大分区中的 I/O 性能,但将它们更靠近磁盘的边缘不会显著提高性能,与将/var移到边缘相比。

2.6.2. 使用 UFS 进行引导分区

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

图 11. 从多个磁盘中选取

选择了磁盘以后,接下来的菜单就会提示安装到整块磁盘或利用可用空间创建一个分区。如果选择 Entire Disk,将自动创建一个使用整个磁盘的通用分区布局。选择 Partition 则用磁盘上未使用的空间创建一个分区布局。

图 12. 选择整块硬盘或分区

在选择了 Entire Disk 之后,bsdinstall 会显示一个对话框,表明磁盘所有内容将被删除。

图 13. 确认

接下来的菜单显示了可用分区表的列表。GPT 通常是最合适 amd64 计算机的选择。与 GPT 不兼容的老式计算机应该使用 MBR。其他分区表一般用于不常见的或较老的计算机。更多信息可在分区表中找到。

图 14. 选择分区表

在创建了分区布局之后,请检查它以确保其符合安装的需要。选择 Revert 可以将分区重置为初始值,按 Auto 可以重新自动创建 FreeBSD 分区。也可以手动创建、修改或删除分区。当确认分区后,选择 Finish 来继续安装。

图 15. 检查创建的分区

磁盘被配置好之后,接下来的菜单提供了一个在选定的磁盘被格式化之前进行最后修改的机会。。如果需要进行修改,请选择 Back,返回到主分区菜单。Revert & Exit 将退出安装程序,不对磁盘做任何改变。此外,选择 Commit,开始进行安装过程。

图 16. 结束确认

要继续安装过程,请进入获取安装文件

2.6.3.手动分区

手动分区将直接使用分区编辑器进行操作:

图 17. 手动创建分区

突出显示安装磁盘(本例中为 ada0),并选择 Create 以显示可用分区表的菜单。

图 18. 手动创建分区

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

表 1. 分区方案

选择并创建了分区方案后,再次选择Create以创建分区。Tab 键用于将焦点移到字段上(在循环使用 、 和 ****之后)。

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

  • freebsd-bootefi - 用于保存 FreeBSD 引导代码。

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

  • freebsd-zfs - 一个 FreeBSD ZFS 文件系统。有关 ZFS 的更多信息,请参见The Z File System (ZFS)

  • freebsd-swap - FreeBSD 交换空间。

参阅gpart(8)以了解可用的 GPT 分区类型的描述。

可以创建多个文件系统分区。一些人更喜欢传统的布局,为//var/tmp/usr分别创建独立的分区。

技巧

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

请参见创建传统分割的文件系统分区以获取示例。

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

技巧

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

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

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

技巧

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

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

对于传统的分区布局,其中//var/tmp/usr目录是独立的文件系统,创建 GPT 分区方案,然后创建如下所示的分区。所示分区大小对于 20G 目标磁盘是典型的。如果目标磁盘上有更多的空间,则较大的交换或/var分区可能会更有用。此处显示的标签以ex为前缀表示“示例”,但读者应根据上述说明使用其他唯一的标签值。

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

创建自定义分区后,选择Finish以继续安装并转到获取分发文件

2.6.4.使用 Root-on-ZFS 进行向导式分区

这种分区模式只能使用整个磁盘,并且会擦除整个磁盘的内容。ZFS 的主配置菜单提供了许多选项来控制池的创建。

图 20. ZFS 分区菜单

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

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

  • Pool Type/Disks - 配置Pool Type和构成池的磁盘。当前 auto ZFS 安装程序仅支持创建单个顶级 vdev,除非处于条带模式。要创建更复杂的池,请使用Shell Mode Partitioning中的说明创建池。

  • Rescan Devices - 重新填充可用磁盘列表。

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

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

  • Force 4K Sectors? - 强制使用 4K 扇区。默认情况下,安装程序将自动创建与 4K 边界对齐的分区,并强制 ZFS 使用 4K 扇区。即使使用 512 字节扇区磁盘,这也是安全的,并且确保在将来可以将 4K 扇区磁盘添加到在 512 字节磁盘上创建的池中,作为附加的存储空间或替换故障磁盘。按回车键选择是否激活它。

  • Encrypt Disks? - 加密磁盘允许用户使用 GELI 对磁盘进行加密。有关磁盘加密的更多信息,请参见“Disk Encryption with geli”。按回车键选择是否激活它。

  • Partition Scheme - 选择分区方案。在大多数情况下,GPT 是推荐选项。按回车键选择不同的选项。

  • Swap Size - 确定交换空间的大小。

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

  • Encrypt Swap? - 是否启用加密交换。这将在每次系统引导时使用临时密钥加密交换,并在重新启动时丢弃它。按回车键选择是否激活它。有关交换加密的更多信息,请参见“Encrypting Swap”

选择 T 以配置Pool Type和构成池的磁盘。

图 21. ZFS 池类型

以下是在此菜单中可以选择的Pool Type的概述:

  • stripe - 条带提供所有连接设备的最大存储,但没有冗余。如果只有一个磁盘故障,则池上的数据将被不可挽回地丢失。

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

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

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

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

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

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

图 22. 磁盘选择

图 23. 无效的选择

如果列表中缺少一个或多个磁盘,或者磁盘是在安装程序启动后连接的,请选择 - Rescan Devices 设备来重新加载可用磁盘的列表。

图 24. 重新扫描设备

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

图 25. 磁盘分析

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

图 26. Pool Name

选择 S 来设置交换分区大小。输入所需的交换分区容量,然后选择 <OK> 建立,或选择 <Cancel> 返回主菜单,让其使用默认值。

图 27. 交换分区大小

所有的选项都被设置为所需的值之后,选择菜单顶部的 >>> Install。然后安装程序提供了一个最后确认的机会,在所选磁盘的内容被销毁以创建 ZFS 池之前,可以取消。

图 28. 最后确认

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

图 29. 磁盘加密密码

图 30. 初始化加密

然后安装会正常进行。要继续安装,请进入获取安装文件

2.6.5.SHELL 分区模式

在创建高级安装时,bsdinstall 的分区菜单可能无法提供所需的灵活度。专业用户可以从分区菜单中选择 Shell 选项,以便手动对磁盘进行分区,创建文件系统,填写 /tmp/bsdinstall_etc/fstab,并在 /mnt 下加载文件系统。完成后,键入exit,返回 bsdinstall,继续安装。

最后更新于

FreeBSD 中文社区