Добавление механизма восстановления в образ Windows 10 IoT Core
Вы можете добавить в образ механизм восстановления с помощью WinPE в качестве безопасной ОС и WIM-файлов в качестве восстановления sw из раздела восстановления, выполнив приведенные ниже действия.
Дополнительные сведения о возможных механизмах см. в разделе Восстановление Windows 10 IoT Базовая.
Шаг 1. Обновление макета устройства с помощью раздела восстановления
В файле devicelayout.xml добавьте новый раздел MMOS со следующими атрибутами.
- Файловая система FAT32
- Размер Atleast 2 ГБ ( для размещения wim WinPE и wims восстановления)
- Тип раздела
- GPT: {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
- MBR : 0x07
Ниже приведен пример фрагмента XML для устройства GPT (предполагается, что размер сектора 512)
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
</Partition>
См. также макет устройства QCDB410C.
Ниже приведен пример xml-фрагмента для устройства MBR
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>0x07</Type>
</Partition>
См. также макет устройства восстановления MBR 8 ГБ.
Шаг 2. Настройка параметров BCD
На этом шаге добавленный раздел MMOS определяется как загрузочный раздел в параметрах BCD, а последовательность восстановления включена и настроена для загрузки в этот раздел. Эти параметры доступны в приведенных ниже пакетах, которые можно легко использовать. Выберите пакеты GPT или MBR в зависимости от устройства.
- Пакет Recovery.GPT-BCD
- Пакет Recovery.MBR-BCD
- Recovery.BCD.xml объявляет доступность раздела MMOS.
- Пакет Recovery.GPT-BcdEdit
- Пакет Recovery.MBR-BcdEdit
- Recovery.BcdEdit.cmd включает последовательность восстановления и настраивает загрузку в раздел MMOS.
Шаг 3. Подготовка образа WinPE
Windows 10 ADK, выпуск 1709 содержит среду предварительной установки Windows 10 для всех архитектур (x86/amd64 и arm). Для Windows 10 ADK выпуска 1809 необходимо установить надстройку Windows PE для ADK. В этом winPE вы добавляете следующее:
Скрипты восстановления, используемые для процесса восстановления на устройстве
startnet.cmd
,startnet_recovery.cmd
: предопределенные скрипты из каталога templates (см. templates \recovery).- Файлы конфигурации: созданные файлы на основе макета устройства, размещенные по адресу
Build\<arch>\<bspname>\recovery
.
Файлы настроек восстановления (необязательно)
RecoveryGUI.exe
: необязательный простой пользовательский интерфейс для скрытия запроса оболочки восстановления на устройстве. recoveryGUI.exe может быть приложениеМ C++, созданным для целевого ЦП, или платформа .NET Framework 4 Windows из приложения. Newwinpe.cmd необходимо изменить, чтобы добавить платформа .NET Framework 4 возможностей в образ WinPE.pre_recovery_hook.cmd
иpost_recovery_hook.cmd
: необязательные перехватчики для добавления дополнительных действий до и после процесса восстановления.- Поместите эти файлы в
Source-<arch>\bsp\<bspname>\WinPEExt\recovery
папку.
Драйверы BSP (необязательно)
- Возможно, потребуется добавить драйверы bsp в образ winpe для загрузки и записи в хранилище на платформе устройства.
- Поместите необходимые драйверы в
Source-<arch>\bsp\<bspname>\WinPEExt\drivers
папку .
Вы можете создать образ WinPE для bsp с указанным выше содержимым с помощью команды New-IoTWindowsImage в IoTCorePShell.
New-IoTWindowsImage <product> <config>
(or) newwinpe <product> <config>
Этот скрипт выдаст winpe в Build\<arch>\<product>\<config>\winpe.wim
.
Шаг 4. Обновление файла манифеста компонента и OEMInputFile
<ОбновитеFM.xmlbspname> со следующими изменениями (см . примерQCDB410CFM.xml).
- Включите новый пакет макета устройства, указав новое имя SOC QC8016-R в примере ниже.
<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>
Обновите имя> продукта или TestOEMInput.xml(и RetailOEMInput.xml), указав следующие изменения (см. пример< восстановления).
Укажите имя SOC, определенное <вFM.xml bspname>
<SOC>QC8016-R</SOC>
Включение функции RECOVERY_BCD в раздел OEM
<OEM> ... <Feature>RECOVERY_BCD</Feature> ... </OEM>
Обновите для
oemcustomization.cmd
вызова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 )
Шаг 5. Создание образа восстановления с помощью Командой 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>
При этом будет создан файл восстановления как Flash_Recovery.ffu