直接编辑 /etc/fstab 文件修改挂载参数,将目标行第四列(挂载选项)的 defaults 替换为所需组合(如 defaults,noatime 或 defaults,ro),并确保使用 UUID(不带引号)、挂载点存在、mount -a 测试通过,第六列 fsck 顺序按根分区=1、数据盘=2、非本地盘=0 设置。

怎么改 /etc/fstab 里的挂载参数
直接编辑 /etc/fstab 是唯一可靠的方式。不能靠 mount -o remount 临时改——它不写入 fstab,重启就失效。
用 vi /etc/fstab 打开后,找到目标行,比如:
UUID=a1b2c3d4- /data ext4 defaults 0 2
把 defaults 替换成你想要的组合,常见修改包括:
-
defaults,noatime,nodiratime:减少磁盘写入,适合 SSD 或高 IO 场景 -
defaults,ro:只读挂载(注意:如果应用需要写入,会报Read-only file system错误) -
defaults,nofail:磁盘不存在或故障时,系统仍能正常启动(强烈建议数据盘加这个) -
defaults,errors=remount-ro:文件系统出错时自动切为只读,避免损坏
改完保存,必须立即运行 mount -a 测试语法是否合法。失败会报类似 mount: wrong fs type, bad option, bad superblock,此时别重启,先回退修改。
为什么一定要用 UUID 而不是 /dev/sdX
设备名(如 /dev/sdb)在内核加载顺序变化、多盘热插拔或虚拟机迁移时极易变动,导致 fstab 挂载失败甚至系统卡在启动阶段。
正确做法是用 blkid 查 UUID:
blkid /dev/vdb
输出类似:/dev/vdb: UUID="a1b2c3d4-..." TYPE="ext4",然后把这串 UUID 粘贴进 fstab 第一列,格式为 UUID=a1b2c3d4-...。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
注意:blkid 输出的 UUID 带双引号,fstab 里**不能带引号**,否则 mount -a 会静默失败。
ro / rw 切换要特别小心的点
把挂载点设为只读(ro)后,普通用户和 root 都无法写入,但某些服务(如数据库、日志轮转)会直接报错退出。
临时测试只读可用:mount /data -o remount,ro;恢复读写用:mount /data -o remount,rw。
但永久生效必须改 fstab 并 mount -a。如果已挂载为 rw,fstab 改成 ro 后执行 mount -a,系统会尝试 remount —— 这要求当前没有进程正在写该目录,否则报 busy 错误。此时得先停掉相关服务再操作。
nofail 和 fs_passno(第六列)别设错
nofail 是安全兜底项,加了它,即使磁盘断开或未就绪,系统也能完成启动(只是该挂载点不可用)。没加的话,systemd 会等超时后报错并可能进入 emergency mode。
第六列(fs_passno)控制 fsck 检查顺序:根分区必须是 1,其他常规数据盘推荐用 2,光盘/网络盘/临时盘应设为 0(跳过检查)。设成 1 多个分区会导致 fsck 串行阻塞启动。
常见错误是把数据盘第六列写成 1,结果某次异常关机后,系统卡在 fsck 等待人工干预——而你根本连不上控制台。

















