用户:DF4D3110/Test:InstallUnstagedSystem

Setup进行Unstaged版本安装系统

这些说明基于假定用户打开了提升为管理员权限的命令提示符窗口。

通过运行以下脚本,通过 diskpart 实用程序创建所需的虚拟磁盘映像;它们将在 C: 驱动器中名为 ARM8 的目录下创建。INSTALLMainOS 和 EFI 系统分区将分别挂载在驱动器号 F 和 P 下。

create vdisk file="C:\ARM8\Setup.vhd" maximum=4096 type=expandable
select vdisk file="C:\ARM8\Setup.vhd"
attach vdisk
convert gpt
create partition primary
format quick fs=fat32 label=INSTALL
assign letter=M
create vdisk file="C:\ARM8\Main.vhd" maximum=65536 type=expandable
select vdisk file="C:\ARM8\Main.vhd"
attach vdisk
convert gpt
create partition efi size=100
format quick fs=fat32 label=EFIESP
create partition primary
format quick fs=ntfs label=MainOS
assign letter=P
exit

根据用户所需的版本分支(free 或 checked),将安装介质的内容复制到 INSTALL 分区。从 Windows PEWindows 安装程序启动映像中提取所需的 EFI 启动管理器(\Windows\Boot\EFI\bootmgfw.efi)以 EFI\Boot\bootarm.efi 形式进行安装。

从计算机中弹出所有当前连接的虚拟磁盘,然后将以下脚本的内容粘贴到 QEMU 安装目录中的批处理文件上并运行,将 FWType 替换为 78xx 变体固件(适用于最高 Build 7898 的早期版本)或 multi 变体(适用于 Build 7898 到 Build 7996):[a]

set BL=".\fw\HARMONY.fd.FWType"
set MAIN="C:\ARM8\Main.vhd"
set SETUP="C:\ARM8\Setup.vhd"

qemu-system-arm ^
    -M tegra2-qemu -m 1G -accel tcg,thread=multi ^
    -bootloader %BL% ^
    -device usb-tablet,id=mouse -device usb-kbd,id=kbd ^
    -drive if=sd,index=1,format=vpc,file=%SETUP% ^
    -drive if=sd,index=0,file=%MAIN% ^
    -serial null -nic none ^
    -s ^

开始安装操作系统。必须直接从原始安装媒体调用安装程序,因为操作系统启动映像中的版本不起作用。以下命令可用于启动安装过程:

start D:\sources\setup.exe

完成安装程序的第一阶段后,立即删除安装介质的 SD 插槽,并使用以下批处理脚本配置启动到操作系统:

set BL=".\fw\HARMONY.fd.FWTYPE"
set MAIN="C:\ARM8\Main.vhd"

qemu-system-arm ^
    -M tegra2-qemu -m 1G -accel tcg,thread=multi ^
    -bootloader %BL% ^
    -device usb-tablet,id=mouse -device usb-kbd,id=kbd ^
    -drive if=sd,index=0,file=%MAIN% ^
    -serial null -nic none ^
    -s ^

继续通过正常方式安装操作系统。

  1. 如果使用 Tegra 2 WoA 分支的四核变体,必须修改批处理脚本中的机器配置处理 2 GB 的 RAM,且还必须使用经过修补后的 2g EFI 固件封装来启动虚拟机。multi2g 组合可用于立即启动到 Build 8020 到 81xx 后期的版本;如果未使用此组合,则需要对 SYSTEM 配置单元进行必要的注册表修改,以加载 Tegra 2 HAL 扩展 ID VEN_ra2.&DEV_0002HalExtTegra2.dll)和 VEN_ra2.&DEV_0003HalExtTegra2Dma.dll;在更高版本中为 HalExtTegraDma.dll)。

ARM64系统手动stage系统

此方案仅适用于具有ARM32仿真的系统(即10.0.25398.1以及之前但不低于10.0.16299.1000的系统,具体参考微软说明)

首先将下载的文件提取Client文件夹,根据需求使用chk或者fre进行构建

解压install.wim到单独的vhd中,并使用命令提示符使用 Dism /image:<windows文件夹所处路径> 以确定install的stack是否有效

在package文件夹中找到对应sku的xml无人自动应答文件,例如Professional.xml StarterE.xml

然后在命令提示符执行以下命令

Dism /image:<Windows文件夹路径> /Apply-Unattend:<xml文件路径>  ---执行stage
dism /image:<Windows文件夹路径> /Get-CurrentEdition ---确认当前stage版本

此方案stage的系统可能存在 \HKEY_LOCAL_MACHINE\SYSTEM\WPA 下缺失导致系统无法启动的问题,可参考WinPE或临近版本完整系统补全,到此所有操作结束

使用现成wim直接安装(推荐)

此方案仅适用于不愿意等而且不会处理stage

首先,我们需要准备现成wim准备执行dism手动释放

例如我们准备的wim为"D:\InstallStaged.wim"

通过运行以下脚本,通过 diskpart 实用程序创建所需的虚拟磁盘映像;它们将在 C: 驱动器中名为 ARM8 的目录下创建。MainOS 和 EFI 系统分区将分别挂载在驱动器号 F 和 P 下。

create vdisk file="C:\ARM8\Main.vhd" maximum=65536 type=expandable
select vdisk file="C:\ARM8\Main.vhd"
attach vdisk
convert gpt
create partition efi size=100
format quick fs=fat32 label=EFIESP
assign letter=F
create partition primary
format quick fs=ntfs label=MainOS
assign letter=P


执行完毕后通过dism对wim进行释放,然后通过bcdboot对EFI分区进行引导修复

Dism /apply-image /imagefile:"D:\InstallStage.wim" /index:1 /applidir:"P:\"
Bcdboot P:\Windows /s F: /f uefi


如果还需要跳过sysprep以及oobe直接进入admin账户,我们还需对SYSTEM注册表进行更改.,我们先挂载system到计算机\HKEY_LOCAL_MACHINE 下,挂载为SySARM ,对Setup 以下项目进行修改

CmdLine-清空
OOBEInProgress-数值改0
SetupPhase-数值改0
SetupSupported-数值改0
SystemSetupInProgress-数值改0
SetupType-数值改0


对admin进行手动解锁必须先完成上述操作后启动进入winlogon界面后强制关闭qemu再进行,否则将无法找到对应admin选项,挂载SAM到计算机\HKEY_LOCAL_MACHINE 下,挂载为SAMARM ,对SAM\Domains\Account\Users\000001F4 以下项目进行修改

F-将11改为10
或者是不跳sysprep将cmdline改为cmd.exe
在命令行执行net user administrator /active:yes
然后修改sysprep参数跳过sysprep

启动qemu,等待启动加载进入桌面