IoT デバイスのレイアウト

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

これらのファイルでは、次の 3 つのコンポーネント ファイルが使用されます。

  • 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

  • Type: MBR の場合は、0x0C を使用します。 GPT の場合は、{c12a7328-f81f-11d2-ba4b-00a0c93ec93b} を使用します

  • FileSystem: FAT

  • TotalSectors: 65536 (= 32MB)

  • Bootable: true

  • RequiredToFlash: true

MainOS: OS と、OEM の事前読み込み済みアプリです。 このパーティションには、通常の操作用に最小限の数の空きセクター (MinFreeSector) が必要です。

  • 名前: MainOS

  • Type: MBR の場合は、0x07 を使用します。 GPT の場合は、{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7} を使用します

  • FileSystem: NTFS

  • MinFreeSectors: 1048576 (= 512MB)

  • ByteAlignment: 0x800000

  • ClusterSize: 0x1000 (このサイズは、パーティションを管理可能なサイズに維持するための推奨のサイズです)

Data: ユーザー データ パーティション、ユーザー レジストリ ハイブ、アプリ、アプリ データです。 このパーティションは、通常、デバイス上の残りの記憶域スペースを使用するために設定されます (UseAllSpace: True)。

  • 名前: Data

  • Type: MBR の場合は、0x07 を使用します。 GPT の場合は、{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7} を使用します

  • FileSystem: NTFS

  • UseAllSpace: true

  • ByteAlignment: 0x800000

  • ClusterSize: 0x4000 (このパーティションはサイズが大きくなる傾向にあるため、0x4000 にすることをお勧めします。0x1000 でもかまいません)。

クラッシュ ダンプ パーティション: オプションのパーティションです。クラッシュ ダンプからデータを収集するために使用されます。 使用される場合、サイズは合計セクターで指定されます。

  • 名前: CrashDump

  • Type: MBR の場合は、0x07 を使用します。 GPT の場合は、{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7} を使用します

  • FileSystem: FAT32

  • TotalSectors: 1228800 (= 600 MB)

必須フィールド

次のフィールドは必須です。IoTCore では次の値がサポートされています。

  • バージョン: IoTUAP

  • SectorSize: 512

  • ChunkSize: 128

  • DefaultPartitionByteAlignment: 0x200000

ストレージ サイズの見積もり

次の図は、2 つの構成の概要を示したものです。

2GB 構成 (2048MB。通常は 1843MB のストレージになります)

2 GB パーティション レイアウト: EFIESP、MainOS、および Data。MainOS には Windows と空き領域が含まれています

Partition 内容 MB セクター数 注釈
EFIESP EFIESP 32 65536 EFIESP のサイズ
メイン OS メイン OS 800 1638400 MainOS (見積もり)
メイン OS 空き領域 128 262144 MainOS ヘッドルーム
データ データ 883 1808384 空き領域を埋めるために拡張されます
合計 1843 3774464

4GB 構成: (4096MB。通常は 3600MB をストレージに利用できます)

4 GB パーティション レイアウト: EFIESP、MainOS、CrashDump、および Data。MainOS には Windows と空き領域が含まれています

Partition 内容 MB セクター数 注釈
EFIESP EFIESP 32 65536 EFIESP のサイズ
メイン OS メイン OS 800 1638400 MainOS (見積もり)
メイン OS 空き領域 512 1048576 MainOS ヘッドルーム
CrashDump クラッシュ ダンプ 600 1228800 クラッシュ ダンプのサイズ
データ データ 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>