这里有最新的使用文档和教程
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.重启系统验证下