文档:在qemu中安装Windows Core OS Build 16236

文件准备

以下是我们需要准备的文件:

注意事项

  • 一定不能使用任何来自Windows 10 Mobile的EFIESP分区文件,否则将会无限重启
  • QEMU的usb输入仿真在某些情况下可能会出现失效的情况.。解决这个情况需要切换到QEMU compatibility monitor (Ctrl+Alt+2) 并输入运行以下指令:
device_del kbd
device_add usb-kbd,id=kbd
  • 由于原始的Winload.efi数字签名损坏且arm32系统需要强制检查文件数字签名,在此对Winload.efi进行修改以绕过数字签名检查

系统部署

  • 使用diskpart对vhd进行创建并命名为CoreOS16236。接下来将会对EFIESP分区以及主系统分区分别分配盘符为F与G。

说明:maximum=后可以自定义磁盘大小(对于usb设备),如果采用sd设备启动则必须分配磁盘大小为16GB的整数倍

create vdisk file="C:\CoreOS16236\CoreOS16236.vhd" maximum=65536 type=expandable
select vdisk file="C:\CoreOS16236\CoreOS16236.vhd"
attach vdisk
convert gpt
create partition efi size=100
format quick fs=fat32
assign letter=F
create partition primary size=1400
format quick fs=ntfs
assign letter=G
  • 使用Dism手动释放MainOS.wim
dism /Apply-Image /ImageFile:C:\Inkman\MainOS.wim /Index:1 /ApplyDir:G:\
  • 使用下载的Winload.efi替换到G:\Windows\System32\Boot\Winload.efi
  • 回到Diskpart继续进行以下步骤:
create partition primary size=277
format quick fs=ntfs
assign mount=G:\OSData
create partition primary
format quick fs=ntfs
assign mount=G:\Data
  • 使用Dism手动释放Data.wim
dism /Apply-Image /ImageFile:C:\Inkman\Data.wim /Index:1 /ApplyDir:G:\Data
  • 将文件OSData.zip解压到G:\OSData
  • 将下载的Build 16237的EFIESP文件解压到F:\
  • 使用bootice将F:\EFI\Microsoft\Boot\BCD创建一个名为Windows CoreOS的Windows 7/8/8.1启动项,并设置为默认启动项,启用测试模式和禁用数字签名验证,保存关闭Bootice

假定我们的qemu主程序位于D:\QEMU v10.0.50-b8218f7 (clang64 dynamic build)\qemu-system-arm.exe,edk2存放于D:\EFISHELL\QEMU_EFI_ArmVirtQemu_ARM_RELEASE.fd ,虚拟磁盘位于C:\CoreOS16236\CoreOS16236.vhd

SD卡启动配置:

@echo off
cd /d %~dp0
"D:\QEMU v10.0.50-b8218f7 (clang64 dynamic build)\qemu-system-arm.exe" ^
-M virt,force_el3=true,force_psci=on,pci=false,highmem=false ^
-cpu cortex-a15 ^
-smp cores=2,threads=4 ^
--accel tcg,thread=multi ^
-m 2048 ^
-bios "D:\EFISHELL\QEMU_EFI_ArmVirtQemu_ARM_RELEASE.fd" ^
-device VGA ^
-device usb-kbd,id=kbd ^
-device usb-tablet,id=mice ^
-drive id=sys,if=none,file="C:\CoreOS16236\CoreOS16236.vhd" ^
-device sd-card,drive=sys ^
-device virtio-rng-pci ^
-device qemu-xhci ^
-rtc base=YYYY-MM-DD,clock=vm ^
-serial tcp::9090,server,nowait

接下来可运行bat以运行Windows CoreOS

此教程不适合于任何实体机设备进行,请勿使用本教程对实体机进行操作!