Поделиться через


Макет устройства Интернета вещей

При изменении пакета поддержки платы IoT Core (BSP) можно изменить разделы и макет диска, изменив файлы DeviceLayout.

Разметка раздела

IoT Core поддерживает макеты разделов UEFI (GPT) и устаревших версий BIOS (MBR). Большинство устройств IoT Core используют разделы в стиле 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 Core требуется 3 обязательных раздела (EFIESP, MainOS и Data). При необходимости можно включить другие секции, например раздел CrashDump. Размеры вычисляются в секторах, сектор по умолчанию — 512 байт.

Поддерживаемые свойства:

EFI: раздел фиксированного размера с диспетчером загрузки, базой данных конфигурации загрузки. Этот раздел необходим для устройств в стиле MBR и GPT.

  • Имя: EFIESP

  • Тип: для MBR используйте 0x0C. Для GPT используйте {c12a7328-f81f-11d2-ba4b-00a0c93ec93b}

  • Файловая система: FAT

  • TotalSectors: 65536 (= 32 МБ)

  • Загрузочный: true

  • RequiredToFlash: true

MainOS: предварительно загруженные приложения ОС и OEM. Для нормальной работы этой секции требуется минимальное количество свободных секторов (MinFreeSectors).

  • Имя: MainOS

  • Тип: для MBR используйте 0x07. Для GPT используйте {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}

  • Файловая система: NTFS

  • MinFreeSectors: 1048576 (= 512 МБ)

  • ByteAlignment: 0x800000

  • ClusterSize: 0x1000 (Этот размер рекомендуется, чтобы размер секции был управляемым.)

Данные: раздел данных пользователя, кусты реестра пользователей, приложения, данные приложений. Этот раздел обычно использует оставшуюся часть дискового пространства на устройстве. (UseAllSpace: True)

  • Имя: Data

  • Тип: для MBR используйте 0x07. Для GPT используйте {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}

  • Файловая система: NTFS

  • UseAllSpace: true

  • ByteAlignment: 0x800000

  • ClusterSize: 0x4000 (Этот раздел, как правило, больше, поэтому рекомендуется 0x4000. 0x1000 также в порядке.)

Раздел аварийного дампа: необязательный раздел, используемый для сбора данных из аварийных дампов. При использовании размер задается в общих секторах.

  • Имя: CrashDump

  • Тип: для MBR используйте 0x07. Для GPT используйте {ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}

  • Файловая система: FAT32

  • TotalSectors: 1228800 (= 600 МБ)

Обязательные поля

Эти поля являются обязательными. Для IoTCore поддерживаются следующие значения:

  • Версия: IoTUAP

  • SectorSize: 512

  • ChunkSize: 128

  • DefaultPartitionByteAlignment: 0x200000

Оценки размера хранилища

На следующих схемах представлен обзор двух конфигураций.

Конфигурация 2 ГБ (2048 МБ, обычно имеет 1843 МБ для хранилища)

Макет секции объемом 2 ГБ: EFIESP, MainOS и Data. MainOS включает Windows и свободное пространство

Секция Содержимое МБ Секторов Комментарии
EFIESP EFIESP 32 65536 Размер EFIESP
Основная ОС Основная ОС 800 1638400 MainOS (оценка)
Основная ОС Свободное пространство 128 262144 Головное помещение MainOS
Данные Данные 883 1808384 Расширяется для заполнения свободного места
ОБЩАЯ 1843 3774464

Конфигурация 4 ГБ: (4096 МБ, обычно имеется 3600 МБ для хранилища)

Макет секции объемом 4 ГБ: EFIESP, MainOS, CrashDump и Data. MainOS включает Windows и свободное пространство

Секция Содержимое МБ Секторов Комментарии
EFIESP EFIESP 32 65536 Размер EFIESP
Основная ОС Основная ОС 800 1638400 MainOS (оценка)
Основная ОС Свободное пространство 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>