Adicionar um mecanismo de recuperação à imagem de núcleo de IoT do Windows 10
Você pode adicionar um mecanismo de recuperação à sua imagem com o WinPE como um sistema operacional seguro e arquivos WIM como SW de recuperação da partição de recuperação, usando as etapas fornecidas abaixo.
Consulte Windows 10 IoT Core Recovery para obter detalhes sobre os possíveis mecanismos.
Etapa 1: atualizar o layout do dispositivo com partição de recuperação
No arquivo devicelayout.xml, você adiciona um novo MMOS de partição com os atributos a seguir
- Sistema de arquivos FAT32
- Tamanho de 2 GB de atleast ( para acomodar wim WinPE e wims de recuperação)
- Tipo de partição
- GPT: {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
- MBR: 0x07
Snippet de amostra xml especificado abaixo para um dispositivo GPT (pressupõe um tamanho de setor de 512)
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
</Partition>
Consulte também Layout do dispositivo QCDB410C
Snippet de exemplo xml dado abaixo para um dispositivo MBR
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>0x07</Type>
</Partition>
Confira também Layout do dispositivo de recuperação MBR de 8 GB
Etapa 2: Definir configurações de BCD
Nesta etapa, a partição MMOS recém-adicionada é definida como uma partição inicializável nas configurações de BCD e a sequência de recuperação está habilitada e configurada para inicializar nessa partição. Essas configurações estão disponíveis nos pacotes abaixo, que você pode usar prontamente. Selecione pacotes GPT ou MBR com base em seu dispositivo.
- Pacote Recovery.GPT-BCD
- Pacote Recovery.MBR-BCD
- Recovery.BCD.xml declara a disponibilidade da partição MMOS.
- Pacote Recovery.GPT-BcdEdit
- Pacote Recovery.MBR-BcdEdit
- Recovery.BcdEdit.cmd habilita a sequência de recuperação e configura para inicializar na partição MMOS.
Etapa 3: Preparar imagem do WinPE
O Windows 10 ADK Versão 1709 contém o Ambiente de Pré-Instalação do Windows 10 para todas as arquiteturas (x86/amd64 e arm). Para o Windows 10 ADK Versão 1809, você precisará instalar o complemento do Windows PE para ADK. Neste WinPE, você adiciona o seguinte
Scripts de recuperação usados para o processo de recuperação no dispositivo
startnet.cmd
,startnet_recovery.cmd
: scripts predefinidos do diretório de modelos (consulte templates\recovery).- Arquivos de configuração: arquivos gerados com base no layout do dispositivo, colocados em
Build\<arch>\<bspname>\recovery
.
Arquivos de personalizações de recuperação (opcional)
RecoveryGUI.exe
: interface do usuário simples opcional para ocultar o prompt do shell de recuperação no dispositivo. O recoveryGUI.exe pode ser um aplicativo C++ criado para a CPU de destino ou um windows .NET Framework 4 do aplicativo. Newwinpe.cmd precisará ser modificado para adicionar .NET Framework 4 recursos à imagem winPE.pre_recovery_hook.cmd
epost_recovery_hook.cmd
: ganchos opcionais para adicionar ações adicionais antes e depois do processo de recuperação.- Coloque esses arquivos na
Source-<arch>\bsp\<bspname>\WinPEExt\recovery
pasta.
Drivers BSP (opcional)
- Talvez seja necessário adicionar drivers bsp à imagem winpe para inicialização/gravação no armazenamento, na plataforma do dispositivo.
- Coloque os drivers necessários na
Source-<arch>\bsp\<bspname>\WinPEExt\drivers
pasta.
Você pode criar a imagem WinPE para o bsp com o conteúdo acima usando o comando New-IoTWindowsImage no IoTCorePShell
New-IoTWindowsImage <product> <config>
(or) newwinpe <product> <config>
Esse script produzirá o winpe em Build\<arch>\<product>\<config>\winpe.wim
.
Etapa 4: Atualizar arquivo de manifesto do recurso e OEMInputFile
Atualize o <FM.xmlde bspname> com as seguintes alterações (consulte QCDB410CFM.xml exemplo)
- Inclua o novo pacote de layout do dispositivo, especificando o novo nome SOC, QC8016-R no exemplo abaixo.
<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>
Atualize o <productname>/TestOEMInput.xml (e RetailOEMInput.xml) com as seguintes alterações (consulte Exemplo de recuperação)
Especifique o nome SOC conforme definido no <bspname>FM.xml
<SOC>QC8016-R</SOC>
Incluir o recurso RECOVERY_BCD na seção OEM
<OEM> ... <Feature>RECOVERY_BCD</Feature> ... </OEM>
Atualizar o
oemcustomization.cmd
para invocar oRecovery.BcdEdit.cmd
REM The below should be called on every boot if exist C:\RecoveryConfig\Recovery.BcdEdit.cmd ( call C:\RecoveryConfig\Recovery.BcdEdit.cmd )
Etapa 5: criar a imagem de recuperação 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>
Isso gerará o arquivo de recuperação como Flash_Recovery.ffu