原版Win11 PE的制作
Win11 PE的制作方法
Windows 11 PE的ISO镜像制作方法可以参考微软官方的制作方法。
坑爹的原版的copype.cmd可能有错误,编辑一下copype.cmd,新增加星号的那两行:
set WINPE_ARCH=%1
**set WinPERoot=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment**
set SOURCE=%WinPERoot%\%WINPE_ARCH%
**set OSCDImgRoot=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg**
set FWFILESROOT=%OSCDImgRoot%\..\..\%WINPE_ARCH%\Oscdimg
在MakeWinPEMedia.cmd里面把:
oscdimg -bootdata:%BOOTDATA% -u1 -udfver102 "%WORKINGDIR%\%TEMPL%" "%DEST%" >NUL
改成
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe" -bootdata:%BOOTDATA% -u1 -udfver102 "%WORKINGDIR%\%TEMPL%" "%DEST%" >NUL
后续安装到USB或者移动硬盘的时候需要从ISO文件里面提取出来下面几个东西:
- bootx64.efi:在ISO解压文件的\boot目录下,这个文件是UEFI第一个要找的文件,没有这个没办法引导PE,特别是如果使用其他引导器,则需要其他引导器指向bootx64.efi。
- BCD:在ISO解压文件的\EFI\Microsoft\Boot目录下,这个文件是bootx64.efi要寻找的,这个文件配置不好的话会出现cannot find image这个错误。
- boot.sdi:在ISO解压文件的\boot目录下,这个文件是BCD文件要寻找的。
- boot.wim:在ISO解压文件的\sources目录下,这个文件是BCD文件要寻找的。
下面,需要修改BCD文件,这里用到的工具是BOOTICEx64,其中需要修改的项已经在下图中标红,主要就是boot.sdi和boot.wim的位置信息要找对:
注意:BCD文件必须放在某个分区的/EFI/microsoft/boot/目录下,同时,前面提到的bootx64.efi也需要再这个分区的某个目录下(微软竟然把BCD文件的路径在bootx64.efi中写死了!!!)。
如果想让这个镜像能够加载ISO文件,需要在boot.wim文件里面添加用DISM挂载相应的powershell和Mount-DiskImage支持。步骤如下:
-
进入目录
cd "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment"
。 -
创建工作环境
copyme amd64 C:\WinPE_amd64
并挂载wim文件开始修改:Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /Index:1 /MountDir:"C:\WinPE_amd64\mount"
。 -
增加组件:
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFX.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureStartup.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PlatformID.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-DismCmdlets.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureBootCmdlets.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-StorageWMI.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WinReCfg.cab"
-
保存更改:
Dism /Unmount-Image /MountDir:C:\WinPE_amd64\mount /Commit
。 -
创建ISO文件:
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso
接下来,把boot.wim镜像替换成更新版本的就可以了。进入命令行,切换到X:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
,然后就可以用Mount-DiskImage了。