ubuntu 22.04及以上版本永久关闭SWAP方法

背景:同事说ubuntu 22.04通过常规的方式方法关闭swap,开机后还是会自动挂在swap

因为之前写过在ubuntu上ansible自动化部署kubernetes就发现了这个问题,当时就在playbook文件里面写了关闭方法,这里在拿出来细分下

通过测试是完全支持ubuntu 20版本及以上版本永久关闭swap

查看系统是否挂在SWAP

# 通过free -m查看系统是否有挂在swap

root@docerlab:~# free -m

total used free shared buff/cache available

Mem: 1963 244 1376 1 342 1565

Swap: 2047 0 2047

root@docerlab:~#

临时关闭SWAP

# 临时关闭swap

root@docerlab:~# root@docerlab:~# swapoff -a

# 注释/etc/fstab内的文件

root@docerlab:~# sed -i 's/.*swap.*/#&/g' /etc/fstab

# 检查临时关闭了swapp

永久关闭SWAP

# 通过systemctl list-unit-files抓取包含swap的信息

root@docerlab:~# systemctl list-unit-files | grep swap

swap.img.swap generated -

swap.target static -

root@docerlab:~#

# systemctl list-unit-files --type=swap抓取类型是swap的信息

root@docerlab:~# systemctl list-unit-files --type=swap

UNIT FILE STATE VENDOR PRESET

swap.img.swap generated -

1 unit files listed.

root@docerlab:~#

# systemctl mask关闭swap

root@docerlab:~# systemctl mask swap.img.swap

Created symlink /etc/systemd/system/swap.img.swap → /dev/null.

root@docerlab:~#

# 查看mask后的变化信息

root@docerlab:~# systemctl list-unit-files | grep swap

swap.img.swap masked enabled

swap.target static -

root@docerlab:~#

重启验证swap已经关闭

root@docerlab:~# reboot

# 重启后确认swap已经关闭

root@docerlab:~# free -m

total used free shared buff/cache available

Mem: 1963 207 1480 1 275 1603

Swap: 0 0 0

root@docerlab:~#