最終更新:

genpack-install CLI リファレンス

概要

genpack-install は genpack で生成した SquashFS システムイメージを物理ディスク、ISO イメージ、ZIP アーカイブにデプロイするためのツールです。

genpack-install [オプション] [system_image]

root 権限が必要です。

オプション

位置引数

引数必須説明
system_image動作モードによるシステムイメージファイル(SquashFS)

セルフアップデートモードでは必須です。--disk--cdrom--zip モードでは省略可能で、省略時は現在インストールされているシステムイメージが使用されます。

名前付きオプション

オプションデフォルト説明
--disk <PATH>文字列(なし)ディスクデバイスパス。list を指定するとインストール可能なディスクの一覧を表示
--cdrom <PATH>文字列(なし)作成する ISO9660 イメージのパス
--zip <PATH>文字列(なし)作成する ZIP アーカイブのパス
--system-cfg <PATH>パス(なし)指定した system.cfg ファイルをインストール
--system-ini <PATH>パス(なし)指定した system.ini ファイルをインストール
--label <NAME>文字列(なし)ブートパーティションまたは ISO イメージのボリュームラベル
--gptフラグfalseMBR の代わりに常に GPT を使用
--superfloppyフラグfalseパーティショニングせずディスク全体を使用
--no-espフラグfalseブートパーティションを ESP としてマークしない
--additional-boot-files <PATH>パス(なし)追加のブートファイルを含む ZIP アーカイブ
-yフラグfalse確認プロンプトをスキップ
--debugフラグfalseデバッグメッセージを表示

動作モード

genpack-install は引数の組み合わせにより 4 つの動作モードを持ちます。

セルフアップデート(引数のみ、オプションなし)

genpack-install <system_image>

稼働中のシステムのシステムイメージをアトミックに更新します。--disk--cdrom--zip のいずれも指定しない場合にこのモードで動作します。

更新手順:

  1. 現在のシステムイメージのパスを特定(ブートパーティションの system.img またはデータパーティションの system
  2. 新しいシステムイメージを検証
  3. ブートファイル(カーネル、initramfs、ブートローダー)を更新
  4. アトミックなリネーム操作で切り替え:

失敗時は system.cur から自動復旧を試みます。

ディスクインストール(--disk)

genpack-install --disk=<デバイスパス> [オプション] [system_image]
genpack-install --disk=list

物理ディスクにシステムイメージをインストールします。

--disk=list を指定すると、インストール可能なディスクの一覧を表示します。読み取り専用デバイス、マウント済みデバイス、4GiB 未満のデバイスは除外されます。

パーティショニング:

通常モード(パーティショニングあり)のレイアウト:

  1. ブートパーティション(FAT32): カーネル、initramfs、ブートローダー、4GiB 未満のシステムイメージを格納
  2. データパーティション(Btrfs): 4GiB 以上のシステムイメージを格納。ラベルは data-{ブートパーティションUUID}

--no-esp を指定すると、ブートパーティションに ESP(EFI System Partition)フラグを付与しません。一部のブートローダーが ESP フラグを嫌う場合に使用します(MBR 時のみ有効)。

インストール前に確認プロンプトが表示されます。-y で確認をスキップできます。

ISO イメージ作成(--cdrom)

genpack-install --cdrom=<出力パス> [--label=<ラベル>] [system_image]

ブータブル ISO9660 イメージを作成します。xorriso(libisoburn)がインストールされている必要があります。

--label を省略した場合、ボリュームラベルは GENPACK になります。

ZIP アーカイブ作成(--zip)

genpack-install --zip=<出力パス> [system_image]

システムイメージとブートファイルを含む ZIP アーカイブを作成します。

ZIP に含まれるファイル:

ブートローダー

genpack-install は GRUB をブートローダーとして使用します。ブートローダーファイルは以下の順序で検索されます:

  1. システムイメージ内の /usr/lib/genpack-install/
  2. ホスト側の /usr/local/lib/genpack-install/
  3. ホスト側の /usr/lib/genpack-install/

インストールされるファイル:

対応アーキテクチャ:

アーキテクチャBIOSUEFI
x86_64boot.img + core.imgbootx64.efi
i386boot.img + core.imgbootia32.efi
aarch64bootaa64.efi
riscv64bootriscv64.efi

Raspberry Pi のサポート:

システムイメージに boot/bootcode.bin が含まれる場合、Raspberry Pi イメージとして扱われます。boot/ ディレクトリの全ファイルがブートパーティションにコピーされ、cmdline.txtroot= パラメータが root=systemimg:auto に書き換えられます。

grub.cfg の system.img 検索ロジック:

  1. ブートパーティションに system.img が存在すればそれを使用
  2. 存在しない場合、data-{ブートパーティションUUID} ラベルのパーティションを検索
  3. さらに d-{ブートパーティションUUID} ラベルを検索
  4. 最終手段としてブートパーティション番号から推測(パーティション 1 → パーティション 2 を試行)

パーティション構成

ブートパーティション(FAT32)

ブートパーティションサイズは、システムイメージが 4GiB 未満の場合は max(4, image_size_gib * 3 + 1) GiB、4GiB 以上の場合は 1 GiB です。

データパーティション(Btrfs)

システムイメージの検証

genpack-install はインストール前にシステムイメージの検証を行います:

  1. .genpack/ ディレクトリが存在すること
  2. 以下のいずれかを満たすこと:

検証に通過すると、.genpack/artifact.genpack/variant の内容が表示されます。

ソースリファレンス

このドキュメントは以下のリポジトリのスナップショットに基づいて作成されました:

更新履歴