虚拟机内核引导修复

故障原因:业务反馈一台机器重启后无法登陆了,我在AWS平台基础云的VNC看了下,看到内核报错,原来业务做了内核升级操作。升级的内核并不适合这个系统。需要调整回原来的内核启动。

wKiom1ga_U2jiDRrAAE9uiWs-ZQ457.png-wh_50


1:确认是哪台机器,目前确认到故障机器的实例为:i-23C0F47E 。Virsh list查看是否是开机状态,如果是开机状态先关机。

[root@dom0_234_107 ~]# virsh list

 Id Name                 State

----------------------------------

  0 Domain-0             running

 10 i-10D7FDD5           no state

2:我们平台是用逻辑卷做的子机磁盘

[root@dom0_234_107 ~]# lvs

  LV    VG    Attr   LSize   Origin Snap%  Move Log Copy%  Convert

  i-10D7FDD5.extend.file vg_bc_local -wi-ao  89.01g                                      

  i-10D7FDD5.instance    vg_bc_local -wi-ao  18.00g                                      

  i-23C0F47E.extend.file vg_bc_local -wi-a- 140.01g                                      

  i-23C0F47E.instance    vg_bc_local -wi-a-  18.00g

3:kpartx 解开磁盘并挂载第一块盘,因为第一块为机器的/分区 ,挂载到/mnt

[root@dom0_234_107~]# kpartx -av /dev/mapper/vg_bc_local-i--23C0F47E.instance 

[root@dom0_234_107 ~]# mount /dev/mapper/vg_bc_local-i--23C0F47E.instance1 /mnt/

4:修改前做备份,养成良好的习惯

[root@dom0_234_107 ~]# cp /mnt/boot/grub/grub.conf /tmp/.

5:将不正确的引导dd删除掉,或者调整一下启动

[root@dom0_234_107 ~]# vim /mnt/boot/grub/grub.conf

由于内核和版本是公司定制的,就不给大家看了,修改成正确的引导即可。

6:修改好后将磁盘复原,启动虚拟机

[root@dom0_234_107 ~]# kpartx -dv /dev/mapper/vg_bc_local-i--23C0F47E.instance

[root@dom0_234_107 ~]# virsh create (启动脚本)

总结一下:

如果你是物理机遇到此类问题,进单用户调整

如果你的虚拟机磁盘使用硬盘分区做的,用losetup

操作很简单,需要根据自己架构的不同,变动下即可