Ubuntu Swap 故障排查与修复指南
一、快速定位问题
free -hswapon --show 或 cat /proc/swapssudo blkid(确认是否存在 Linux swap 类型分区/文件)dmesg | tail -n 50、journalctl -xetop/htop、iostat -x 1cat /etc/fstab
以上命令能快速判断是“未启用”“配置错误”还是“性能问题”。二、常见故障与修复
启动卡在 “A start job is running for dev-disk-by-uuid/… (1min 30s)”
sudo blkid 获取真实 UUID;2) 对比并修正 /etc/fstab 中 swap 行;3) 若暂时无法修复,可先注释该行以正常启动;4) 重启验证。若分区类型被误改,用分区工具将其类型设为 Linux swap(0x82),再 mkswap 并写入正确 UUID 到 fstab。Swap 未启用或 “swapon failed: read swap header failed”
sudo mkswap /dev/sdXY → sudo swapon /dev/sdXYsudo fallocate -l 8G /swapfile(若失败用 sudo dd if=/dev/zero of=/swapfile bs=1G count=8)sudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfileswapon --show、free -h。若提示 header 失败,多为未执行 mkswap 或权限不对。开机不挂载或配置错误
UUID=xxxx none swap sw 0 0)sudo swapoff -a;修复后 sudo swapon -ablkid 并更新 fstab。使用倾向异常或性能不佳
cat /proc/sys/vm/swappinesssudo sysctl vm.swappiness=10/etc/sysctl.conf 添加 vm.swappiness=10 后重启或 sysctl -p三、应急与扩容
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfilefree -h、swapon --showsudo swapoff -asudo fallocate -l 8G /swapfile 或 sudo dd if=/dev/zero of=/swapfile bs=1G count=8sudo mkswap /swapfile && sudo chmod 600 /swapfilesudo swapon /swapfile/etc/fstab 写入 /swapfile none swap sw 0 0free -h、swapon --showsudo swapon -p 10 /dev/sdXY 设置优先级,数值越大优先级越高。四、验证与收尾
free -h、swapon --show、cat /proc/swaps、lsblk -f(确认类型为 swap)dmesg | tail、journalctl -u systemd-fsck* -btop/htop、iostat -x 1;如频繁换页,考虑增大 swap 或降低 vm.swappiness,并优先使用 SSD 存放 swap。