IoT 设备布局
在修改 IoT 核心板支持包 (BSP) 时,可以通过修改 DeviceLayout 文件来更改驱动器分区和布局。
分区布局
IoT 核心支持 UEFI (GPT) 和旧版 BIOS (MBR) 分区布局。 大多数 IoT 核心设备都使用 UEFI 和 GPT 样式的分区,不过,Raspberry Pi 2 使用 MBR 样式的分区。 若要详细了解 UEFI,请参阅启动和 UEFI以及 Windows 和 GPT 常见问题解答。
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 核心需要 3 个必需的分区(EFIESP、MainOS 和 Data)。 可以选择包括其他分区,例如,CrashDump 分区。 大小按扇区计算,默认扇区为 512 字节。
受支持的属性:
EFI:固定大小的分区,包含启动管理器和启动配置数据库。 MBR/GPT 样式的设备都需要此分区。
名称:
EFIESP
类型:对于 MBR,请使用
0x0C
。 对于 GPT,请使用{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
FileSystem:
FAT
TotalSectors:
65536
(= 32MB)可启动:
true
RequiredToFlash:
true
MainOS:OS 和 OEM 预加载的应用。 此分区需要有最小可用扇区数 (MinFreeSectors) 来完成常规操作。
名称:
MainOS
类型:对于 MBR,请使用
0x07
。 对于 GPT,请使用{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
FileSystem:
NTFS
MinFreeSectors:
1048576
(= 512MB)ByteAlignment:
0x800000
ClusterSize:
0x1000
(建议使用此大小,以使分区大小保持可管理。)
Data:用户数据分区、用户注册表配置单元、应用、应用数据。 此分区通常设置为使用设备上的剩余存储空间。 (UseAllSpace:True)
名称:
Data
类型:对于 MBR,请使用
0x07
。 对于 GPT,请使用{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
FileSystem:
NTFS
UseAllSpace:
true
ByteAlignment:
0x800000
ClusterSize:
0x4000
(这个分区往往会比较大,所以推荐 0x4000,0x1000 也可以。)
故障转储分区:可选的分区,用于从故障转储收集数据。 在使用时,是按总扇区数给出大小。
名称:
CrashDump
类型:对于 MBR,请使用
0x07
。 对于 GPT,请使用{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
FileSystem:
FAT32
TotalSectors:
1228800
(= 600 MB)
Required fields
这些字段是必需的,IoTCore 支持以下值:
版本:
IoTUAP
SectorSize:
512
ChunkSize:
128
DefaultPartitionByteAlignment:
0x200000
存储大小评估
下图提供了对两个配置的概述。
2GB 配置(2048 MB,通常有 1843 MB 用于存储)
分区 | 目录 | MB | 扇区 | 注解 |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | EFIESP 大小 |
主 OS | 主 OS | 800 | 1638400 | MainOS(估算) |
主 OS | 可用空间 | 128 | 262144 | MainOS 预留空间 |
数据 | 数据 | 883 | 1808384 | 展开以填充可用空间 |
总计 | 1843 | 3774464 |
4GB 配置:(4096 MB,通常有 3600 MB 可用于存储)
分区 | 目录 | 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>