前言
Mac(Apple Silicon)通过qemu运行Windows10虚拟机
准备工作
下载编译QEMU时需要的依赖
1
| brew install pkg-config glib pixman ninja
|
下载QEMU补丁


下载edk2

下载制作系统虚拟机的工具Rufus
编译QEMU
下载项目
1 2
| git clone https://github.com/qemu/qemu.git cd qemu
|
打补丁
~/Downloads/hvf-Implement-Apple-Silicon-Support.patch
:针对于 Apple Silicon 的 QEMU 补丁
1
| git apply ~/Downloads/hvf-Implement-Apple-Silicon-Support.patch
|
编译项目
1 2
| ./configure --cpu=aarch64 --target-list=aarch64-softmmu make
|
添加edk2包
- 将edk2包内的所有文件复制到编译后的QEMU根目录
edk2.git-aarch64-0-20220719.209.gf0064ac3af.EOL.no.nore.updates.noarch.rpm
:edk2包
1 2
| tar -xvf ~/Downloads/edk2.git-aarch64-0-20220719.209.gf0064ac3af.EOL.no.nore.updates.noarch.rpm cp ./usr/share/edk2.git/aarch64/* ./build
|
完成编译
- 得到的build目录下的所有文件就是编译后的QEMU程序
制作Windows虚拟机文件(需要在Windows下完成)
- 在Windows上创建一个VHDX的虚拟磁盘,将Windows系统的ISO系统镜像通过工具安装到VHDX虚拟磁盘中,作为Windows虚拟机文件
创建空白VHDX虚拟磁盘
- 右键
此电脑
->管理
->磁盘管理
->操作->
创建VHD`

- 指定VHDX文件的存放位置及文件名->指定虚拟硬盘大小->选择
VHDX
格式->选择动态扩展
->确定
如果选择了动态扩展
,虚拟硬盘大小可以随意指定

使用Rufus安装Windows操作系统
- 在
设备
指定虚拟磁盘->引导类型选择
指定系统镜像文件->镜像选择
选择Windows To Go
->开始




完成VHDX制作
- 将制作好的VHDX文件移动到
qemu/build
目录下
启动虚拟机
<vhdx>
:vhdx完整文件名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| DYLD_LIBRARY_PATH=. \ ./qemu-system-aarch64 \ -M virt.highmem=off \ -accel hvf \ -m 8G \ -smp 4 \ -cpu max \ -device ramfb \ -serial stdio \ -drive file=<vhdx>,if=none,id=NVME1 \ -device nvme,drive=NVME1,serial=nvme-1 \ -device nec-usb-xhci \ -device usb-kbd \ -device usb-tablet \ -device intel-hda -device hda-duplex \ -drive file=vars-template-pflash.raw,if=pflash,index=1 \ -bios QEMU_EFI.fd
|
初始化
- 首次启动,需要在启动时按下
Esc
键,跳出BIOS选项->选择Device Manager
按Return
键(回车键)

- 选择
OVMF Platform Configuration
按Return
键

- 将
Change Preferred
改为1024x768


完成
后记
- 失败了,报错:
qemu-system-aarch64: No machine specified, and there is no default
参考文献
哔哩哔哩——黑貓的野望
MacRumors——1958llakin