CentOS Swap文件损坏修复步骤
首先,通过swapoff命令强制卸载损坏的Swap文件(以/swapfile为例),避免系统继续访问损坏的交换空间:
sudo swapoff /swapfile
注意:执行前需确认无进程正在使用该Swap文件(可通过free -h查看Swap使用状态),否则可能导致系统不稳定。
使用rm命令彻底删除损坏的Swap文件,释放磁盘空间:
sudo rm /swapfile
警告:删除前务必确认已停止所有依赖该Swap文件的进程,避免数据丢失。
通过dd或truncate命令创建新的Swap文件(建议大小为物理内存的1-2倍,如16GB内存创建16GB Swap文件)。
dd命令(兼容性好,适合老旧系统):sudo dd if=/dev/zero of=/swapfile bs=4M count=4096 # 创建16GB Swap文件(4M×4096=16GB)
truncate命令(快速创建,推荐):sudo truncate -s 16G /swapfile # 瞬间创建16GB Swap文件
为保证系统安全,Swap文件需设置为仅root可读写(权限码600):
sudo chmod 600 /swapfile
使用mkswap命令将普通文件转换为系统可识别的Swap空间:
sudo mkswap /swapfile
此步骤会生成Swap文件的UUID及元数据,是Swap文件正常工作的关键。
通过swapon命令立即启用新创建的Swap文件:
sudo swapon /swapfile
启用后,系统会立即开始使用新的Swap空间。
编辑/etc/fstab文件,添加以下行以确保系统重启后自动启用Swap文件:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
验证配置:执行sudo swapon --show,若输出中包含/swapfile,则说明配置生效。
使用free -h命令查看Swap空间使用情况,确认新Swap文件已正确启用:
free -h
输出应显示Swap文件的大小(如16GB)及“available”列有可用Swap空间。
若Swap文件所在的文件系统(如/分区)损坏,需先修复文件系统再重新创建Swap文件:
sudo umount /dev/sdXY # 替换为实际分区(如/dev/sda1)
fsck修复文件系统(ext3/ext4格式):sudo fsck -f /dev/sdXY