惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
博客园 - 【当耐特】
B
Blog
Stack Overflow Blog
Stack Overflow Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
博客园 - 司徒正美
博客园 - 叶小钗
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

阁主学习小站

win11更新报错:net start wuauserv 发生系统错误 1290-电脑技术-阁主学习小站 Docker 常用命令大全,方便日常查阅-服务端兮-阁主学习小站 Linux系统磁盘挂载管理工具-服务端兮-阁主学习小站 minio服务器上文件访问不了-编程教程-阁主学习小站 MINIO 最新版无法通过页面的控制台配置accesskey-编程教程-阁主学习小站 centos9无法启用ssh服务-服务端兮-阁主学习小站 关闭浏览器访问http时自动转https-编程教程-阁主学习小站 前端图片<img>、链接<a>等去除referer标记,绕过防盗链-前端开发-阁主学习小站 原生PHP实现单图、多图文件批量上传-PHP教程-阁主学习小站
Debian13 Linux系统无法关闭swap、无法完全禁用的问题和解决...
阁主 · 2026-02-19 · via 阁主学习小站
摘要:

本文介绍了在Debian系统中禁用swap分区的方法。临时禁用swap可以通过特定命令实现,但要持久禁用,需要防止系统重启后自动挂载swap分区。尽管修改了相关配置文件并重启系统,swap依然会被挂载,这是因为Debian使用systemd来管理挂载。为了解决这个问题,需要对systemd的相关设置进行调整,执行特定命令以禁用swap分区,确保重启后swap不再自动挂载。

传统的方案

传统的方案都是使用swapoff -a来临时关闭swap,再去/etc/fstab注释或删除对应的swap挂载项。如需要持久化地关闭 swap,则需要防止重启后 swap 分区的自动挂载。Debian 默认使用 swap 分区而不是 swap 文件,且使用 UUID 进行挂载。编辑 /etc/fstab,将 swap 分区挂载相关的行加上注释符号 # 即可。

传统方案.png

问题

但是上面方法基本上对云服务厂商那些机器有作用,本文是在自己的VMware虚拟机创建了一台debian13的虚拟机,使用这个方法并不能完全禁用swap,甚至重启系统还会自动重新创建swap分区。查阅资料后发现,Debian 默认使用 systemd 接管 swap 的挂载。systemd 对于交换分区的激活方式都是通过 /usr/lib/systemd/system-generators 中的可执行文件,具体可分为两种,因此只修改 /etc/fstab 是不够的,必须对 systemd 相关的设置进行修改。可以自行查阅下面的参考文献详细了解。

解决方案

在操作之前先临时关闭swap

swapoff -a

永久关闭:注释 /etc/fstab 中的 swap 行

sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab

随后执行systemctl list-units --type=swap --all,查看所有与 swap 相关的 systemd 项:

systemctl list-units --type=swap --all

systemctl list-units --type=swap --all.png

接着禁用所有 swap 相关的目标

systemctl mask swap.target

执行之后reboot命令重启系统即可关闭相关项。重启之后 swap 分区就不会再被挂载。

关闭swap.png

验证关闭情况

# 应该所有swap项是空的
systemctl list-units --type=swap --all

# 应该没有任何输出
swapon --show

# swap 应该为 0
free -h

ok.png

参考文献

  1. Disabling Swap on Debian Permanently

  2. Debian 11 关闭 swap 遇到的问题和解决方案