太棒了你已经成功修复!下面是你本次 CentOS 9 虚拟机强制断电后无法启动的修复全过程总结,我已为你整理为清晰的操作步骤,方便以后查阅或应急使用。


🧩 场景背景

  • 系统:CentOS 9
  • 环境:VMware 虚拟机
  • 事故原因:VMware 强制断电重启,导致系统文件系统损坏
  • 报错信息:启动停在 emergency mode,出现 xfs_inobt_lookup() returned error -117 等信息

🧰 修复目标

  • 找出并修复因断电导致的文件系统错误
  • 成功挂载逻辑卷并恢复系统正常启动
  • 提取网站文件数据(用户核心关切)

✅ 最终解决方案:完整修复流程

第 1 步:挂载 CentOS 安装 ISO 镜像

  • 挂载 CentOS 9 或 CentOS 10 的安装 ISO
  • 启动虚拟机,在 VMware BIOS 中选择从 CD/DVD 启动
  • 重点!!!挂载的镜像需要与要修复的系统是同一个版本号,不能用centos10去修复centos9
  • 选择菜单项 Troubleshooting → Rescue a CentOS system→选择3进入到shell

第 2 步:进入救援 shell

  • 当提示 Please press ENTER to get a shell,直接按回车或者输入ENTER进入 bash

第 3 步:激活 LVM 逻辑卷组

逻辑卷默认是不显示的所以如下的图不显示
├─cs_192-root 253:0 0 163.9G 0 lvm /
├─cs_192-swap 253:1 0 3.9G 0 lvm [SWAP]
└─cs_192-home 253:2 0 31.2G 0 lvm /home

1
2
3
4
5
6
7
8
9
10

[root@127 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 200G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 199G 0 part
├─cs_192-root 253:0 0 163.9G 0 lvm /
├─cs_192-swap 253:1 0 3.9G 0 lvm [SWAP]
└─cs_192-home 253:2 0 31.2G 0 lvm /home
设备路径 类型 挂载点 说明
/dev/nvme0n1 磁盘 整块 NVMe 磁盘
├─ /dev/nvme0n1p1 分区 /boot Boot 引导分区
└─ /dev/nvme0n1p2 分区 LVM 物理卷
├─ cs_192-root LVM 逻辑卷 / 根分区,最关键
├─ cs_192-swap LVM 逻辑卷 [SWAP] 交换分区,正常
└─ cs_192-home LVM 逻辑卷 /home 家目录,已挂载

注意本次修复主要目标是逻辑卷cs_192-root`
输入以下命令可以查看逻辑卷的具体名称用于之后的修复命令输入准确的逻辑卷名字参数

1
2
3
lvm vgscan              # 扫描卷组
lvm vgchange -ay # 激活卷组
lvscan # 显示所有逻辑卷(你最想看到这个)

此时你将看到 /dev/mapper/ 下出现了你的 LVM 逻辑卷,例如:

  • /dev/mapper/cs_192-root(根分区)
  • /dev/mapper/cs_192-swap(交换分区)

第 4 步:执行 XFS 文件系统修复

只修复 逻辑卷(尤其是根分区),不要修复 swap!
这里的/dev/mapper/cs_192-root路径需要根据当前逻辑卷的具体路径来调整

1
xfs_repair -v -L /dev/mapper/cs_192-root

如果你还有 /home 分区之类,也可以类似修复。
本人只是修复了root的逻辑卷然后直接reboot重启了,就好了。


第 5 步:挂载系统分区并 chroot 进入系统(此步骤也可以省略直接reboot重启进入系统即可,记得修改固件开机启动项或者卸载cd镜像。)

1
2
3
4
5
6
mount /dev/mapper/cs_192-root /mnt/sysimage
mount /dev/nvme0n1p1 /mnt/sysimage/boot # 如果你有单独的 boot 分区
mount --bind /dev /mnt/sysimage/dev
mount --bind /proc /mnt/sysimage/proc
mount --bind /sys /mnt/sysimage/sys
chroot /mnt/sysimage

进入后你可以运行 journalctl -xbdnf reinstallgrub2-install 等进一步修复命令(如有需要)。


第 6 步:重启系统

退出 chroot 并重启:

1
2
exit
reboot

确保在 BIOS 中把 ISO 镜像移除,虚拟机从磁盘正常启动。


💡 经验总结建议

建议项 内容
💾 定期快照 VMware 虚拟机应在重大改动前或周期性创建快照
🧯 关机规范 避免强制关闭虚拟机,始终使用shutdown -h now 或图形化正常关机
🔌 UPS 保护 实体机断电风险高的环境建议加 UPS
📂 数据备份 重要网站文件应定期同步到外部磁盘或远程服务器(如 rsync/Google One)

如需我帮你导出网站数据、配置自动备份脚本,或再写一个“应急手册 PDF 文件”,也可以告诉我!
[^1]centos下载:https://www.centos.org/download/
参考:https://www.cnblogs.com/zisefeizhu/p/12575996.html