查看“文档:在qemu中安装Windows RT后期版本”的源代码
←
文档:在qemu中安装Windows RT后期版本
跳转到导航
跳转到搜索
因为以下原因,你没有权限 编辑此页:
你请求的操作仅限属于此用户组的用户执行:
用户
你可以查看和复制此页面的源代码。
=== 文件准备 === 以下是我们需要准备的文件: *[https://github.com/lzw29107/qemu/actions/runs/15659431654 专门为Windows RT进行修改的QEMU v10.1.0] *[https://github.com/lzw29107/edk2/actions/runs/15761093103 专门为Windows RT进行修改的edk2固件] *一个虚拟磁盘镜像(用于存储操作系统以便进行模拟) *一个Windows RT镜像用于安装系统(要求版本必须高于或者等于6.2.8318.0.fbl_core1_soc.120409-2355) *高版本Windows的ESP分区文件(除BCD外)(以[https://github.com/DF4D3110/DF4D3110.github.io/blob/main/15063efi.zip 15063的文件]的文件为例) === 注意事项 === [[File:WindowsRT-HalFailure.png|thumb|由于hal.dll导致的启动失败]] *由于在Windows RT Build 8439到Build 9354之间对hal.dll的修改导致改阶段之间的系统完全无法使用原有<code>hal.dll</code>进行启动,需要替换为[https://github.com/DF4D3110/DF4D3110.github.io/blob/main/hal.dll Windows RT Build 8437中的版本]。 *QEMU的usb输入仿真在某些情况下可能会出现失效的情况.。解决这个情况需要切换到QEMU compatibility monitor ({{key press|Ctrl|Alt|2}}) 并输入运行以下指令: <pre> device_del kbd device_add usb-kbd,id=kbd </pre> *注意:以下是从工程机泄露的系统需要手动对所有OEM驱动进行删除,否则将会因为驱动不兼容导致系统启动失败: <pre> 6.2.8318.0.fbl_core1_soc.120409-2355 6.2.8375.0.winmain_win8rc.120504-1900 6.2.8419.0.winmain.120521-1835 6.2.8437.0.winmain.120618-1325 6.2.8437.1.fbl_dev_dp8.120621-2300 6.2.8520.0.fbl_eeap.120722-1632 - zh-cn以及en-us版本 6.3.9354.0.winmain.130301-1710 6.3.9468.0.winblue_rtm.130725-1203 6.3.9471.0.fbl_partner_out30.130726-2004 6.3.9477.0.fbl_partner_out31.130803-0736 6.3.9477.0.fbl_partner_out21.130803-1037 6.3.9478.0.winblue_rtm.130804-1505 6.3.9600.16596.winblues14_gdr_lean.140112-2038 </pre> *由于未知原因无法通过原有系统的<code>bootarm.efi</code>进行引导,我们需要换为高版本Windows的文件以进行引导 ===系统部署=== *使用<code>diskpart</code>对vhd进行创建并命名为<code>ARM8</code>。接下来将会对EFIESP分区以及主系统分区分别分配盘符为F与P。 说明:<code>maximum=</code>后可以自定义磁盘大小(对于usb设备),如果采用sd设备启动则必须分配磁盘大小为16GB的整数倍 <pre> create vdisk file="C:\ARM8\HDD.vhd" maximum=65536 type=expandable select vdisk file="C:\ARM8\HDD.vhd" attach vdisk convert gpt create partition efi size=100 format quick fs=fat32 assign letter=F create partition primary format quick fs=ntfs assign letter=P exit </pre> *手动安装系统并为系统修复引导到<code>F:</code>: <pre> DISM /Apply-Image /ImageFile:"X:\path\to\install.wim" /ApplyDir:P:\ /Index:1 bcdboot "P:\Windows" /s F: /f UEFI </pre> *修复引导完毕后将压缩包内的文件全部替换到<code>F:\</code>下 *弹出虚拟磁盘并创建bat脚本到qemu安装目录内,将以下内容复制到bat内,并对 <code>YYYY-MM-DD</code> 进行修改以避免Windows的时间炸弹被触发。 假定我们的qemu主程序位于<code>D:\QEMU v10.0.50-b8218f7 (clang64 dynamic build)\qemu-system-arm.exe</code>,edk2存放于<code>D:\EFISHELL\QEMU_EFI_ArmVirtQemu_ARM_RELEASE.fd</code> ,虚拟磁盘位于<code>C:\ARM8\HDD.vhd</code> 1.SD卡启动配置: <syntaxhighlight lang="batch"> @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:\ARM8\HDD.vhd" ^ -device sd-card,drive=sys ^ -device qemu-xhci ^ -rtc base=YYYY-MM-DD,clock=vm ^ -serial tcp::9090,server,nowait </syntaxhighlight> 2.USB启动配置: <syntaxhighlight lang="batch"> @echo off cd /d %~dp0 "D:\QEMU v10.0.50-b8218f7 (clang64 dynamic build)\qemu-system-arm" ^ -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=USB0,if=none,file="C:\ARM8\HDD.vhd" ^ -device usb-storage,drive=USB0 ^ -device qemu-xhci ^ -rtc base=YYYY-MM-DD,clock=vm ^ -serial tcp::9090,server,nowait </syntaxhighlight> 接下来可运行bat以继续安装Windows === sysprep以及OOBE跳过(可选) === 出于某些系统会出现无法继续第二阶段安装,我们可以直接通过修改注册表进行部署: 挂载配置单元SYSTEM与SAM到本地计算机 假设分别挂载为 <code>计算机\HKEY_LOCAL_MACHINE\RT-SYS</code> <code>计算机\HKEY_LOCAL_MACHINE\RT-SAM</code> 分别创建注册表项以进行下一步操作: <syntaxhighlight lang="batch"> Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\RT-SYS\Setup] "SystemSetupInProgress"=dword:00000000 "SetupPhase"=dword:00000000 "CmdLine"="" "SetupType"=dword:00000000 "OOBEInProgress"=dword:00000000 </syntaxhighlight>对于administrator用户我们可以在对应路径及注册表项将11改为10,或者导入以下注册表项:<syntaxhighlight lang="batch"> Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\RT-SAM\SAM\Domains\Account\Users\000001F4] "F"=hex:02,00,01,00,00,00,00,00,38,7f,6a,e2,35,6a,cd,01,00,00,00,00,00,00,00,\ 00,58,3c,23,69,37,6a,cd,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ f4,01,00,00,01,02,00,00,10,02,00,00,00,00,00,00,00,00,01,00,01,00,00,00,00,\ 00,00,00,00,00,00,00 </syntaxhighlight> 分别导入后卸载配置单元,随后再卸载vhd,并启动bat 由于QEMU模拟的性能问题系统运行效率较低,需要耐心进行等待 此教程适用于Windows RT Build 8318以及以上的版本
此页使用的模板:
模板:Key press
(
查看源代码
)
返回
文档:在qemu中安装Windows RT后期版本
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
批量上传文件
WinStory 门户
深色模式
工具
链入页面
相关更改
特殊页面
页面信息
获取短URL