> For the complete documentation index, see [llms.txt](https://handbook.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.bsdcn.org/di-14-zhang-pei-zhi-fu-wu-ri-zhi-yu-dian-yuan-guan-li/14.7.-tian-jia-jiao-huan-kong-jian.md).

# 14.7.添加交换空间

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

关于如何加密 swap 空间、可使用哪些选项以及为何要加密，请参阅 [“加密 Swap”](/di-21-zhang-cun-chu/21.13.-jia-mi-jiao-huan-fen-qu.md)。

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

添加新硬盘用于 swap 比在现有硬盘的分区上使用 swap 性能更好。关于如何设置分区和硬盘的说明见 [添加磁盘](/di-21-zhang-cun-chu/21.2.-tian-jia-ci-pan.md)，而关于如何设计分区布局以及 swap 分区大小的建议请参阅 [设计分区布局](/di-2-zhang-an-zhuang-freebsd/2.1.-gai-shu.md)。

> **警告**
>
> 可使用任何当前未挂载的分区，即使该分区已有数据。对含有数据的分区执行 `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
```
