---
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
```