CI
bitbucket-pipelinesなどの一般的なシステムで実行するために、Docker仮想マシンでRaspberry Piイメージの生成を自動化しようとしています。
物理システムでは、「テンプレート」イメージを使用し、それをローカルディレクトリに分割し、スクリプトで埋め、アンマウントします。インストールするには、次のスクリプトを使用します。
loopdevice=`losetup -f --show -P images/template.img`
echo $loopdevice > loopdevice
mkdir -p images/p1
mkdir -p images/p2
mkdir -p images/p3
mount ${loopdevice}p1 images/p1
mount ${loopdevice}p2 images/p2
mount ${loopdevice}p3 images/p3
(画像にはそれぞれ3つのディレクトリにマウントされている3つのパーティションが含まれています。)
残念ながら、Dcokerコンテナ内のループバックデバイスは許可なく使用できず、Bitbucketパイプライン内で権限を付与することもできません。ここでは、行き止まりの路地が見えます。
それでは、問題は、ファイルシステムイメージファイルをループバックデバイスにマウントせずに操作できるLinuxツールがありますか?
ベストアンサー1
- 要件に応じてファイルシステムを操作するツールがあります。その一つはツールボックスFAT ファイルシステムをサポートするパッケージです。もう一つはe2ツール、EXT2、EXT3 ファイルシステムを実装します。どちらもdebian Linuxや他の多くのオペレーティングシステムで利用可能です。
- これらのツールはパーティションのイメージを処理できない可能性があります。これは問題ではありません。テンプレートをパーティションテーブルとパーティションコンテンツの別々のファイルに分割し(おそらくあらかじめ)、ファイルシステムイメージにファイルを追加してから、フラグメントを
cat
正しい順序で集めて最終ディスクイメージを作成するだけです。