
Centos 7 手工添加swap分区提示swapon: /swapfile:swapon 失败: 无效的参数

解决方案
1. 确保文件正确格式化
Swap 文件需要用 mkswap 格式化后才能启用:
sudo mkswap /swapfile
一键获得完整项目代码
bash
假如仍然显示错误,可能是文件创建方法有问题。
2. 检查文件是不是正确创建
假如用 fallocate 创建的 Swap 文件在某些文件系统(如 ext4)上可能没办法正常工作,改用 dd 命令:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
一键获得完整项目代码
bash
(count=4096 表示 4GB,调整 count 可改变大小)
然后重新格式化:
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
一键获得完整项目代码
bash
3. 检查文件系统是不是支持 Swap
某些文件系统(如 Btrfs)可能需要额外配置才能支持 Swap 文件。若是 ext4/XFS,一般没问题。
查询文件系统种类:
df |Th /swapfile
一键获得完整项目代码
bash
4. 确保内核支持 Swap 文件
运行以下命令检查:
grep ConFIG|SWAP /boot/config|$(uname |r)
一键获得完整项目代码
bash
假如输出包括 ConFIG|SWAP=y,则支持 Swap 文件。
5. 检查 SELinux 是不是阻止 Swap
若是 CentOS 7,SELinux 或许会阻止 Swap 文件启用:
sudo ls |lZ /swapfile
一键获得完整项目代码
bash
假如 SELinux 上下文不正确,可以临时禁用 SELinux 测试:
sudo setenforce 0
sudo swapon /swapfile
一键获得完整项目代码
bash
假如成功,再恢复 SELinux 并调整方案:
sudo setenforce 1
sudo chcon |t swapfile|t /swapfile
一键获得完整项目代码
bash
6. 检查是不是已有足够的 Swap
查询目前 Swap 状况:
free |h
swapon ||show
一键获得完整项目代码
bash
假如已有足够的 Swap,可能无需再增加。
最后验证
假如以上步骤都正确实行,第三尝试启用 Swap:
sudo swapon /swapfile
一键获得完整项目代码
bash
然后检查是不是生效:
free |h
swapon ||show
7.使更改永久生效:在 /etc/fstab 中添加:
/swapfile swap swap defaults 0 0
8.重启系统验证下


