將復原機制新增至Windows 10 IoT 核心映射
您可以使用下列步驟,將復原機制新增至映射,使用 WinPE 作為安全 OS 和 WIM 檔案 作為復原 SW 從復原磁碟分割。
如需可能機制的詳細資料,請參閱Windows 10 IoT 核心版復原。
步驟 1:使用復原磁碟分割更新裝置配置
在devicelayout.xml檔案中,您會使用下列屬性新增分割區 MMOS
- FAT32 檔案系統
- 至少 2GB 大小 (,以容納 WinPE wim 和復原 wim)
- 磁碟分割類型
- GPT : {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
- MBR:0x07
以下針對 GPT 裝置提供的範例 xml 程式碼片段 (假設磁區大小為 512)
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
</Partition>
另請參閱 QCDB410C 裝置配置
MBR 裝置下面提供的 XML 程式碼片段範例
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>0x07</Type>
</Partition>
另請參閱 MBR 8GB 復原裝置配置
步驟 2:設定 BCD 設定
在此步驟中,新新增的 MMOS 磁碟分割會定義為 BCD 設定中的可開機磁碟分割,並啟用復原順序並設定為開機至此分割區。 下列提供的套件中提供這些設定,可供您立即使用。 根據您的裝置選取 GPT 或 MBR 套件。
- Recovery.GPT-BCD 套件
- Recovery.MBR-BCD 套件
- Recovery.BCD.xml宣告 MMOS 磁碟分割可用性。
- Recovery.GPT-BcdEdit 套件
- Recovery.MBR-BcdEdit 套件
- Recovery.BcdEdit.cmd 可啟用復原順序,並設定以開機進入 MMOS 磁碟分割。
步驟 3:準備 WinPE 映射
Windows 10 ADK 版本 1709 包含所有架構Windows 10預先安裝環境, (x86/amd64 和 arm) 。 針對 Windows 10 ADK 版本 1809,您必須安裝適用于 ADK 的 Windows PE 附加元件。 在此 WinPE 中,您會新增下列專案
用於裝置上復原程式的復原腳本
startnet.cmd
,startnet_recovery.cmd
:從範本目錄預先定義的腳本, (請參閱 templates\recovery) 。- 組態檔:根據裝置配置產生的檔案,置於
Build\<arch>\<bspname>\recovery
。
(選擇性) 復原自訂檔案
RecoveryGUI.exe
:選擇性的簡單 UI,可隱藏裝置上的修復殼層提示字元。 recoveryGUI.exe可以是針對目標 CPU 或應用程式.NET Framework 4 Windows 所建置的 C++ 應用程式。 Newwinpe.cmd 必須修改,才能將 .NET Framework 4 個功能新增至 WinPE 映射。pre_recovery_hook.cmd
和post_recovery_hook.cmd
:選擇性勾點,以在復原程式前後新增其他動作。- 將這些檔案放在
Source-<arch>\bsp\<bspname>\WinPEExt\recovery
資料夾中。
BSP 驅動程式 (選擇性)
- 您可能需要在裝置平臺上將 bsp 驅動程式新增至 winpe 映射,以開機/寫入儲存體。
- 將必要的驅動程式放在
Source-<arch>\bsp\<bspname>\WinPEExt\drivers
資料夾中。
您可以在 IoTCorePShell 中使用 New-IoTWindowsImage 命令,為 bsp 建立具有上述內容的 WinPE 映射
New-IoTWindowsImage <product> <config>
(or) newwinpe <product> <config>
此腳本會在 輸出 winpe。 Build\<arch>\<product>\<config>\winpe.wim
步驟 4:更新功能資訊清單檔案和 OEMInputFile
使用< 下列變更更新 bspname >FM.xml, (請參閱QCDB410CFM.xml範例)
- 在下列範例中包含新的裝置配置套件,並指定新的 SOC 名稱 QC8016-R 。
<DeviceLayoutPackages> <PackageFile SOC="QC8016-R" Path="%PKGBLD_DIR%" Name="%OEM_NAME%.QCDB410C.DeviceLayout-R.cab" /> <PackageFile SOC="QC8016" Path="%BSPPKG_DIR%" Name="Qualcomm.QC8916.DeviceLayout.cab" /> </DeviceLayoutPackages>
使用< 下列變更更新 productname > /TestOEMInput.xml (和 RetailOEMInput.xml) (,請參閱復原範例)
指定 bspname >FM.xml中所 < 定義的 SOC 名稱
<SOC>QC8016-R</SOC>
在 OEM 區段中包含RECOVERY_BCD功能
<OEM> ... <Feature>RECOVERY_BCD</Feature> ... </OEM>
更新 以
oemcustomization.cmd
叫用Recovery.BcdEdit.cmd
REM The below should be called on every boot if exist C:\RecoveryConfig\Recovery.BcdEdit.cmd ( call C:\RecoveryConfig\Recovery.BcdEdit.cmd )
步驟 5:使用New-IoTRecoveryImage建置復原映射
# Build all packages
New-IoTCabPackage All
(or) buildpkg All
# Build the product image
New-IoTFFUImage <product> <config>
(or) buildimage <product> <config>
# Build the recovery image
New-IoTRecoveryImage <product> <config>
(or) buildrecovery <product> <config>
這會產生復原檔案作為 Flash_Recovery.ffu