给qemu虚机更换(Windows PE)光盘

1. 背景

        qemu虚机里运行windows。如果遇到虚机windows启动故障,甚至连安全模式也故障时,可以尝试更换另一个光驱里的光盘为pe光盘。

2. 步骤

2.1. 找出VDI虚机所在的计算节点

ssh登录之,virsh list获得虚机id,例如

391   12556983-95e6-4669-9406-dc63bbfb2495   running

这里的12556983-95e6-4669-9406-dc63bbfb2495就是虚机id

2.2. 找出虚机的qemu-system命令行

执行ps -ef|grep qemu-system|grep [虚机id]

2.3. 识别虚机有没有光驱,哪张盘是gt的iso

在qemu-system命令行中搜索cdrom或ide-cd,例如可以看到

-drive file=/opt/vm_images/isos/windows/x86-64/guesttool.iso,if=none,format=raw,id=ua-101e8e6c-f751-4393-8baa-aca6f64f5c33

-device ide-cd,bus=ide.0,unit=0,drive=ua-101e8e6c-f751-4393-8baa-aca6f64f5c33,id=ua-101e8e6c-f751-4393-8baa-aca6f64f5c33,bootindex=-1

-drive file=/opt/php/cm/cm-iso/CDROM.iso,if=none,format=raw,id=ua-42743837-dc15-485e-85db-965a7a816f6b

-device ide-cd,bus=ide.1,unit=0,drive=ua-42743837-dc15-485e-85db-965a7a816f6b,id=ua-42743837-dc15-485e-85db-965a7a816f6b,bootindex=-1

这表示虚机有两个光驱,一个放光盘/opt/php/cm/cm-iso/CDROM.iso,另一个放光盘/opt/vm_images/isos/windows/x86-64/guesttool-vdi.iso,这张是gt的iso。

2.3. 识别虚机的引导方式,下载PE光盘

在qemu-system命令行中搜索OVMF,如果有则说明是uefi启动,否则是legacy启动。

若为uefi启动,则上传uefi类的pe.iso到云主机。

若为legacy启动,则上传legacy类的pe.iso到云主机。

2.4. 给虚机更换PE光盘

选择非gt盘的那个光驱,此例中是ua-42743837-dc15-485e-85db-965a7a816f6b

执行:

vmmctl send 3  虚机id 36 0 '{ "uuid": "虚机id","deviceID":"光驱id","filename":"/X/Y/Z/pe.iso"}'

没有报错则说明光盘更换成功。

2.5. 重启虚机,改从PE盘启动

可使用virsh reset 虚机id等方法来重启虚机。

重启后马上连按esc,可进入bios界面,届时可选择从光驱启动。

2.6. 安装vioscsi磁盘控制器驱动

进入PE系统的windows桌面后,打开diskmgmt.msc。并未看到原先c,d盘,因为他们所属的硬盘挂载在scsi控制器之下。

我们须手工安装vioscsi驱动。打开devmgmt.msc,对scsi设备更新驱动,驱动源选择gt光盘的根目录。

随后可在diskmgmt.msc里看到原先的c,d盘。

你可能感兴趣的:(windows,虚拟化)