Freigeben über


Hinzufügen eines Wiederherstellungsmechanismus zu Ihrem Windows 10 IoT Core-Image

Sie können Ihrem Image einen Wiederherstellungsmechanismus mit WinPE als sicheres Betriebssystem und WIM-Dateien als Wiederherstellungs-SW von der Wiederherstellungspartition hinzufügen, indem Sie die folgenden Schritte ausführen.

Einzelheiten zu den möglichen Mechanismen finden Sie unter Windows 10 IoT Core-Wiederherstellung.

Schritt 1: Aktualisieren Sie das Gerätelayout mit der Wiederherstellungspartition

In der Datei devicelayout.xml fügen Sie eine neue Partition MMOS mit den folgenden Attributen hinzu

  • FAT32 filesystem
  • Mindestens 2 GB Größe (um WinPE-WIM und Wiederherstellungs-WIMs aufzunehmen)
  • Partitionstyp
    • GPT : {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
    • MBR : 0x07

Beispiel für ein XML-Snippet unten für ein GPT-Gerät (unter Annahme einer Sektorgröße von 512)

<Partition>
    <Name>MMOS</Name>
    <FileSystem>FAT32</FileSystem>
    <TotalSectors>4096000</TotalSectors>
    <Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
</Partition>

Siehe auch Gerätelayout QCDB410C

Beispiel für ein XML-Snippet unten für ein MBR-Gerät

<Partition>
    <Name>MMOS</Name>
    <FileSystem>FAT32</FileSystem>
    <TotalSectors>4096000</TotalSectors>
    <Type>0x07</Type>
</Partition>

Siehe auch Layout des MBR 8GB-Wiederherstellungsgeräts

Schritt 2: Konfigurieren Sie die BCD-Einstellungen

In diesem Schritt wird die neu hinzugefügte MMOS-Partition in den BCD-Einstellungen als bootfähige Partition definiert und die Wiederherstellungssequenz wird aktiviert und konfiguriert, um in diese Partition zu booten. Diese Einstellungen sind in den unten angegebenen Paketen verfügbar, die Sie problemlos verwenden können. Wählen Sie basierend auf Ihrem Gerät GPT- oder MBR-Pakete aus.

Schritt 3: Bereiten Sie das WinPE-Image vor

Windows 10 ADK Release 1709 enthält die Windows 10 Preinstall Environment für alle Architekturen (x86/amd64 und arm). Für Windows 10 ADK Release 1809 müssen Sie das Windows PE-Add-On für ADK installieren. In diesem WinPE fügen Sie Folgendes hinzu

  • Wiederherstellungsskripte, die für den Wiederherstellungsprozess auf dem Gerät verwendet werden

    • startnet.cmd, startnet_recovery.cmd: vordefinierte Skripte aus dem Template-Verzeichnis (siehe templates\recovery).
    • config files : Generierte Dateien basierend auf dem Gerätelayout, platziert unter Build\<arch>\<bspname>\recovery.
  • Wiederherstellungsanpassungsdateien (optional)

    • RecoveryGUI.exe : Optionale einfache Benutzeroberfläche zum Ausblenden der Wiederherstellungs-Shell-Eingabeaufforderung auf dem Gerät. Die recoveryGUI.exe kann eine C++-Anwendung sein, die für die Ziel-CPU erstellt wurde, oder eine .NET Framework 4-Windows-Anwendung. Newwinpe.cmd muss geändert werden, um dem WinPE-Image .NET Framework 4-Funktionen hinzuzufügen.
    • pre_recovery_hook.cmd und post_recovery_hook.cmd: optionale Hooks zum Hinzufügen zusätzlicher Aktionen vor und nach dem Wiederherstellungsprozess.
    • Legen Sie diese Dateien im Source-<arch>\bsp\<bspname>\WinPEExt\recovery Ordner ab.
  • BSP-Treiber (optional)

    • Möglicherweise müssen Sie bsp-Treiber zum winpe-Image hinzufügen, um auf Ihrer Geräteplattform zu booten/in den Speicher zu schreiben.
    • Platzieren Sie die erforderlichen Treiber im Source-<arch>\bsp\<bspname>\WinPEExt\drivers Ordner.

Sie können das WinPE-Image für das BSP mit den obigen Inhalten mithilfe des Befehls New-IoTWindowsImage in IoTCorePShell erstellen

New-IoTWindowsImage <product> <config>
(or) newwinpe <product> <config>

Dieses Skript gibt das winpe bei aus Build\<arch>\<product>\<config>\winpe.wim.

Schritt 4: Aktualisieren Sie die Feature-Manifestdatei und die OEMInputFile

  • Aktualisieren Sie <bspname >FM.xml mit den folgenden Änderungen (siehe Beispiel QCDB410CFM.xml)

    • Schließen Sie das neue Gerätelayoutpaket ein und geben Sie im Beispiel unten den neuen SOC-Namen QC8016-R an.
    <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>    
    
  • Aktualisieren Sie den <Produktnamen>/TestOEMInput.xml (und RetailOEMInput.xml) mit den folgenden Änderungen (siehe Wiederherstellungsbeispiel)

    • Geben Sie den SOC-Namen wie in <bspname> FM.xml definiert an

      <SOC>QC8016-R</SOC>
      
    • Fügen Sie die RECOVERY_BCD-Funktion in den OEM-Abschnitt ein

      <OEM>
      ...
      <Feature>RECOVERY_BCD</Feature>
      ...
      </OEM>
      
  • Aktualisieren Sie die oemcustomization.cmd, um die aufzurufen 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
    )
    

Schritt 5: Erstellen Sie das Wiederherstellungsabbild mit 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>

Dadurch wird die Wiederherstellungsdatei als generiert Flash_Recovery.ffu