Ubuntu Swap 分区损坏修复指南
一、快速判断与应急处理
swapon --show、cat /proc/swaps。若无输出,说明交换未启用或不存在。sudo swapoff -a 再操作分区。二、修复步骤
sudo blkid,在输出中找到类型为 swap 的分区(如 /dev/sda5)及其 UUID。/etc/fstab 中 swap 行的 UUID,若不一致或设备路径变更,需修正。sudo swapoff /dev/sda5(若已启用)。sudo mkswap /dev/sda5。UUID=<新UUID> none swap sw 0 0,保存。sudo swapon -a,再用 swapon --show 或 free -h 检查。UUID=<复制的UUID> none swap sw 0 0,保存。sudo swapon -a,检查是否生效。sudo dd if=/dev/zero of=/swapfile bs=1M count=2048sudo chmod 600 /swapfilesudo mkswap /swapfile && sudo swapon /swapfile/etc/fstab 中的 swap 行改为 /swapfile none swap sw 0 0,确保重启后自动挂载。swapon --show、cat /proc/swaps、free -h 均应能看到已启用的 swap。三、常见故障与对策
启动卡在 “A start job is running for /dev/disk/by-uuid/xxxxx”
blkid 获取正确 UUID,修正 /etc/fstab;或先注释 swap 行以正常启动,再按上文重建/修复。GParted 分区被锁定或报 “Cannot allocate memory”
sudo swapoff -a 后再进行删除/格式化/启用操作。误把 swap 分区格式化成 ext4 或类型错误
sudo mkswap /dev/sdX 重新初始化,并更新 /etc/fstab 的 UUID。虚拟机扩容/克隆后 swap 不可用
四、数据安全与回退建议
sudo cp /etc/fstab /etc/fstab.bak-$(date +%F)。