1、黑屏的虚拟机作为被调试虚拟机,找一台正常的虚拟机作为调试虚拟机,在虚拟机上添加串口,将两个虚拟机互连起来,如下图所示;
2、黑屏虚拟机和调试虚拟机都需要关机,且需要确保虚拟机的运行位置固定在同一台主机;
3、将黑屏的虚拟机的调试模式开启(注意是黑屏虚拟机开启调试模式),这里分两种情况需要使用不同的方式开启调试模式;
情况一:虚拟机开机黑屏几分钟后正常使用,客户需要查开机黑屏的原因,那我们可以使用下图所示的方式开启调试模式,调试模式设置后需要点击应用,否则会导致开启失败;
情况二:虚拟机开机一直黑屏,无法进去虚拟机,这个时候我们无法手动开启调试模式,因此需要开机按F8进入调试模式。开启调试模式前,需要在虚拟机关机状态下调整BIOS启动时间,设置30秒左右即可,如下图所示;
设置好之后我们需要给虚拟机开机,按F8选择进入调试模式,如下图所示;
4、黑屏虚拟机(被调试虚拟机)开启调试模式后,正常的虚拟机(调试虚拟机)需要安装好windbg之后,如下所示选择通过串口的波特率115200连接到黑屏虚拟机进行调试(也可以使用快捷键Ctrl+K)连接;
5、连接后会看到如下图所示的提示,一直在连接但是就是连接不上,这个是正常的。因为我们还需要后台开启跟踪虚拟机的调试信息后才可以正常的调试;
后台开启跟踪的方式:
a、登录我们的VMP后台使用ps aux | grep 8560288906750(VMID)就可以看到这个虚拟机对应的进程号;
b、使用strace -p 2418(进程ID)即可开启跟踪,具体步骤如下图所示,需要找带有start的进程。
c、调试和被调试的两个虚拟机都需要开启跟踪,因此需要打开两个后台窗口执行相同的命令去跟踪,且不能中断连接,后台需要一直执行这个命令;
注意:两台虚拟机都需要是开机状态,否则将会导致开启跟踪失败,虚拟机可以在开机后,再后台执行调试命令;
6、看到如下图所示这个提示,就表示正常接管了,可以进行调试了;
7、加载正常之后需要确认虚拟机开机黑屏是卡在哪里了,如下图所示,看到虚拟机开机卡在smss.exe这个模块,这个时候可以尝试使用g这个命令,让他继续运行,若是会继续加载则说明不是这个模块导致,但是使用g之后还是卡主不动,这个时候就需要怀疑这个模块有问题导致的虚拟机启动卡主了;
注意:我们所有的命令都在这个输入框中输入;