1. 确认Swap文件状态
首先通过以下命令检查Swap文件是否启用及状态:
sudo swapon --show # 查看当前激活的Swap文件/分区
free -h # 查看内存与Swap使用情况(若Swap使用量为0或显示错误,可能已损坏)
若输出中无Swap文件信息或提示“设备未找到”,则需进行修复。
2. 禁用并删除损坏的Swap文件
若确认Swap文件损坏,需先停止其使用并删除旧文件:
sudo swapoff -a # 禁用所有Swap空间(包括当前损坏的Swap文件)
sudo rm /swapfile # 删除损坏的Swap文件(路径需替换为实际文件路径,如/swapfile或/var/swapfile)
注意:操作前确保无重要进程正在使用Swap文件,避免数据丢失。
3. 重新创建Swap文件
根据系统需求选择合适大小(如4GB内存建议分配4-8GB Swap),以下以truncate(快速)和fallocate(推荐)为例:
truncate快速创建(适用于大多数现代文件系统,如ext4、XFS):sudo truncate -s 4G /swapfile # 创建4GB大小的空文件(-s指定大小)
fallocate创建(更直观,直接分配磁盘空间):sudo fallocate -l 4G /swapfile # 分配4GB磁盘空间给文件
设置文件权限(仅root可读写,防止误操作):
sudo chmod 600 /swapfile
格式化为Swap空间(将普通文件转换为系统可识别的交换空间):
sudo mkswap /swapfile
启用新的Swap文件:
sudo swapon /swapfile
验证是否生效:
sudo swapon --show # 应显示新创建的Swap文件
free -h # Swap使用量应大于0
4. 配置开机自动挂载
编辑/etc/fstab文件,添加以下行(确保重启后自动启用Swap文件):
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
验证配置是否正确:
sudo swapon --show # 应仍显示Swap文件
5. 检查并修复底层文件系统(可选)
若Swap文件反复损坏,可能是所在文件系统存在问题。需先卸载文件系统(若Swap文件在根分区,需进入救援模式),然后运行:
sudo fsck.ext3 /dev/sdXY # 替换为Swap文件所在分区(如/dev/sda1)
sudo xfs_repair /dev/sdXY
修复完成后重新挂载文件系统,再重复上述步骤创建Swap文件。
6. 其他可选方法
TestDisk或PhotoRec恢复数据(需安装工具:sudo apt install testdisk)。注意事项:
/swapfile所在分区);