传统方法
临时关闭(重启后失效)swap 可以使用以下命令
# swapoff -a
swap 中的所有内容会被移动到 RAM 中,同时关闭 swap。
如需要持久化地关闭 swap,则需要防止重启后 swap 分区的自动挂载。Debian 默认使用 swap 分区而不是 swap 文件,且使用 UUID 进行挂载。编辑 /etc/fstab
,将 swap 分区挂载相关的行加上注释符号 #
即可。
遇到的问题和解决方案
在修改了 /etc/fstab
之后,重启系统发现 swap 分区还是被挂载。
查阅资料后发现,Debian 默认使用 systemd 接管 swap 的挂载。systemd 对于交换分区的激活方式都是通过 /usr/lib/systemd/system-generators
中的可执行文件,具体可分为两种:
systemd-fstab-generator
:读取fstab
systemd-gpt-auto-generator
:检查根磁盘,只在 GPT 磁盘上使用,通过 GUID 类型识别交换分区
因此只修改 /etc/fstab
是不够的,必须对 systemd 相关的设置进行修改。
具体地,执行 systemctl --type swap --all
,查看所有与 swap 相关的 systemd 项:
之后执行 systemctl mask dev-xxx.swap
,即可关闭相关项。重启之后 swap 分区就不会再被挂载。