Windows 10 IoT 핵심 이미지에 복구 메커니즘 추가
아래에 제공된 단계를 사용하여 WinPE를 안전한 OS로 사용하고, WIM 파일을 복구 파티션의 복구 SW로 사용하여 이미지에 복구 메커니즘을 추가할 수 있습니다.
가능한 메커니즘에 대한 자세한 내용은 Windows 10 IoT Core 복구를 참조하세요.
1단계: 복구 파티션을 사용하여 디바이스 레이아웃 업데이트
devicelayout.xml 파일에서 다음 특성을 사용하여 새 파티션 MMOS를 추가합니다.
- FAT32 파일 시스템
- 최소 2GB 크기(WinPE wim 및 복구 wim 저장을 위해)
- 파티션 유형
- GPT : {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
- MBR : 0x07
아래에 제공된 GPT 디바이스용 샘플 xml 코드 조각(섹터 크기가 512인 것으로 가정)
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}</Type>
</Partition>
아래에 제공된 MBR 디바이스용 샘플 xml 코드 조각
<Partition>
<Name>MMOS</Name>
<FileSystem>FAT32</FileSystem>
<TotalSectors>4096000</TotalSectors>
<Type>0x07</Type>
</Partition>
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에는 모든 아키텍처(x86/amd64 및 arm)에 대한 Windows 10 사전 설치 환경이 포함되어 있습니다. Windows 10 ADK 릴리스 1809의 경우 ADK용 Windows PE 추가 기능을 설치해야 합니다. 이 WinPE에서 다음을 추가합니다.
디바이스에서 복구 프로세스에 사용되는 복구 스크립트
startnet.cmd
,startnet_recovery.cmd
: 템플릿 디렉터리의 미리 정의된 스크립트(templates\recovery 참조).- 구성 파일: 디바이스 레이아웃에 따라 생성된 파일(
Build\<arch>\<bspname>\recovery
에 저장).
복구 사용자 지정 파일(선택 사항)
RecoveryGUI.exe
: 디바이스에서 복구 셸 프롬프트를 숨기는 간단한 선택적 UI입니다. recoveryGUI.exe는 대상 CPU용으로 빌드된 C++ 애플리케이션이거나 애플리케이션의 .NET Framework 4 Windows일 수 있습니다. WinPE 이미지에 .NET Framework 4 기능을 추가하려면 Newwinpe.cmd를 수정해야 합니다.pre_recovery_hook.cmd
및post_recovery_hook.cmd
: 복구 프로세스 전후에 작업을 추가하는 선택적 후크입니다.- 이러한 파일은
Source-<arch>\bsp\<bspname>\WinPEExt\recovery
폴더에 배치하세요.
BSP 드라이버(선택 사항)
- 디바이스 플랫폼의 스토리지에 부팅/쓰기를 위해 winpe 이미지에 bsp 드라이버를 추가해야 할 수 있습니다.
- 필요한 드라이버를
Source-<arch>\bsp\<bspname>\WinPEExt\drivers
폴더에 배치합니다.
IoTCorePShell에서 New-IoTWindowsImage 명령을 사용하여 위의 콘텐츠가 포함된 bsp용 WinPE 이미지를 만들 수 있습니다.
New-IoTWindowsImage <product> <config>
(or) newwinpe <product> <config>
이 스크립트는 Build\<arch>\<product>\<config>\winpe.wim
에서 winpe를 출력합니다.
4단계: 기능 매니페스트 파일 및 OEMInputFile 업데이트
다음 변경 내용으로 <bspname>FM.xml을 업데이트합니다(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>
다음 변경 내용으로 <productname>/TestOEMInput.xml(및 RetailOEMInput.xml)을 업데이트합니다(복구 샘플 참조).
<bspname>FM.xml에 정의된 대로 SOC 이름을 지정합니다.
<SOC>QC8016-R</SOC>
OEM 섹션에 RECOVERY_BCD 기능을 포함합니다.
<OEM> ... <Feature>RECOVERY_BCD</Feature> ... </OEM>
Recovery.BcdEdit.cmd
를 호출하도록oemcustomization.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
복구 파일이 생성됩니다.