有一台很久之前创建的Windows VM, 使用OVMF UEFI作为引导, 但是主盘是通过IDE挂载的, 而且因为系统没有安装Virtio驱动所以直接改为SCSI挂载会报错 INACCESSABLE_BOOT_DEVICE. 换成SATA也是一样的.
一番搜索后找到了一个靠谱的答案:
- 关闭VM
- 挂载Windows安装镜像, 这里我用的是 Win10 22H2 2024.07 Business Editon
- 挂载Virtio驱动镜像
- 设置Boot device为刚刚挂载的两个镜像, 取消对其他磁盘的勾选. (这里遇到点问题, virtio的镜像启动优先级必须比windows iso的高, 否则进入windows安装之后搜索不到驱动盘)
- 启动VM, 进入windows安装界面, 按Shift+F10打开控制台
- 使用
dir C:\
,dir D:\
之类的命令确定当前系统盘和Virtio驱动盘. - 假设系统盘是 C:, 驱动盘是 E:, 通过如下命令安装驱动:
dism /image:C:\ /add-driver /driver:E:\vioscsi\w10\amd64
- 命令执行完成后通过命令关机:
wpeutil shutdown -s
- 删除镜像挂载, 把原来的ide磁盘先卸载再通过SCSI的方式挂载
- 启动VM, 可以正常引导进入系统了.
整个流程走下来之后VM顺利更换掉了IDE磁盘. 同时我还升级了Machine的定义, 目前暂时没看到什么异常.
参考
Change disk type (IDE/SATA to SCSI) for existing Windows machine