根据你的需求,可以通过 Systemd 单元文件实现开机自动挂载 Swap 文件或分区,无需修改 /etc/fstab
。以下是具体实现步骤:
1. 创建并配置 Swap 文件
- 创建 Swap 文件
使用dd
或fallocate
命令创建指定大小的文件(例如 4GB):sudo fallocate -l 4G /swapfile # 推荐方式,速度更快 # 或使用 dd(若 fallocate 不可用) sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
- 设置文件权限
确保仅 root 可读写:sudo chmod 600 /swapfile
- 格式化为 Swap 格式
sudo mkswap /swapfile
2. 创建 Systemd Swap 单元文件
- 新建
.swap
单元文件
创建/etc/systemd/system/swapfile.swap
:sudo nano /etc/systemd/system/swapfile.swap
- 写入配置内容
[Unit] Description=Enable Swap File at Boot Requires=local-fs.target # 依赖本地文件系统就绪 After=local-fs.target [Swap] What=/swapfile # Swap 文件路径 Options=defaults # 可添加其他选项(如 pri=100) [Install] WantedBy=multi-user.target # 随系统启动挂载
- 关键参数说明:
What
:指向 Swap 文件或分区(如/dev/sdXN
)。Options
:支持pri
(优先级)、discard
(TRIM 支持)等参数。
- 关键参数说明:
3. 启用并启动 Swap 服务
- 重载 Systemd 配置
sudo systemctl daemon-reload
- 启用开机自动挂载
sudo systemctl enable swapfile.swap
- 立即激活 Swap
sudo systemctl start swapfile.swap
4. 验证 Swap 状态
- 查看当前 Swap 使用情况:
free -h swapon --show
- 检查服务状态:
systemctl status swapfile.swap
输出应显示
Active: active (exited)
。
5. 补充配置(可选)
- 调整 Swappiness 参数
控制系统使用 Swap 的积极性(默认值60
,范围0-100
):# 临时修改 sudo sysctl vm.swappiness=10 # 永久生效 echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
- 调整 Swap 文件大小
需先禁用 Swap,修改文件大小后重新启用:sudo swapoff /swapfile sudo fallocate -l 8G /swapfile # 扩展至 8GB sudo mkswap /swapfile sudo swapon /swapfile
注意事项
- **避免依赖
/etc/fstab
**:此方法通过 Systemd 独立管理 Swap,避免因/etc/fstab
错误导致系统启动失败。 - 文件系统兼容性:若使用 NTFS 分区需安装
ntfs-3g
,否则可能挂载失败。 - 日志排查:若启动失败,通过
journalctl -u swapfile.swap
查看详细日志。
通过上述步骤,Swap 文件将在开机时自动激活,且完全独立于 /etc/fstab
配置。