虚拟机内核引导修复
故障原因:业务反馈一台机器重启后无法登陆了,我在AWS平台基础云的VNC看了下,看到内核报错,原来业务做了内核升级操作。升级的内核并不适合这个系统。需要调整回原来的内核启动。
1:确认是哪台机器,目前确认到故障机器的实例为:i-23C0F47E 。Virsh list查看是否是开机状态,如果是开机状态先关机。
[[email protected]_234_107 ~]# virsh list
Id Name State
----------------------------------
0 Domain-0 running
10 i-10D7FDD5 no state
2:我们平台是用逻辑卷做的子机磁盘
[[email protected]_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
[[email protected]_234_107~]# kpartx -av /dev/mapper/vg_bc_local-i--23C0F47E.instance
[[email protected]_234_107 ~]# mount /dev/mapper/vg_bc_local-i--23C0F47E.instance1 /mnt/
4:修改前做备份,养成良好的习惯
[[email protected]_234_107 ~]# cp /mnt/boot/grub/grub.conf /tmp/.
5:将不正确的引导dd删除掉,或者调整一下启动
[[email protected]_234_107 ~]# vim /mnt/boot/grub/grub.conf
由于内核和版本是公司定制的,就不给大家看了,修改成正确的引导即可。
6:修改好后将磁盘复原,启动虚拟机
[[email protected]_234_107 ~]# kpartx -dv /dev/mapper/vg_bc_local-i--23C0F47E.instance
[[email protected]_234_107 ~]# virsh create (启动脚本)
总结一下:
如果你是物理机遇到此类问题,进单用户调整
如果你的虚拟机磁盘使用硬盘分区做的,用losetup
操作很简单,需要根据自己架构的不同,变动下即可