在 Linux 上挂一块磁盘并不难,难的是让它在重启后仍然稳定存在,而且不要因为磁盘偶发缺失把系统启动拖死。
实际常见方案主要就两种:
fstabsystemd mount unit
什么时候用 fstab
如果这块盘具备下面这些特征,fstab 通常就够了:
- 本地固定磁盘
- 挂载点明确且长期不变
- 你希望配置方式简单直接
查看 UUID:
blkid
然后在 /etc/fstab 中写一行:
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /mnt/mount_point ext4 defaults 0 2
字段含义大致如下:
UUID=...:目标分区 UUID/mnt/mount_point:挂载点目录,必须事先存在ext4:文件系统类型defaults:默认挂载参数0:是否参与dump2:开机检查顺序
写完之后,不要直接重启,先验证:
sudo mount -a
mount | grep '/mnt/mount_point'
什么时候用 systemd mount unit
如果你担心磁盘偶发缺失,或者希望启动时行为更可控,systemd mount unit 往往更稳。
它的一个优势是:当设备不可用时,通常不会像某些 fstab 场景那样让系统启动阶段长时间卡住。
systemd 文件怎么命名
命名规则直接来自挂载路径:
/mnt->mnt.mount/mnt/aaa/bbb->mnt-aaa-bbb.mount/srv/samba/MyDisk->srv-samba-MyDisk.mount
例如挂载到 /srv/samba/MyDisk:
sudoedit /etc/systemd/system/srv-samba-MyDisk.mount
写入:
[Unit]
Description=Mount Additional Drive
[Mount]
What=/dev/disk/by-uuid/c3754882-e52f-416d-a517-def898a48b30
Where=/srv/samba/MyDisk
Type=btrfs
Options=defaults
[Install]
WantedBy=multi-user.target
然后启用并立即挂载:
sudo systemctl daemon-reload
sudo systemctl enable --now srv-samba-MyDisk.mount
两种方案怎么选
可以用一个很简单的判断:
- 本地固定盘:优先
fstab - 担心磁盘缺失影响启动:优先
systemd mount unit - 网络盘或依赖其他服务的挂载:也更适合
systemd
一个实用建议
不要把“已经写进配置文件”当成完成。真正完成的标准应该是:
- 配置已写入
- 不重启也能手动验证挂载成功
- 重启后仍能按预期工作
尤其是 fstab,一旦写错,影响范围通常比你想象的大。
一句话总结
Linux 持久化挂载不是只有一种“标准答案”。fstab 简单直接,systemd mount unit 更稳更可控。关键是根据磁盘类型和可接受的启动风险来选,而不是只图省事。