在 Ubuntu 中遇到 swap 失败(无法启用、无法挂载、swap 不足等)时,可以按下面步骤排查和解决。
常见报错或表现:
swapon: /swapfile: swapon failed: Invalid argumenta start job is running for /swapfilefree -h 看不到 swap先执行:
swapon --show
free -h
lsblk
cat /etc/fstab
如果你是直接 touch /swapfile,那是错的。
正确做法:
sudo fallocate -l 4G /swapfile
# 如果 fallocate 不支持(如某些文件系统)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
开机自动挂载:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
以下情况 不能做 swapfile:
解决:
查看文件系统:
df -T /swapfile
如果系统正在用 swap:
sudo swapoff /swapfile
sudo swapon /swapfile
⚠️ 内存不足时 swapoff 会失败。
检查:
cat /etc/fstab
如果是分区:
blkid
确保 UUID 正确。
需要:
sudo swapon --show
swap ≥ 内存大小
并在:
/etc/default/grub
添加:
resume=UUID=xxx
然后:
sudo update-grub
新 Ubuntu 常用 zram:
swapon --show
如果有 /dev/zram0,说明已用压缩内存 swap。
禁用:
sudo systemctl disable --now systemd-zram-setup@zram0
sudo swapoff -a
sudo rm -f /swapfile
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
可以把下面信息发我,我可以直接帮你定位:
swapon --show 和 cat /etc/fstab 的结果我可以一步一步帮你修 ✅