
大半夜耍了一下虚拟机,结果手欠,按错键了非正常关机,导致虚拟机起不来了
从报错信息 Corruption detected. Unmount and run xfs_repair 可以看出,XFS 文件系统的元数据(inode)出现了损坏,通常是因为异常断电、强制关机或磁盘 I/O 错误导致的。
因为本机已经损坏无法登录,无法输入命令lsblk, 换了台虚拟机,两个都一样的配置另一台没有配置docker等的新机器,输入命令确认分区如下

从 lsblk 输出可以看到:
/dev/mapper/centos_centos7-root是根分区(/),使用 XFS 文件系统。/dev/sda1是/boot分区,也为 XFS。这两个分区都可能是之前报错的位置,其中根分区的概率更大。
🛠️ 修复步骤
-
**进入单用户模式(推荐)**直接在运行的系统上无法修复根分区,需要重启并进入单用户模式:
- 重启时在 GRUB 菜单选择内核,按
e进入编辑模式。 - 找到以
linux16开头的行,在末尾添加init=/bin/bash。 - 按
Ctrl+X启动,进入只读模式的单用户环境。
- 重启时在 GRUB 菜单选择内核,按
-
重新挂载根分区为可读写
bash
运行
mount -o remount,rw / -
卸载目标分区(如果是
/boot)bash
运行
umount /dev/sda1 -
执行 XFS 修复
-
修复根分区: bash
运行
xfs_repair -L /dev/mapper/centos_centos7-root -
修复
/boot分区:bash
运行
xfs_repair -L /dev/sda1
⚠️ 注意:
-L参数会清除日志,仅在常规修复失败时使用,可能丢失未提交的数据。 -
-
验证并重启
bash
运行
xfs_repair -n /dev/mapper/centos_centos7-root exec /sbin/init
输入完,如下,不是:/#开头了 是bash-4.2#

这时候重启虚拟机,输入用户名密码登录


服务恢复正常