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 用于存储)

2GB 分区布局:EFIESP、MainOS 和 Data。MainOS 包括 Windows 和可用空间

分区 目录 MB 扇区 注解
EFIESP EFIESP 32 65536 EFIESP 大小
主 OS 主 OS 800 1638400 MainOS(估算)
主 OS 可用空间 128 262144 MainOS 预留空间
数据 数据 883 1808384 展开以填充可用空间
总计 1843 3774464

4GB 配置:(4096 MB,通常有 3600 MB 可用于存储)

4GB 分区布局:EFIESP、MainOS、CrashDump 和 Data。MainOS 包括 Windows 和可用空间

分区 目录 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>