概述
物理服务器正常运行过程中,若突发机房断电且无备用电源,会造成其上的云主机和物理机的硬盘磁头骤停或写入位置错误,进而导致数据文件乃至系统文件损坏,致使云主机和物理机无法正常启动系统。本文档涵盖云主机系统和物理机系统两类故障场景,并针对不同故障场景提供对应修复方案,供运维工程师手动修复系统时参考使用。
云主机系统修复
Windows云主机系统修复
Windows云主机无法进入系统
故障场景
若Windows云主机启动时出现The Boot Configuration Data for your PC is missing or
contains
errors提示,推测故障原因可能为物理机异常断电,造成云主机引导文件丢失,云主机系统保留分区被标记为非活动分区,导致云主机启动时无法进入系统。

修复方案
- 登录云平台,点击,进入云主机界面。选择故障云主机,在该云主机详情页的基本信息中,点击编辑平台和操作系统,弹出修改平台和操作系统界面,确认云主机类型为Windows云主机。如图 2所示:
图 2. 云主机平台和操作系统 
- 在故障云主机详情页中,点击,进入虚拟光驱界面。点击,加载PE系统ISO文件至故障云主机。Note: 建议选择主流PE系统或工程师常用型号PE系统。
- 点击,弹出设置启动顺序界面。将云主机启动顺序设置为CdRom
(光盘)启动,并勾选仅在下一次启动生效,之后将恢复从硬盘启动选项。如图 3所示:
图 3. 设置启动顺序 
- 重启云主机进入PE系统,打开计算机管理界面,点击,进入磁盘管理界面。右键点击系统保留分区,选择将分区标记为活动分区,修改后重启云主机,系统恢复。如图 4所示:
图 4. 标记活动分区 
Windows系统文件损坏
故障场景
相关系统文件正在执行写操作时,突发物理机断电,造成Windows系统盘/windows/system32目录下文件损坏,导致云主机无法正常开机。
修复方案
- 登录云平台,点击,进入云主机界面。选择故障云主机,点击,弹出创建镜像界面,为云主机创建镜像备份。Note: 执行系统修复操作前,需为云主机创建备份,避免因系统修复过程中对云主机系统文件产生不可逆损坏,而造成数据丢失。如图 5所示:
图 5. 创建镜像 
- 在故障云主机详情页中,点击,进入虚拟光驱界面。点击,加载PE系统ISO文件至故障云主机。Note: 建议选择主流PE系统或工程师常用型号PE系统。
- 点击,弹出设置启动顺序界面。将云主机启动顺序设置为CdRom
(光盘)启动,并勾选仅在下一次启动生效,之后将恢复从硬盘启动选项。如图 6所示:
图 6. 设置启动顺序 
- 重启云主机进入PE系统,打开此电脑界面,选中磁盘后右键点击属性,弹出磁盘属性界面,点击,启动Windows磁盘修复。如图 7所示:
图 7. Windows磁盘修复 
- 修复完成后,测试能否正常打开/windows/system32目录下config文件夹,并重启云主机测试是否修复成功。若仍未解决,需重新进入PE系统,将/windows/system32/config/Regback目录下所有文件拷贝至/windows/system32/config目录下后,重启恢复。
Windows云主机出现蓝屏
Linux云主机系统修复
Linux云主机grub.cfg文件丢失
故障场景
若Linux云主机系统进入GRUB命令行(grub>)模式,推测故障原因可能为Linux云主机/boot/grub2/grub.cfg文件丢失,导致系统无法正常启动。
修复方案
- 打开云主机控制台,执行
ls命令查询磁盘分区。可根据命令返回结果判断磁盘分区,其中hd表示云主机磁盘,gpt表示磁盘分区,例如:(hd0, gpt1)表示磁盘0上的分区1。如图 12所示:图 12. 查询磁盘分区 
- 执行
ls (hd0,gpt1)/命令查看分区1中的文件。通过查看分区中的文件,查询grub2或grub目录所在分区,即boot分区。本场景中,boot分区为 (hd0, gpt2)。如图 13所示:图 13. 查看分区文件 
- 执行
ls命令找到根分区所在分区。根分区下通常存在/etc、/dev、/proc等目录。 - 执行
cat (lvm/centos-root)/etc/fstab命令查看挂载信息,并记录根目录所在分区信息。Note: 系统分区方式为LVM时,可尝试通过LVM类型系统根分区路径/dev/mapper/centos-root查看挂载信息。如图 14所示:图 14. 查看挂载信息 
- 执行
set root=(hd0,gpt2)命令设置引导分区,即boot分区,本场景为(hd0, gpt2)。如图 15所示:图 15. 设置引导分区 
- 执行以下命令,加载内核启动映像,设置根分区:
grub> linuxefi /vmlinuz-3.10.0-862.e17.x86_64 root=uuid=0404c631-636f-4983-9e7e-7d5375a38611root=后填写步骤4中查看到的根分区UUID信息。- 若步骤4中查看到的根目录挂载信息为/dev/vda1形式,则填写
root=/dev/vda1。 - 若系统分区类型为LVM,则可以尝试填写
root=/dev/mapper/centos-root。
如图 16所示:图 16. 加载内核启动映像 
- 设置Linux内核映像的初始ramdisk,输入
initrdefi /initramfs-命令后,可按tab键补全命令。如图 17所示:图 17. 设置初始ramdisk 
- 执行上述操作后,输入执行
boot命令,启动并进入系统。如图 18所示:图 18. 启动系统 
- 执行
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg命令,重新生成grub.cfg文件。文件生成后重启云主机,检查确认grub文件是否正常。至此UEFI模式云主机系统修复已完毕。如图 19所示:图 19. 生成grub.cfg文件 
- 打开云主机控制台,执行
ls命令查询磁盘分区。如图 20所示:图 20. 查询磁盘分区 
- 执行
ls (hd0,msdos1)/grub2命令或ls (hd0,msdos2)/grub2命令查询grub2目录所在分区位置,即boot分区。执行上述命令,返回结果为device.map i386-pc/ locale/ fonts/ grubenv的即为boot分区。本场景中,boot分区为 (hd0,msdos1)。如图 21所示:图 21. 查询分区 
- 执行
set root=(hd0,msdos1)命令,设置引导分区,即系统分区。如图 22所示:图 22. 设置引导分区 
- 执行以下命令,挂载根设备,将boot分区设置为启动分区:Note: 需根据实际情况确定系统位置,可查看参考正常物理机。
grub> linux16 /vmlinuz-3.10.0-957.27.6.da38eal.el7.x86_64 root=/dev/vda1如图 23所示:图 23. 挂载根设备 
- 执行以下命令,指定初始化镜像:
grub> initrd16 /initramfs-3.10.0-957.27.6.da38eal.el7.x86_64.img如图 24所示:图 24. 指定初始化镜像 
- 执行上述操作后,输入执行
boot命令,启动并进入系统。如图 25所示:图 25. 启动系统 
- 执行
grub2-mkconfig -o /boot/grub2/grub.cfg命令,重新生成gurb.cfg文件。如图 26所示:图 26. 生成grub.cfg文件 
- 执行
ll /boot/grub2命令,查看grub.cfg文件是否存在。至此Legacy模式云主机系统修复已完毕。如图 27所示:图 27. 查看grub.cfg文件 
Linux云主机grub.cfg文件损坏
故障场景
若Linux云主机无法进入系统,推测原因可能为物理机异常断电造成系统/boot/grub文件损坏,导致云主机无法执行系统命令,进入系统失败。
修复方案
- 登录云平台,点击,进入云主机界面。选择故障云主机,点击,关闭云主机电源。
- 在故障云主机详情页中,点击,进入虚拟光驱界面。点击,为云主机加载CentOS ISO文件。Note: 若虚拟光驱已加载ISO文件,需创建一个新的光驱后加载CentOS ISO文件。如图 28所示:
图 28. 加载ISO 
- 点击,进入设置启动顺序界面,修改云主机启动顺序为CdRom
(光盘)启动。如图 29所示:
图 29. 设置启动顺序 
- 重启该云主机,打开控制台,选择Troubleshooting。如图 30所示:
图 30. 选择Troubleshooting 
- 选择Rescue a CentOS
system进入救援模式。如图 31所示:
图 31. 救援CentOS系统 
- 在救援模式界面,输入1以继续操作。如图 32所示:
图 32. 输入1以继续操作 
- 根据系统提示,执行
chroot /mnt/sysimage命令,将根目录切换至硬盘系统的根目录中。如图 33所示:图 33. 切换根目录 
- 执行
ls /boot/grub命令,检查/boot/grub文件,发现grub目录已丢失。如图 34所示:图 34. 检查/boot/grub文件 
- 执行
lsblk命令,查看磁盘信息。如图 35所示:图 35. 查看磁盘信息 
- 执行
grub2-install --boot-directory=/boot /dev/vda命令,重新安装grub2文件。如图 36所示:图 36. 安装grub2文件 
- 执行
grub2-mkconfig -o /boot/grub2/grub.cfg命令,重新生成grub.cfg文件。如图 37所示:图 37. 生成grub.cfg文件 
- 重启云主机后,可正常进入系统。
Linux云主机MBR损坏
故障场景
物理机断电恢复后,若Linux云主机无法正常启动,此时推测原因可能为云主机硬盘主引导记录(Master Boot Record)损坏导致云主机启动失败。
修复方案
- 登录云平台,点击,进入云主机界面。选择故障云主机,点击,关闭云主机电源。
- 在故障云主机详情页中,点击,进入虚拟光驱界面。点击,为云主机加载CentOS ISO文件。Note: 若虚拟光驱已加载ISO文件,需创建一个新的光驱后加载CentOS ISO文件。如图 38所示:
图 38. 加载ISO 
- 点击,进入设置启动顺序界面,修改云主机启动顺序为CdRom
(光盘)启动。如图 39所示:
图 39. 设置启动顺序 
- 重启该云主机,打开控制台,选择Troubleshooting。如图 40所示:
图 40. 选择Troubleshooting 
- 选择Rescue a CentOS
system进入救援模式。如图 41所示:
图 41. 救援CentOS系统 
- 在救援模式界面,输入1以继续操作。如图 42所示:
图 42. 输入1以继续操作 
- 根据系统提示,执行
chroot /mnt/sysimage命令,将根目录切换至硬盘系统的根目录中。如图 43所示:图 43. 切换根目录 
- 执行
hexdump -C /dev/vda -n 521 -v命令,检查根云盘前521字节信息,发现MBR区域已损坏。如图 44所示:图 44. 检查MBR区域 
- 执行
grub2-install /dev/vda命令,修复磁盘MBR。如图 45所示:图 45. 修复磁盘MBR 
- 执行
hexdump -C /dev/vda -n 416 -v命令,再次检查根云盘MBR区域信息,发现返回结果非全0,MBR区域已修复。如图 46所示:图 46. 检查MBR区域 
- 返回云平台,点击,进入云主机界面。选择问题云主机,点击,进入设置启动顺序界面,修改云主机启动顺序为HardDisk
(硬盘)启动。如图 47所示:
图 47. 设置启动顺序 
- 重启云主机后,可正常进入系统。
Linux云主机启动进入紧急模式
故障场景
若Linux云主机启动后,系统进入紧急模式,此时推测原因可能为物理机意外断电导致/etc/fstab/文件挂载分区所在的磁盘损坏。
Linux云主机启动出现Attempted to kill init报错
故障场景
本地存储环境下物理机异常断电恢复后,启动Linux云主机时,出现Attempted to kill init报错。
修复方案
- 登录云平台,点击,进入云主机界面。选择故障云主机,点击,关闭云主机电源。
- 在故障云主机详情页中,点击,进入虚拟光驱界面。点击,为云主机虚拟光驱加载CentOS
6.9的ISO文件。Note: 若虚拟光驱已加载ISO文件,需创建一个新的光驱再加载CentOS 6.9 ISO文件。如图 51所示:
图 51. 加载ISO文件 
- 点击,进入设置启动顺序界面,修改云主机启动顺序为CdRom
(光盘)启动,并勾选仅在下一次启动生效,之后将恢复从硬盘启动选项。如图 52所示:
图 52. 设置启动顺序 
- 重启云主机,进入安装启动菜单,选择Rescue installed
system进入救援模式。如图 53所示:
图 53. 进入救援模式 
- 选择语言和键盘,语言默认为English,键盘默认为us。
- 按需设置网络,若需要设置网络选择Yes,若不需要则选择No。如图 56所示:
图 56. 设置网络 
- 若选择设置网络,进入以下界面选择网卡。如图 57所示:
图 57. 选择网卡 
- 进入以下界面设置IP。Note: IP设置需与云主机原IP地址保持一致。如图 58所示:
图 58. 设置IP 
- 进入选择Rescue选项界面,选择Continue。如图 59所示:
图 59. 选择Rescue 


- 原系统挂载于/mnt/sysimage路径下,若需切换至root环境下,执行
chroot /mnt/sysimage命令即可。 - 选择shell Start shell进入shell命令行模式。如图 60所示:
图 60. 进入shell命令行模式 
- 在shell命令行模式界面中,输入执行
chroot /mnt/sysimage命令,将/mnt/sysimage目录下文件切换至根目录下,出现error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory报错。如图 61所示:图 61. 执行chroot命令 
- 在一台正常的配置相同的云主机中,执行
ls -l libc.so.6命令,查找libc.so.6文件所在目录及文件类型。如图 62所示:图 62. 查找libc.so.6文件 
-
- 在故障云主机系统中,执行
cd /mnt/sysimage/lib64命令进入该目录。 - 执行
ls libc.so.6命令,查看libc.so.6文件是否存在,发现无此文件。 - 执行
ls libc-2.12.so命令,查看libc-2.12.so文件,发现存在此文件。 - 执行
ln -s libc-2.12.so libc.so.6命令,创建软链接。 - 执行
ls -l libc.so.6命令查看文件,发现创建成功。 - 重新执行
chroot /mnt/sysimage命令,成功切换至系统根目录。
如图 63所示:图 63. 切换系统根目录 
- 在故障云主机系统中,执行
- 输入执行
exit命令退出后,重启云主机,成功进入系统。
物理机系统修复
物理机系统盘硬盘故障
修复方案
- 准备新硬盘,新硬盘需满足以下条件:
- 置换的硬盘应是同型号、同系列、同容量的硬盘。
- 硬盘需是全新硬盘或者为未分区、未格式化的硬盘。
- 硬盘需插回原RAID通道,即原故障硬盘的插槽。
- 确认故障硬盘所在服务器的位置,避免拔除正常硬盘。
- 确认硬盘是否支持热插拔。若故障硬盘所在物理机上运行着较为重要的云主机,建议先将云主机热迁移至其它物理机,避免云主机因物理机更换硬盘期间异常重启而受到影响。
- 登录云平台,点击,进入物理机界面。选择故障硬盘所在的物理机,在该物理机详情页的关联资源子页面中,点击云主机,查看该物理机上运行的云主机。如图 64所示:
图 64. 查看云主机 
- 选中待迁移的云主机,点击,进入更改物理机界面,选择目标物理机进行迁移。Note:
- 建议勾选启用自动收敛模式以确保云主机热迁移成功。
- 为保证迁移任务效率,建议云主机并发迁移任务数量不超过三个。
如图 65所示:图 65. 更改物理机 
- 云主机迁移完成后,返回至物理机界面。选择故障硬盘所在的物理机,点击,等待物理机启用状态更新为进入维护模式。如图 66所示:
图 66. 物理机进入维护模式 
- SSH登录至待变更服务器系统,执行
sync && sync && poweroff命令,安全关闭待变更服务器。 - 待服务器完全停止后,更换服务器上的故障硬盘,插入新硬盘。
- 查看新硬盘状态,可参考以下两种方式查看:
- 重启服务器,并引导至操作系统,检查确认对应的管理网络和存储网络均可正常通信。执行
zs-show-network命令,检查节点网卡状态。 - 登录云平台,点击,进入物理机界面。选择进入维护模式的物理机,点击,启用物理机。等待物理机连接成功后,可将云主机迁移回该物理机。
物理机底层系统故障
故障场景
- 物理机grub.cfg文件丢失
- 物理机grub.cfg文件损坏
- 物理机MBR损坏
- 物理机进入紧急模式
- 物理机启动出现Attempted to kill init报错
修复方案
针对上述故障场景,可参考本文档Linux云主机系统修复具体章节,对物理机底层系统故障进行相应修复。












