1. 故障现象

  • 症状​:系统开机无法正常进入图形界面或登录界面,直接 dropped into ​Emergency Mode​(紧急模式)。
  • 关键报错​:
EXT4-fs (dm-2): VFS: Can't find ext4 filesystem

系统提示无法找到 EXT4 文件系统,导致挂载失败。

2. 故障原因分析

经过排查,根本原因并非文件系统损坏,而是​配置文件错误​。

  • 实际环境​:该系统(OpenEuler)的 LVM 逻辑卷(root 和 home)实际使用的是 XFS 文件系统。
  • 配置错误​:/etc/fstab 文件中,分区(/)和home分区(/home)的文件系统类型被错误地标记为 ext4
  • 后果​:系统启动时,尝试用 EXT4 的驱动去挂载 XFS 格式的分区,导致识别失败,进而触发紧急模式。

3. 排查与解决步骤

第一步:进入紧急模式 Shell

在报错界面输入 root 密码,进入命令行模式。

第二步:初步诊断(排除法)

  1. 查看逻辑卷状态​: 输入 lvs 查看分区情况,确认分区名称(如 openeuler-root, openeuler-home)。
  2. 尝试修复
    • 尝试使用 fsck 修复,系统提示该设备包含 XFS 文件系统(说明 fsck 工具不匹配)。
    • 尝试使用 xfs_repair 修复根分区,系统提示 contains a mounted filesystem(说明分区已挂载,无法直接修复,侧面证明根分区可能并未损坏,只是挂载参数不对)。

第三步:定位根本原因

查看文件系统挂载配置文件:

cat /etc/fstab

发现错误配置​:

# 错误写法
/dev/mapper/openeuler-root  /     ext4    defaults    1 1
/dev/mapper/openeuler-home  /home ext4    defaults    1 2

正确应为​(OpenEuler/CentOS 7+ 默认使用 XFS):

# 正确写法
/dev/mapper/openeuler-root  /     xfs     defaults    1 1
/dev/mapper/openeuler-home  /home xfs     defaults    1 2

第四步:修复配置

  1. 使用 vi 编辑器修改文件:
    vi /etc/fstab
    
  2. ext4 修改为 xfs
    • 注意:编辑时需仔细,避免多输入字符、输入错误字符等。
  3. 保存退出(按 Esc,输入 :wq,回车)。

第五步:重启系统

由于在紧急模式下 reboot 命令可能失效(报错 Running in chroot),采取以下任一方式重启:

  • 方法 A​:输入 exit 尝试继续启动流程。
  • 方法 B​:直接按机箱电源键强制重启。

本次使用exit无响应,亦使用物理强制关机重启机器,重启后系统正常引导

4. 经验总结与知识点

  1. 文件系统类型匹配​:
    • CentOS 7 / OpenEuler / RHEL 7+​:默认文件系统是 ​XFS​。
    • Ubuntu / Debian​:默认文件系统通常是 ​EXT4​。
    • 在修改 /etc/fstab 或克隆系统时,务必确认实际的文件系统类型(可用 df -Tlsblk -f 查看)。
  2. 紧急模式下的限制​:
    • 在 Emergency Mode 下,系统服务未完全加载,rebootshutdown 命令经常无法使用。
    • 如果软件重启无效,直接物理重启是安全的(因为此时并没有进行危险的写入操作)。
  3. XFS 文件系统的修复​:
    • 不能用 fsck,必须用 xfs_repair
    • 修复前必须卸载分区(umount),如果分区已挂载(如根分区),通常需要使用 Live USB(安装盘)进入救援模式才能修复。

本次故障定性​:配置失误(Configuration Error),非硬件损坏或数据丢失。