问题描述
虚机kernel panic无法起来,无法查看任何日志,找不到有效的定位和分析,grub被隐藏,无法手动修改grub
解决思路
- 找到到虚机挂在的盘,attach到其他机器上
- 挂载attach上的盘,修改grub.cfg等其他文件,可以进入系统;
- 设置cmdline记录日志
具体操作
- 创建attach的盘
()[root@node-21 /]# virsh dumpxml instance-0049bb12
<disk type='network' device='disk'> <driver name='qemu' type='raw' cache='none' discard='unmap'/> <auth username='admin'> <secret type='ceph' uuid='457eb676-33da-42ec-9a8c-9293d545c337'/> </auth> <source protocol='rbd' name='compute/46bcdfd1-71ca-4013-a529-d006465a4c14_disk'> <host name='192.168.30.3' port='6789'/> <host name='192.168.30.5' port='6789'/> <host name='192.168.30.6' port='6789'/> </source> <backingStore/> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/> </disk>
新建一个vdd.xml 文件,其中需要修改
<target dev='vda' bus='virtio'/>
--><target dev='vde' bus='virtio'/>
删除 - 挂载attach的盘,mount系统盘
[zjp@se199 ~]$ virsh attach-device 9 1.xml --live Device attached successfully
挂在系统盘
[zjp@se199 ~]$ mount -t xfs /dev/vdb2 /mnt
- 设置cmdline记录日志
设置kernel的启动日志,查看log记录到/var/lib/nova/instances/75dd9f90-b5be-4678-80bd-10020448573b/console.log
console==ttyS0 console=tty0
其他调试方法,例如设置rd.break=pre-mount