Макет устройства Интернета вещей
При изменении пакета поддержки платы 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 МБ для хранилища)
Секция | Содержимое | МБ | Секторов | Комментарии |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | Размер EFIESP |
Основная ОС | Основная ОС | 800 | 1638400 | MainOS (оценка) |
Основная ОС | Свободное пространство | 128 | 262144 | Головное помещение MainOS |
Данные | Данные | 883 | 1808384 | Расширяется для заполнения свободного места |
ОБЩАЯ | 1843 | 3774464 |
Конфигурация 4 ГБ: (4096 МБ, обычно имеется 3600 МБ для хранилища)
Секция | Содержимое | МБ | Секторов | Комментарии |
---|---|---|---|---|
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>