Partilhar via


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.

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 e post_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 o 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
    )
    

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