共用方式為


將復原機制新增至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 套件。

步驟 3:準備 WinPE 映射

Windows 10 ADK 版本 1709 包含所有架構Windows 10預先安裝環境, (x86/amd64 和 arm) 。 針對 Windows 10 ADK 版本 1809,您必須安裝適用于 ADK 的 Windows PE 附加元件。 在此 WinPE 中,您會新增下列專案

  • 用於裝置上復原程式的復原腳本

    • startnet.cmdstartnet_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.cmdpost_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