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.
- Pacchetto Recovery.GPT-BCD
- Pacchetto Recovery.MBR-BCD
- Recovery.BCD.xml dichiara la disponibilità della partizione MMOS.
- Pacchetto Recovery.GPT-BcdEdit
- Pacchetto Recovery.MBR-BcdEdit
- Recovery.BcdEdit.cmd abilita la sequenza di ripristino e configura per l'avvio nella partizione MMOS.
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
epost_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'oggettoRecovery.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