Layout do dispositivo IoT
Ao modificar um pacote de suporte de quadro (BSP) do IoT Core, você pode alterar as partições e o layout da unidade modificando os arquivos DeviceLayout.
Layout de partição
O IoT Core dá suporte a layouts de partição UEFI (GPT) e BIOS herdado (MBR). A maioria dos dispositivos do IoT Core usa partições no estilo UEFI e GPT, embora o Raspberry Pi 2 use partições no estilo MBR. Para saber mais sobre UEFI, leia Inicialização e UEFI e as Perguntas frequentes sobre Windows e GPT.
Layouts de partição de exemplo incluídos nos Complementos do 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
Esses arquivos usam três arquivos de componente:
- DeviceLayout.<Name>.pkg.xml: arquivo de pacote, cria pacotes para DeviceLayout e OEMDevicePlatform.xml.
- DeviceLayout.xml: especifica o layout de partição do dispositivo
- OEMDevicePlatform.xml: especifica a quantidade de blocos livres disponíveis no dispositivo e quais partições são compactadas.
Layout de partição (DeviceLayout.xml)
O IoT Core requer três partições obrigatórias (EFIESP, MainOS e Dados). Opcionalmente, você pode incluir outras partições, como, por exemplo, uma partição CrashDump. Os tamanhos são calculados em setores, o setor padrão é de 512 bytes.
Propriedades com suporte:
EFI: partição de tamanho fixo com o gerenciador de inicialização, banco de dados de configuração de inicialização. Essa partição é necessária para ambos os dispositivos no estilo MBR/GPT.
Nome:
EFIESP
Tipo: para MBR, use
0x0C
. Para GPT, use{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
FileSystem:
FAT
TotalSectors:
65536
(= 32 MB)Inicializável:
true
RequiredToFlash:
true
MainOS: aplicativos pré-carregados do sistema operacional e OEM. Essa partição requer um número mínimo de setores livres (MinFreeSectors) para operações normais.
Nome:
MainOS
Tipo: para MBR, use
0x07
. Para GPT, use{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
FileSystem:
NTFS
MinFreeSectors:
1048576
(= 512MB)ByteAlignment:
0x800000
ClusterSize:
0x1000
(Este tamanho é recomendado para manter o tamanho da partição gerenciável.)
Dados: partição de dados do usuário, hives do registro de usuário, aplicativos, dados de aplicativos. Normalmente, essa partição é definida para usar o restante do espaço de armazenamento no dispositivo. (UseAllSpace: True)
Nome:
Data
Tipo: para MBR, use
0x07
. Para GPT, use{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
FileSystem:
NTFS
UseAllSpace:
true
ByteAlignment:
0x800000
ClusterSize:
0x4000
(Esta partição tende a ser maior e, portanto, é recomendável 0x4000. 0x1000 também está OK.)
Partição de despejo de memória: partição opcional usada para coletar dados de despejos de memória. Quando usado, o tamanho é dado no total de setores.
Nome:
CrashDump
Tipo: para MBR, use
0x07
. Para GPT, use{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
FileSystem:
FAT32
TotalSectors:
1228800
(= 600 MB)
Campos obrigatórios
Esses campos são necessários, os seguintes valores têm suporte para IoTCore:
Versão:
IoTUAP
SectorSize:
512
ChunkSize:
128
DefaultPartitionByteAlignment:
0x200000
Estimativas de tamanho de armazenamento
Os diagramas a seguir fornecem uma visão geral de duas configurações.
Configuração de 2 GB (2048 MB, normalmente tem 1843 MB para armazenamento)
Partição | Sumário | MB | Setores | Comentários |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | Tamanho do EFIESP |
Main OS | Main OS | 800 | 1638400 | MainOS (estimativa) |
Main OS | Espaço livre | 128 | 262144 | MainOS Headroom |
Dados | Dados | 883 | 1808384 | Expande para preencher o espaço livre |
TOTAL | 1843 | 3774464 |
Configuração de 4 GB: (4096 MB, normalmente tem 3600 MB disponíveis para armazenamento)
Partição | Sumário | MB | Setores | Comentários |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | Tamanho do EFIESP |
Main OS | Main OS | 800 | 1638400 | MainOS (estimativa) |
Main OS | Espaço livre | 512 | 1048576 | MainOS Headroom |
CrashDump | Despejo de memória | 600 | 1228800 | Tamanho do CrashDump |
Dados | Dados | 1656 | 3391488 | Expande para preencher o espaço livre |
TOTAL | 3600 | 7372800 |
Layout da plataforma do dispositivo (OEMDevicePlatform.xml)
OEMDevicePlatform.xml: especifica a quantidade de blocos livres disponíveis no dispositivo e quais partições são compactadas. Exemplo:
<?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>