IoT 디바이스 레이아웃
IoT Core BSP(보드 지원 패키지)를 수정할 때 DeviceLayout 파일을 수정하여 드라이브 파티션 및 레이아웃을 변경할 수 있습니다.
파티션 레이아웃
IoT Core는 UEFI(GPT) 및 레거시 BIOS(MBR) 파티션 레이아웃을 지원합니다. Raspberry Pi 2는 MBR 스타일 파티션을 사용하지만 대부분의 IoT Core 디바이스는 UEFI 및 GPT 스타일 파티션을 사용합니다. UEFI에 대해 자세히 알아보려면 부팅 및 UEFI와 Windows 및 GPT FAQ를 참조하세요.
ADK 추가 기능에 포함된 샘플 파티션 레이아웃:
- \iot-adk-addonkit\Common\Packages\DeviceLayout.GPT4GB\devicelayout.xml
- \iot-adk-addonkit\Common\Packages\DeviceLayout.GPT4GB-R\devicelayout.xml
- \iot-adk-addonkit\Common\Packages\DeviceLayout.MBR4GB\devicelayout.xml
- \iot-adk-addonkit\Common\Packages\DeviceLayout.MBR4GB-R\devicelayout.xml
이러한 파일은 세 가지 구성 요소 파일을 사용합니다.
- DeviceLayout.<Name>.pkg.xml: 패키지 파일로, DeviceLayout 및 OEMDevicePlatform.xml의 패키지를 만듭니다.
- DeviceLayout.xml: 디바이스 파티션 레이아웃을 지정합니다.
- OEMDevicePlatform.xml: 디바이스에서 사용할 수 있는 여유 블록의 양과 압축할 파티션을 지정합니다.
파티션 레이아웃(DeviceLayout.xml)
IoT Core에는 3개의 필수 파티션(EFIESP, MainOS 및 Data)이 필요합니다. 필요에 따라 CrashDump 파티션과 같은 다른 파티션을 포함할 수 있습니다. 크기는 섹터 단위로 계산되고 기본 섹터는 512바이트입니다.
지원되는 속성:
EFI: 부팅 관리자, 부팅 구성 데이터베이스를 사용하는 고정 크기 파티션입니다. 이 파티션은 MBR/GPT 스타일의 디바이스 모두에 필요합니다.
이름:
EFIESP
Type: MBR의 경우
0x0C
를 사용합니다. GPT의 경우{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
를 사용합니다.FileSystem:
FAT
TotalSectors:
65536
(= 32MB)Bootable:
true
RequiredToFlash:
true
MainOS: OS 및 OEM에서 미리 로드한 앱. 이 파티션이 정상적으로 작동하려면 최소 개수의 여유 섹터(MinFreeSectors)가 필요합니다.
이름:
MainOS
Type: MBR의 경우
0x07
를 사용합니다. GPT의 경우{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
를 사용합니다.FileSystem:
NTFS
MinFreeSectors:
1048576
(= 512MB)ByteAlignment:
0x800000
ClusterSize:
0x1000
(파티션 크기를 관리할 수 있도록 이 크기를 사용하는 것이 좋습니다.)
Data: 사용자 데이터 파티션, 사용자 레지스트리 하이브, 앱, 앱 데이터. 이 파티션은 일반적으로 디바이스의 나머지 저장소 공간을 사용하도록 설정됩니다. (UseAllSpace: True)
이름:
Data
Type: MBR의 경우
0x07
를 사용합니다. GPT의 경우{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
를 사용합니다.FileSystem:
NTFS
UseAllSpace:
true
ByteAlignment:
0x800000
ClusterSize:
0x4000
(이 파티션은 더 큰 경향이 있으므로 0x4000이 권장됩니다. 0x1000도 괜찮습니다.)
크래시 덤프 파티션: 크래시 덤프에서 데이터를 수집하는 데 사용되는 선택적 파티션입니다. 사용할 경우 총 섹터에 크기가 지정됩니다.
이름:
CrashDump
Type: MBR의 경우
0x07
를 사용합니다. GPT의 경우{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
를 사용합니다.FileSystem:
FAT32
TotalSectors:
1228800
(= 600 MB)
Required fields
이러한 필드는 필수이며, IoTCore에는 다음 값이 지원됩니다.
Version:
IoTUAP
SectorSize:
512
ChunkSize:
128
DefaultPartitionByteAlignment:
0x200000
스토리지 크기 추정치
다음 다이어그램에서는 두 가지 구성에 대한 개요를 제공합니다.
2GB 구성(2048MB, 일반적으로 스토리지용 1843MB 포함)
파티션 | 콘텐츠 | MB | 섹터 | 설명 |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | EFIESP 크기 |
기본 OS | 기본 OS | 800 | 1638400 | MainOS(추정치) |
기본 OS | 사용 가능한 공간 | 128 | 262144 | MainOS 헤드룸 |
데이터 | 데이터 | 883 | 1808384 | 확장하여 여유 공간 채우기 |
합계 | 1843 | 3774464 |
4GB 구성:(4096MB, 일반적으로 스토리지에 3600MB 사용 가능)
파티션 | 콘텐츠 | MB | 섹터 | 설명 |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | EFIESP 크기 |
기본 OS | 기본 OS | 800 | 1638400 | MainOS(추정치) |
기본 OS | 사용 가능한 공간 | 512 | 1048576 | MainOS 헤드룸 |
CrashDump | 크래시 덤프 | 600 | 1228800 | CrashDump 크기 |
데이터 | 데이터 | 1656 | 3391488 | 확장하여 여유 공간 채우기 |
합계 | 3600 | 7372800 |
디바이스 플랫폼 레이아웃(OEMDevicePlatform.xml)
OEMDevicePlatform.xml은 디바이스에서 사용할 수 있는 여유 블록의 양과 압축할 파티션을 지정합니다. 예제:
<?xml version="1.0" encoding="utf-8"?>
<OEMDevicePlatform xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
<MinSectorCount>7372800</MinSectorCount>
<DevicePlatformIDs>
<ID>*</ID>
</DevicePlatformIDs>
<CompressedPartitions>
<Name>MainOS</Name>
</CompressedPartitions>
</OEMDevicePlatform>