当CentOS系统的Swap文件丢失时,需通过重新创建Swap文件并恢复自动挂载配置来解决问题。以下是具体步骤:
首先确认Swap是否确实丢失,使用以下命令查看:
swapon --show      # 显示当前启用的Swap空间
free -h            # 查看内存与Swap使用情况(Swap值为0则表示丢失)
若输出为空或Swap大小为0,说明Swap文件已丢失。
选择合适的分区(如/根分区)创建Swap文件(以2GB大小为例,可根据内存需求调整):
sudo fallocate -l 2G /swapfile    # 快速创建指定大小的空文件(推荐)
# 或使用dd命令(较慢):
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
设置严格的文件权限(仅root可读写,防止安全风险):
sudo chmod 600 /swapfile
将文件格式化为Swap格式:
sudo mkswap /swapfile
激活Swap文件:
sudo swapon /swapfile
再次验证Swap是否启用:
swapon --show      # 应显示新创建的Swap文件信息
free -h            # Swap大小应显示为2GB
编辑/etc/fstab文件,添加以下行以确保系统重启后自动启用Swap:
sudo vi /etc/fstab
在文件末尾添加:
/swapfile swap swap defaults 0 0
保存并退出(vi中按Esc→输入:wq→回车)。
若系统内存充足(如16GB以上),可通过调整swappiness参数降低Swap使用频率(默认值为60,数值越小越少使用Swap):
# 临时调整(立即生效)
sudo sysctl vm.swappiness=10
# 永久调整(修改配置文件)
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p       # 使配置生效
/etc/fstab和Swap文件所在分区的数据,避免误操作导致数据丢失。sudo fsck /dev/sdXY,sdXY为分区名)后再创建Swap。通过以上步骤,可快速恢复CentOS系统中丢失的Swap文件,并确保系统在内存不足时正常使用Swap空间。