Adición de un mecanismo de recuperación a la imagen principal de Windows 10 IoT
Puedes agregar un mecanismo de recuperación a tu imagen con WinPE como un sistema operativo seguro y archivos WIM como Recuperación SW desde la partición de recuperación, siguiendo los pasos que se indican a continuación.
Consulte Windows 10 IoT Core Recuperación para obtener más información sobre los posibles mecanismos.
Paso 1: Actualizar el diseño del dispositivo con la partición de recuperación
En el archivo devicelayout.xml, agregue una nueva partición MMOS con los siguientes atributos.
- Sistema de archivos FAT32
- Tamaño de 2 GB de al menos ( para acomodar wim winPE y wims de recuperación)
- Tipo de partición
- GPT: {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
- MBR: 0x07
Fragmento xml de ejemplo que se muestra a continuación para un dispositivo GPT (supone un tamaño de sector de 512)
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
</Partition>
Consulta también diseño de dispositivo QCDB410C
Fragmento xml de ejemplo que se proporciona a continuación para un dispositivo MBR
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>0x07</Type>
</Partition>
Consulta también Diseño de dispositivo de recuperación de MBR 8 GB
Paso 2: Configurar las opciones de BCD
En este paso, la partición MMOS recién agregada se define como una partición de arranque en la configuración de BCD y la secuencia de recuperación está habilitada y configurada para arrancar en esta partición. Esta configuración está disponible en los siguientes paquetes dados que puede usar fácilmente. Seleccione paquetes GPT o MBR en función del dispositivo.
- Paquete Recovery.GPT-BCD
- Paquete Recovery.MBR-BCD
- Recovery.BCD.xml declara la disponibilidad de la partición MMOS.
- Paquete Recovery.GPT-BcdEdit
- Paquete Recovery.MBR-BcdEdit
- Recovery.BcdEdit.cmd habilita la secuencia de recuperación y configura para arrancar en la partición MMOS.
Paso 3: Preparación de la imagen de WinPE
La versión 1709 de Windows 10 ADK contiene el entorno de preinstalación de Windows 10 para todas las arquitecturas (x86/amd64 y arm). Para La versión 1809 de Windows 10 ADK, tendrás que instalar el complemento de Windows PE para ADK. En este WinPE, agrega lo siguiente:
Scripts de recuperación usados para el proceso de recuperación en el dispositivo
startnet.cmd
,startnet_recovery.cmd
: scripts predefinidos del directorio templates (consulte templates\recovery).- archivos de configuración: archivos generados basados en el diseño del dispositivo, colocados en
Build\<arch>\<bspname>\recovery
.
Archivos de personalizaciones de recuperación (opcional)
RecoveryGUI.exe
: interfaz de usuario sencilla opcional para ocultar el símbolo del sistema del shell de recuperación en el dispositivo. El recoveryGUI.exe puede ser una aplicación de C++ compilada para la CPU de destino o una aplicación .NET Framework 4 Windows desde la aplicación. Newwinpe.cmd tendrá que modificarse para agregar funcionalidades de .NET Framework 4 a la imagen de WinPE.pre_recovery_hook.cmd
ypost_recovery_hook.cmd
: enlaces opcionales para agregar acciones adicionales antes y después del proceso de recuperación.- Coloque estos archivos en la
Source-<arch>\bsp\<bspname>\WinPEExt\recovery
carpeta .
Controladores BSP (opcional)
- Es posible que tenga que agregar controladores bsp a la imagen winpe para arrancar o escribir en el almacenamiento, en la plataforma del dispositivo.
- Coloque los controladores necesarios en la
Source-<arch>\bsp\<bspname>\WinPEExt\drivers
carpeta .
Puede crear la imagen de WinPE para bsp con el contenido anterior mediante el comando New-IoTWindowsImage en IoTCorePShell .
New-IoTWindowsImage <product> <config>
(or) newwinpe <product> <config>
Este script generará el winpe en Build\<arch>\<product>\<config>\winpe.wim
.
Paso 4: Actualizar el archivo de manifiesto de características y OEMInputFile
Actualice el <FM.xmlbspname> con los siguientes cambios (consulte QCDB410CFM.xml ejemplo)
- Incluya el nuevo paquete de diseño de dispositivo, especificando el nuevo nombre de SOC, QC8016-R en el ejemplo siguiente.
<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>
Actualice productname<>/TestOEMInput.xml (y RetailOEMInput.xml) con los siguientes cambios (consulte el ejemplo de recuperación).
Especifique el nombre de SOC tal y como se define en el <FM.xml bspname>
<SOC>QC8016-R</SOC>
Incluir la característica RECOVERY_BCD en la sección OEM
<OEM> ... <Feature>RECOVERY_BCD</Feature> ... </OEM>
Actualice para
oemcustomization.cmd
invocar a .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 )
Paso 5: Creación de la imagen de recuperación mediante 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>
Esto generará el archivo de recuperación como Flash_Recovery.ffu