运行时生效挂载参数用 mount 或 findmnt 查看,/etc/fstab 仅定义开机配置而非实际值;修改 fstab 后须执行 mount -a 验证,优先使用 UUID 并注意 fsck 顺序。

直接看运行时生效的挂载参数,用 mount 或 findmnt;查开机自动挂载配置,必须看 /etc/fstab,但注意它不等于实际生效值。
怎么确认当前生效的挂载选项
运行时状态和 /etc/fstab 不一定一致——比如你手动执行了 mount -o remount,noatime /home,那 /etc/fstab 里写的是 defaults 也没用,实际就是 noatime 生效了。
-
mount命令不带参数,输出每行末尾括号里的内容就是当前生效选项,例如:/dev/sda2 on /data type ext4 (rw,relatime,noatime,data=ordered) -
findmnt /data更清晰,字段对齐,且能区分“source”“target”“fstype”“options”,适合脚本解析 -
cat /proc/mounts是内核原始快照,格式紧凑但无缩进,grep配合awk提取第4列(选项)最直接 - 别信
df -h——它只显示挂载点和空间,不显示任何选项
/etc/fstab 第四列挂载选项怎么写才安全
第四列是逗号分隔的字符串,没空格,大小写敏感,拼错一个字母(比如 noatime 写成 noatimee)会导致 mount -a 失败,甚至系统启动卡住。
-
defaults等价于rw,suid,dev,exec,auto,nouser,async,但生产环境通常要覆盖掉部分:加noatime减少 SSD 写入,加nofail防硬盘拔掉后无法进系统 -
noatime和relatime二选一即可,relatime是折中方案(只在 mtime 改变时更新 atime),多数场景比noatime更兼容某些监控工具 -
discard只对支持 TRIM 的 SSD 有意义,机械盘或 NFS 加了无效,还可能拖慢挂载速度 - 远程文件系统(如 NFS)慎用
defaults,应显式指定hard,intr,timeo=600等容错参数,否则网络抖动容易卡死进程
设备标识用 UUID 还是 /dev/sdX?
永远优先用 UUID=...,除非你明确知道设备名稳定(比如单盘嵌入式设备)。/dev/sda1 在 USB 插拔、多盘热插拔、BIOS 启动顺序变更后极易错乱。
- 查 UUID:运行
blkid /dev/sda1或lsblk -f,输出里找UUID="..." - fstab 中写成:
UUID=550e8400-e29b-41d4-a716-446655440000 /data ext4 defaults,nofail 0 2 - Label 方案(
LABEL=DATA)可行但有坑:ext4 默认不设 label,xfs 必须用xfs_admin -L DATA /dev/sda1设置,且 label 不能含空格或特殊字符 - 不要在 fstab 里混用 UUID 和设备名——调试时容易误判哪一行对应哪个盘
测试 fstab 修改是否合法,别等重启再翻车
改完 /etc/fstab 后,必须立刻验证,否则重启失败得进 rescue 模式。
- 先执行
sudo mount -a:它会按 fstab 逐行尝试挂载所有noauto以外的条目,报错会直接指出哪一行、哪个参数有问题 - 如果某行用了
nofail,mount -a即使失败也不会中断,得单独测:sudo mount -v /data(假设挂载点是/data) - 验证挂载成功后,再用
findmnt /data对比选项是否和 fstab 里写的完全一致(注意:defaults会展开,别拿展开结果去反推 fstab 原文) - 特别提醒:
swap分区在 fstab 里类型写成swap,但swapon -a才真正启用,mount -a不处理它
最常被忽略的一点:fstab 的第六列(fsck 顺序)设为 0 的分区,systemd-fsck 启动时直接跳过检查——哪怕文件系统已损坏,也不会报错,只会静默挂载。根分区必须是 1,其他关键数据盘建议设为 2,别图省事全写 0。


















