Condividi tramite


Aggiungere un meccanismo di ripristino all'immagine core Windows 10 IoT

È possibile aggiungere un meccanismo di ripristino all'immagine con WinPE come file del sistema operativo sicuro e WIM come sw di ripristino dalla partizione di ripristino, seguendo la procedura descritta di seguito.

Per informazioni dettagliate sui possibili meccanismi, vedere Windows 10 IoT Core Ripristino.

Passaggio 1: Aggiornare il layout del dispositivo con la partizione di ripristino

Nel file devicelayout.xml aggiungere una nuova partizione MMOS con gli attributi seguenti

  • File system FAT32
  • Dimensioni atleast di 2 GB ( per supportare Wim WinPE e wim di ripristino)
  • Tipo di partizione
    • GPT: {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
    • MBR : 0x07

Frammento xml di esempio indicato di seguito per un dispositivo GPT (presuppone una dimensione del settore pari a 512)

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

Vedere anche LAYOUT dispositivo QCDB410C

Frammento xml di esempio riportato di seguito per un dispositivo MBR

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

Vedere anche Layout del dispositivo di ripristino MBR 8 GB

Passaggio 2: Configurare le impostazioni BCD

In questo passaggio la partizione MMOS appena aggiunta viene definita come partizione di avvio nelle impostazioni BCD e la sequenza di ripristino è abilitata e configurata per l'avvio in questa partizione. Queste impostazioni sono disponibili nei pacchetti indicati di seguito che è possibile usare facilmente. Selezionare pacchetti GPT o MBR in base al dispositivo.

Passaggio 3: Preparare l'immagine WinPE

Windows 10 ADK Release 1709 contiene l'ambiente di preinstallazione Windows 10 per tutte le architetture (x86/amd64 e arm). Per Windows 10 ADK Release 1809, è necessario installare il componente aggiuntivo Windows PE per ADK. In questo WinPE aggiungi quanto segue

  • Script di ripristino usati per il processo di ripristino nel dispositivo

    • startnet.cmd, startnet_recovery.cmd: script predefiniti dalla directory templates (vedere templates\recovery).
    • file di configurazione: file generati in base al layout del dispositivo, posizionati in Build\<arch>\<bspname>\recovery.
  • File di personalizzazioni di ripristino (facoltativo)

    • RecoveryGUI.exe : interfaccia utente semplice facoltativa per nascondere la richiesta della shell di ripristino nel dispositivo. Il recoveryGUI.exe può essere un'applicazione C++ compilata per la CPU di destinazione o un'applicazione .NET Framework 4 da un'applicazione. Newwinpe.cmd dovrà essere modificato per aggiungere funzionalità di .NET Framework 4 all'immagine WinPE.
    • pre_recovery_hook.cmd e post_recovery_hook.cmd: hook facoltativi per aggiungere altre azioni prima e dopo il processo di ripristino.
    • Posizionare questi file nella Source-<arch>\bsp\<bspname>\WinPEExt\recovery cartella .
  • Driver BSP (facoltativo)

    • Potrebbe essere necessario aggiungere driver bsp all'immagine winpe per l'avvio/scrittura nella risorsa di archiviazione, nella piattaforma del dispositivo.
    • Inserire i driver necessari nella Source-<arch>\bsp\<bspname>\WinPEExt\drivers cartella .

È possibile creare l'immagine WinPE per il bsp con il contenuto precedente usando il comando New-IoTWindowsImage in IoTCorePShell

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

Questo script restituirà il winpe in Build\<arch>\<product>\<config>\winpe.wim.

Passaggio 4: Aggiornare il file manifesto della funzionalità e OEMInputFile

  • Aggiornare il <FM.xmlbspname> con le modifiche seguenti (vedere QCDB410CFM.xml esempio)

    • Includere il nuovo pacchetto di layout del dispositivo, specificando il nuovo nome SOC, QC8016-R nell'esempio seguente.
    <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>    
    
  • Aggiornare productname<>/TestOEMInput.xml (e RetailOEMInput.xml) con le modifiche seguenti (vedere Esempio di ripristino)

    • Specificare il nome SOC come definito nel <FM.xml bspname>

      <SOC>QC8016-R</SOC>
      
    • Includere la funzionalità RECOVERY_BCD nella sezione OEM

      <OEM>
      ...
      <Feature>RECOVERY_BCD</Feature>
      ...
      </OEM>
      
  • Aggiornare per oemcustomization.cmd richiamare l'oggetto 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
    )
    

Passaggio 5: Compilare l'immagine di ripristino usando 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>

Verrà generato il file di ripristino come Flash_Recovery.ffu