3.6.3 /etc/fstab配置与启动挂载

3.6.3 /etc/fstab配置与启动挂载#

/etc/fstab 用于定义系统启动时的自动挂载策略,正确配置可保证设备稳定挂载并避免启动卡顿。本节包含原理示意、配置示例、验证流程、排错与练习。

原理草图:启动挂载流程

文章图片

文件格式与字段说明(6列)
1. 设备:/dev/sdb1、UUID=、LABEL=、网络路径
2. 挂载点:/、/data
3. 文件系统类型:ext4、xfs、nfs、swap
4. 挂载选项:defaults、noatime、_netdev
5. dump:是否参与 dump 备份,常用 0
6. fsck:启动检查顺序,0不检查,1根分区,2其他分区

完整配置示例(带注释)

# /etc/fstab
# 设备              挂载点     类型  选项                         dump fsck
UUID=1a2b-3c4d     /          xfs   defaults                    0    1
UUID=5e6f-7a8b     /data      ext4  defaults,noatime            0    2
/dev/sdb2          swap       swap  defaults                    0    0
192.168.1.10:/share /mnt/share nfs  defaults,_netdev,nofail     0    0

关键命令与解释

# 1) 获取设备 UUID 与 LABEL
blkid
# 说明:输出设备的 UUID/LABEL,用于稳定引用

# 2) 创建挂载点
mkdir -p /data /mnt/share
# 说明:挂载点必须是空目录

# 3) 立即验证 /etc/fstab 语法与挂载
mount -a
# 说明:按 /etc/fstab 执行挂载;有语法错误会报错

# 4) 查看挂载结果
findmnt -r /data /mnt/share
# 说明:显示实际挂载源、类型和选项

# 5) 查看 systemd 生成的挂载单元(可选)
systemctl list-units --type=mount | grep data

常见挂载选项与适用场景
- noatime:减少写入,适合数据盘
- _netdev:网络就绪后挂载,NFS/CIFS 推荐
- nofail:挂载失败不阻塞启动
- x-systemd.automount:按需挂载,降低启动依赖

systemd 相关示例

# /etc/fstab 中为 NFS 设置按需挂载
192.168.1.10:/share /mnt/share nfs defaults,_netdev,x-systemd.automount 0 0

排错步骤(必做)
1. 启动卡在挂载:切到救援模式或单用户模式
2. 注释故障行:在 /etc/fstab 前加 #
3. 重新验证:mount -a
4. 排查设备名:lsblk -fblkid
5. 检查网络:ping 192.168.1.10(NFS)

典型报错与处理
- mount: wrong fs type, bad option: 文件系统类型或选项错误
- 处理:核对第3列与第4列,使用 lsblk -f 确认类型
- special device UUID=... does not exist:UUID 变化
- 处理:用 blkid 更新 UUID
- Dependency failed for /mnt/share:网络未就绪
- 处理:加 _netdevx-systemd.requires=network-online.target

练习
1. 新建分区 /dev/sdb1,格式化为 ext4,并用 UUID 挂载到 /data。
2. 在 /etc/fstab 加入 nofailnoatime,执行 mount -a 验证。
3. 模拟错误:将 fsck 列改为 9,执行 mount -a,观察并修正。

通过规范化 /etc/fstab 配置、验证与排错流程,可确保启动挂载稳定可靠。