Loading... 在我使用EVE-NG模拟器加载一个Win10镜像时,出现了无法找到引导错误. 查阅网上资料后发现,是KVM对于GPT硬盘镜像存在兼容问题. 将GPT硬盘转换为MBR格式,并修复引导即可. # 复杂解决思路如下: ## 1. Vmware Workstation新建一个100M的vmdk硬盘文件 - 将`DiskGenius`及`win10 MBR引导修复软件`放入vmdk中 (若PE已自带,则不需要改硬盘) ## 2. vmdk转为qcow2 ```shell qemu-img convert -f vmdk 源win10.vmdk -O qcow2 目的win10.qcow2 #转换win10硬盘文件 qemu-img convert -f vmdk 源软件包.vmdk -O qcow2 目的软件包.qcow2 #转换`1`中新建的vmdk ``` ## 3.将文件放入EVE-ng中 - 需准备一个PE系统的ISO镜像 ```shell mkdir /opt/unetlab/addons/qemu/win-win10 mv 目的win10.qcow2 /opt/unetlab/addons/qemu/win-win10/hda.qcow2 mv 目的软件包.qcow2 /opt/unetlab/addons/qemu/win-win10/hdb.qcow2 mv pe.iso /opt/unetlab/addons/qemu/win-win10/cdrom.qcow2 ``` ## 4.EVE-NG启动该虚拟机 ## 5.在PE中,将GPT转换为MBR - 将win10硬盘转换为MBR格式 - 删除efi分区 - 修复引导(此处应为bios引导,而非uefi) ## 6.测试 - 重启该虚拟机,检测win10是否正常启动 ## 7.提交本次修改 - 修改完成后,需要提交本次修改到基础qcow2,否则以后每次新建该模板,都需要进行上面的步骤 - 关闭基于需修改模板的所有设备 - 查看EVE-NG用户POD - 查看Lab UUID - 查看已新建虚拟机的设备id ```shell cd /opt/unetlab/tmp/`用户POD`/`Lab UUID`/`设备ID` /opt/qemu/bin/qemu-img commit hda.qcow2 ``` - 若提交失败,可能是有设备 ```shell cd /opt/unetlab/tmp/`用户POD`/`Lab UUID`/`设备ID` qemu-img convert -c -O qcow2 hda.qcow2 /tmp/hda.qcow2 #将qcow2导出到/tmp目录 mv /tmp/hda.qcow2 /opt/unetlab/addons/qemu/win-win10/hda.qcow2 #覆盖模板硬盘文件 ``` ## 8.删除无用硬盘文件和cdrom ```shell rm -f /opt/unetlab/addons/qemu/win-win10/hdb.qcow2 rm -f /opt/unetlab/addons/qemu/win-win10/cdrom.qcow2 ``` # 简单解决方案 ## 1.在Vmware Workstation中将硬盘转换为MBR格式并修复引导 ## 2.转换为qcow2,导入EVE-ng中即可 > 部分引用 > http://blog.chinaunix.net/uid-16856461-id-4596159.html > https://networkingpills.wordpress.com/2017/01/06/modifying-base-images-with-snapshots-on-unetlabeve-ng-alpha/ Last modification:December 6, 2021 © Allow specification reprint Like 0 If you think my article is useful to you, please feel free to appreciate