12.12. 添加交换空间

有时,系统需要更多的交换空间。本节介绍了两种增加交换空间的方法:将交换空间添加到现有分区或新的硬盘上、在现有分区上创建一个交换文件。

关于如何加密交换空间、存在哪些选项以及为什么要这样做的信息,请参考“18.14. 加密交换空间”。

12.12.1. 将交换空间添加到现有分区或新的硬盘上

添加一个新的硬盘用于交换,比使用现有硬盘上的分区有更好的性能。设置分区和硬盘在“添加磁盘”中解释,而“设计分区布局”讨论了分区布局和交换分区大小的考虑。

使用 swapon 向系统添加一个交换分区,比如说:

# swapon /dev/ada1s1b

警告:

可以使用任何当前未挂载的分区,即使它已经包含数据,但在包含数据的分区上使用 swapon 会覆盖并破坏这些数据。在运行 swapon 之前,请确保被添加为交换的分区确实是预定的分区。

要在启动时自动添加这个交换分区,请在 /etc/fstab 中添加一个条目:

/dev/ada1s1b	none	swap	sw	0	0

关于 /etc/fstab 中的条目的解释,参见 fstab(5) 的手册 。关于 swapon 的更多信息可以在 swapon(8) 的手册页中找到。

12.12.2. 创建一个 Swap 文件

这些例子创建了一个 512M 的交换文件,名为 /usr/swap0,而不是使用一个分区。

使用 swap 文件需要确保 md(4) 所需要的模块已经建立在内核中,或者在启用 swap 之前已经加载。请参阅“第8章 配置 FreeBSD 内核”以了解关于建立自定义内核的信息。

样例2. 创建一个 Swap 文件

  1. 创建 Swap 文件:

    # dd if=/dev/zero of=/usr/swap0 bs=1m count=512
    
  2. 给这个新文件设置合适的权限:

    # chmod 0600 /usr/swap0
    
  3. 通过向 /etc/fstab 添加以下一行来告知系统 Swap 文件的存在:

    md	none	swap	sw,file=/usr/swap0,late	0	0
    
  4. 系统重新启动时,Swap 空间将会被自动加载。欲使其立即生效,使用如下 swapon(8) 指令:

    # swapon -aL