在 Ubuntu 中遇到 swap 出错(swap 无法启用、swap 分区/文件异常、休眠失败、开机报错等)时,可以按下面思路一步步排查和解决。
swapon --show
free -h
swapon --show 没有任何输出,说明 swap 没启用free -h 中 Swap 为 0,也表示未生效现象
failed to activate swap/etc/fstab 中的 swap UUID 不对解决
sudo blkid
找到 swap 分区的 UUID,然后:
sudo nano /etc/fstab
修改为类似:
UUID=xxxx-xxxx-xxxx none swap sw 0 0
保存后:
sudo swapoff -a
sudo swapon -a
现象
swapon failed: invalid argument重新创建 swap 文件
sudo swapoff /swapfile
sudo rm /swapfile
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
写入 fstab(如果是文件):
/swapfile none swap sw 0 0
现象
swapon: cannot allocate memory解决
df -h
现象
resume target not found检查
cat /etc/default/grub | grep resume
确保 resume=UUID=swap分区UUID
更新:
sudo update-grub
如果是 LVM 或 LUKS:
sudo vgchange -ay
sudo swapon -a
sudo swapoff -a
若系统恢复正常,说明 swap 配置有问题。
swapon --show/etc/fstabblkid 对比 UUIDjournalctl -xe | grep swap
如果你能贴出具体报错信息(终端报错 / 开机提示 / journalctl 日志),我可以直接帮你定位是哪一类问题。