fstab 写错后怎么恢复
/etc/fstab 记录开机自动挂载的条目,写错(UUID 抄错、设备名变化、选项不支持)会导致系统进入应急模式或卡在挂载阶段无法正常启动。恢复思路是先进单用户或救援环境,用 blkid 核对真实分区标识,修正或注释可疑条目,再用 mount -a 验证全部条目可挂载,确认无报错后才重启。用 UUID 而不是设备名,可以避免设备顺序变化导致的同类问题。
基本信息
| 文件位置 | /etc/fstab |
|---|---|
| 验证命令 | mount -a,无输出表示全部挂载成功 |
| 标识查看 | blkid 输出各分区 UUID 与文件系统类型 |
| 异常表现 | emergency mode、卡在挂载、系统启动超时 |
| 恢复入口 | GRUB 菜单加单用户参数,或使用救援介质与 rescue 模式 |
典型使用场景
- 新加数据盘后写错 UUID,重启进入应急模式,需要快速定位并修正
- 克隆或虚拟机复制后设备标识变化,原有 fstab 条目全部失效
- 调整挂载选项(如添加 noatime、改默认权限)后启动异常
- 云主机扩容或更换系统盘后,分区标识与 fstab 记录不一致
- 验收前逐条核对 fstab:确认标识、挂载点与选项都符合规划
- 排障时区分「磁盘问题」与「配置问题」,避免误判为硬件故障
取证与修复
取证与修复
mount | grep -E 'on / |on /boot' # 查看当前实际挂载情况
blkid # 核对各分区 UUID 与类型
cat /etc/fstab # 找出与实际不符的条目
systemctl status local-fs.target --no-pager | head -20 # 查看挂载单元报错
cp /etc/fstab /etc/fstab.bak # 改动前先备份
vim /etc/fstab # 修正 UUID 或先注释可疑行
mount -a # 无输出即全部通过
findmnt --verify # 逐条校验条目可解析
systemctl daemon-reload # 让 systemd 重新读取挂载单元条目字段读法
| 字段 | 含义 | 常见取值 |
|---|---|---|
| 第一列 | 设备标识 | UUID=、LABEL=、/dev/mapper 路径 |
| 第二列 | 挂载点 | /、/boot、/data |
| 第三列 | 文件系统类型 | xfs、ext4、swap |
| 第四列 | 挂载选项 | defaults、noatime、nofail |
| 第五列 | 是否 dump 备份 | 一般为 0 |
| 第六列 | 开机自检顺序 | 根分区 1,其它 2 或 0 |
改完 fstab 必须执行 mount -a 验证通过再重启:这是成本最低的一次性检查,能拦住绝大多数会导致启动失败的条目错误。
不要为了「绕过报错」直接注释根分区条目:根挂载属性丢失会带来只读挂载、systemd 状态异常等更严重的问题,应先确认真实标识再修正。