Native VHD Boot通过Windows PE离线部署Windows到VHDX文件,需用diskpart创建动态VHDX、DISM部署带/Compact参数的系统镜像,并在PE中用bcdboot配置UEFI/BIOS启动项。

在没有实体机的情况下,通过Native VHD Boot技术直接在VHD/VHDX文件中安装并启动Windows系统,本质是借助Windows PE环境完成离线部署——你不需要先装好一台Windows主机,只要有一台能运行Windows ADK工具的电脑(可以是虚拟机),就能生成可启动的VHDX文件。
准备Windows PE启动环境
这一步不可跳过:原生VHD启动的BCD引导配置必须在无主系统环境下执行,否则bcdboot会错误绑定到当前宿主系统的启动分区。【必须使用Windows PE 10或更高版本,且需包含DISM、diskpart、bcdboot三个核心工具】
从Windows ADK(2023年10月后版本)中提取WinPE映像,用copype.cmd构建x64架构PE目录,再用DISM向挂载的WinPE映像中添加WinPE-StorageWMI和WinPE-NetFX可选组件——缺少前者会导致diskpart无法识别VHDX,缺少后者会使bcdboot报错“找不到指定模块”。
最后用oscdimg生成可启动ISO,刻录到U盘或挂载为虚拟光驱。
创建并初始化VHDX文件
方法一:用diskpart命令行(推荐)
在技术人员电脑(可为VMware Workstation中运行的Windows 11虚拟机)上以管理员身份打开CMD:
diskpart → create vdisk file=D:\win11.vhdx maximum=65536 type=dynamic → attach vdisk → create partition primary → format quick fs=ntfs label="WIN11" → assign letter=w → exit
注意:maximum单位是MB,65536即64GB,这是Windows 11最小可行容量;type必须为dynamic,fixed类型在后续DISM部署时易触发“磁盘空间不足”误报,即使实际空间充足。
方法二:磁盘管理器图形界面
右键“此电脑”→“管理”→“磁盘管理”→操作→“创建VHD”→路径设为D:\,名称填win11.vhdx,大小≥64GB,格式选VHDX,类型选“动态扩展”→确定后右键新磁盘→“初始化磁盘”→“新建简单卷”→分配盘符W:→格式化为NTFS。
将Windows映像部署到VHDX
第一步:挂载Windows 10/11 ISO镜像,假设盘符为E:
第二步:确认install.wim或install.esd存在。若为ESD格式,需先用DISM导出为WIM:DISM /Export-Image /SourceImageFile:E:\sources\install.esd /SourceIndex:1 /DestinationImageFile:D:\win11.wim /Compress:max
第三步:执行部署(关键参数不能错):
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
Dism /Apply-Image /ImageFile:D:\win11.wim /Index:1 /ApplyDir:W:\ /Compact /SkipWinRE
【/Compact参数必须加上,否则VHDX内系统无法被BCD识别为可启动目标;/SkipWinRE用于跳过恢复环境部署,避免因WinRE分区缺失导致bcdboot失败】
等待进度完成,W:\下应出现Windows、Program Files、Users等标准目录结构。
配置BCD启动项(在Windows PE中执行)
① 用已制作好的Windows PE U盘启动目标设备(或虚拟机)
② 进入PE后,打开命令提示符,依次执行:
diskpart → select vdisk file=d:\win11.vhdx → attach vdisk → exit
W:\Windows\System32\bcdboot W:\Windows /s S: /f UEFI
这一步会自动在S:盘(即ESP分区)写入bootmgfw.efi,并建立指向W:\Windows的启动条目。如果目标设备是Legacy BIOS模式,则最后参数改为/f BIOS,且需确保S:是活动主分区而非ESP。
③ 验证启动项是否写入成功:
bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum all | findstr "win11"
若返回含“win11”的描述字段,说明配置完成。










