文档:在qemu中安装Windows Core OS Build 16236
文件准备
以下是我们需要准备的文件:
- 专门为Windows RT进行修改的QEMU v10.1.0
- 专门为Windows RT进行修改的edk2固件
- 一个虚拟磁盘镜像(用于存储操作系统以便进行模拟)
- Windows Core OS(Build 10.0.16236.1003.rs_onecore_webplat_stage_dev3.170707-1700)的相关文件,存放在
C:\Inkman下 - 高版本Windows 10 for IoT Core的ESP分区文件(以10.0.16237.1001.rs_prerelease.170701-0549 EFI分区的文件为例)
- 已经对数字签名检查修改过的winload.efi
注意事项
- 一定不能使用任何来自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
此教程不适合于任何实体机设备进行,请勿使用本教程对实体机进行操作!