若系统已启动但提示swap分区不存在,可通过以下步骤快速恢复:
swapon --show或free -h,确认是否有swap分区/文件启用。若无,继续下一步。# 创建1G大小的swap文件(可根据需求调整大小,如2G则count=2048)
dd if=/dev/zero of=/swapfile bs=1M count=1024
# 设置权限(仅root可读写)
chmod 600 /swapfile
# 格式化为swap空间
mkswap /swapfile
# 启用swap文件
swapon /swapfile
swapon --show,应显示新创建的swap文件。临时恢复仅对当前会话有效,重启后会失效。需通过以下步骤永久恢复:
/etc/fstab文件:vi /etc/fstab
/swapfile none swap sw 0 0
/dev/mapper/centos-swap):/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sda3):/dev/sda3 swap swap defaults 0 0
Esc→输入:wq→回车。swapon -a # 启用/etc/fstab中定义的所有swap
free -h,确认swap空间已自动启用。若删除swap分区后系统无法启动(如提示/dev/centos/swap does not exist),需进入dracut救援模式修复:
Ctrl+Alt+F2进入命令行。mkdir /tmp1
mount /dev/centos/root /tmp1 # 替换为你的根分区(可通过`lsblk`查看)
/tmp1/etc/default/grub,找到GRUB_CMDLINE_LINUX行,删除rd.lvm.lv=centos/swap(若有)。/tmp1/boot/grub2/grub.cfg,删除所有rd.lvm.lv=centos/swap(通常有两处,需全部删除)。chroot /tmp1
dracut -f
exit
reboot
# 备份/etc/fstab
cp /etc/fstab /backup/fstab.bak
# 若使用LVM,备份VG/LV信息
vgcfgbackup -f /backup/vg_backup.txt centos
lsblk或blkid查看分区类型。以上步骤覆盖了CentOS swap分区丢失的常见场景及解决方法,操作前请务必备份重要数据,避免误操作导致数据丢失。