--- title: "Debian / Ubuntu 手工添加 Swap 分区" tags: ['Debian', 'Ubuntu', 'Swap'] published: 2022-12-21 02:38:29 updated: 2022-12-21 00:00:00 excerpt: "本文将指导如何在 Debian 11 和 Ubuntu 22.04 下手工添加 Swap 分区。" --- > 本文件是烧饼博客文章的 Markdown 原文,正式版本见 https://u.sb/debian-swap/ > 全站文章与页面索引见 https://u.sb/llms.txt,建议先读索引再继续抓取。 本文将指导如何在 Debian 11 和 Ubuntu 22.04 下手工添加 Swap 分区。 以下操作需要 root 权限,本文命令均已带上 `sudo` 前缀,请确保当前用户拥有 `sudo` 权限;或者直接使用 root 用户操作并省略命令中的 `sudo`。 ## 准备工作 首先,检查你的系统是否已经有 Swap 分区: ```bash sudo swapon -s ``` 或 ```bash free -m ``` 如果没有返回结果或者 `free -m` 中 `Swap` 一列数值是 `0`,则表示你的系统没有 Swap 分区。 ## 创建 SWAP 分区 我们可以使用 `fallocate` 命令创建一个 1GB 大小的 Swap 分区: ```bash sudo fallocate -l 1G /swapfile ``` 如果这个命令无法使用,请安装 `util-linux` 包: ```bash sudo apt install util-linux ``` 然后设置这个文件的权限: ```bash sudo chmod 600 /swapfile ``` 然后激活 SWAP 分区 ```bash sudo mkswap /swapfile sudo swapon /swapfile ``` 此时,你可以使用 `sudo swapon -s` 或 `free -m` 命令查看 Swap 分区是否已经激活。 ## 设置开机自启 我们需要编辑 `/etc/fstab` 这个文件,加入下面的内容即可: ```bash echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab ``` 大功告成,使用 `free -m` 命令查看 Swap 分区是否正确: ![Debian / Ubuntu 手工添加 Swap 分区](https://s.bh.sb/img/2022/12/1097a4.png) ## 调整系统内核 Swappiness 值 Swapiness 是 Linux 内核的一个属性,定义了系统使用交换空间的频率,Swapiness 的值在 0 到 100 之间 (默认是 60),一个低的值会使内核尽可能地避免交换,而一个高的值会使内核更积极地使用交换空间。 这个值默认是 `60`,我们可以使用 `cat /proc/sys/vm/swappiness` 命令查看当前值。 一般我们可以给他改成 `10`: ```bash echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf ``` 然后使用 `sudo sysctl -p` 命令使其生效。 ## 关闭 Swap 有时候我们需要关闭 Swap 分区,可以使用下面的命令: 首先,停用 Swap 分区: ```bash sudo swapoff -v /swapfile ``` 然后检查 `/etc/fstab`,删除 `/swapfile swap swap defaults 0 0` 这一行。 最后删除 `/swapfile` 这个文件: ```bash sudo rm /swapfile ```