# 14.7.添加交换空间

有时，FreeBSD 系统需要更多的 swap 空间。本节描述了增加 swap 空间的两种方法：向现有分区或新硬盘添加 swap，以及在现有文件系统上创建 swap 文件。

关于如何加密 swap 空间、可以使用哪些选项以及为何要进行加密，请参阅 [“加密 Swap”](https://docs.freebsd.org/en/books/handbook/disks/#swap-encrypting)。

## 14.7.1. 在新硬盘或现有分区上添加 Swap

添加新硬盘用于 swap 比在现有硬盘的分区上使用 swap 性能更好。关于如何设置分区和硬盘的说明见 [添加磁盘](https://docs.freebsd.org/en/books/handbook/disks/#disks-adding)，而关于如何设计分区布局以及 swap 分区大小的建议请参阅 [设计分区布局](https://docs.freebsd.org/en/books/handbook/bsdinstall/#configtuning-initial)。

> **警告**
>
> 可以使用任何当前未挂载的分区，即使该分区已有数据。对含有数据的分区执行 `swapon` 会覆盖并销毁其中的数据。在运行 `swapon` 之前，请确认要添加为 swap 的分区确实是预期的分区。

可以使用 [swapon(8)](https://man.freebsd.org/cgi/man.cgi?query=swapon\&sektion=8\&format=html) 向系统添加 swap 分区，执行以下命令：

```sh
# swapon /dev/ada1p2
```

要在启动时自动添加该 swap 分区，可在 **/etc/fstab** 中添加如下条目：

```sh
/dev/ada1p2 none swap sw 0 0
```

关于 **/etc/fstab** 中各项条目的解释，请参阅 [fstab(5)](https://man.freebsd.org/cgi/man.cgi?query=fstab\&sektion=5\&format=html)。

## 14.7.2. 创建 Swap 文件

以下示例创建一个 512M 的 swap 文件，名为 **/usr/swap0**。

> **警告**
>
> 极不建议在 ZFS 文件系统上使用 swap 文件，因为 swap 操作可能导致系统宕机。

第一步是创建 swap 文件：

```sh
# dd if=/dev/zero of=/usr/swap0 bs=1m count=512
```

第二步是为新文件设置合适的权限：

```sh
# chmod 0600 /usr/swap0
```

第三步是通过在 **/etc/fstab** 添加一行来告知系统使用该 swap 文件：

```ini
md none swap sw,file=/usr/swap0,late 0 0
```

系统启动时将自动添加 swap 空间。要立即添加 swap 空间，可使用 [swapon(8)](https://man.freebsd.org/cgi/man.cgi?query=swapon\&sektion=8\&format=html)：

```sh
# swapon -aL
```
