fss-sh
2025年7月8日 17時42分
==========
製品型番:AGX4500-C00D0
Debian/ABOSバージョン:3.20.3-at.4
カーネルバージョン:5.10.228-0-at
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
プロジェクトで開発中のアプリケーションのコンテナイメージ群の合計が16GB程度となっており、デフォルトのmmcblk2のストレージサイズは 9GBだったため、podman loadコマンドではすべてのアプリケーションイメージを保存できませんでした。アプリケーションのイメージは10個以上あり、各イメージの容量の減少は開発中のため後回しにしています。
そのためコンテナイメージの保存先を microSDカード(mmcblk1) に変更しました。
この変更手順として「コンテナイメージ保存先変更方法」のようにしましたが、問題のある個所はあるでしょうか。
Webフォーラムの過去記事を検索しましたが、同様の質問は見つけらなかったのですが、同様の記事があれば教えてください
コンテナイメージ保存先変更方法
# ※ 事前にホストOSには sudo をインストールし、atmark ユーザーに対して、NOPASSWD の設定している # microSDカードを挿入している。microSDカードは ELECOM MF-HMS256GU13V3 を使用 sudo fdisk /dev/mmcblk1 # partition 1を 作成 # 1つ目のパーティションを btrfs で初期化 sudo mkfs.btrfs /dev/mmcblk1p1 # mmcblk1p1のマウント先をのディレクトリを作成 sudo mkdir -p /mnt/sd sudo mount /dev/mmcblk1p1 /mnt/sd cd /mnt/sd # /var/tmp用 sudo btrfs subvolume create tmp # /var/lib/containers/storage 用 sudo btrfs subvolume create containers_storage # /var/sampleapp 用 アプリケーションの設定ファイルなどを保存する場所 sudo btrfs subvolume create sampleapp cd ~/ #一旦マウント解除 sudo umount /mnt/sd # podmanの保存設定をdiskに変更 sudo abos-ctrl podman-storage --disk # fstabの記述を書き換える。 sudo vi /etc/fstab # /dev/mmcblk2p5 /var/tmp btrfs compress=zstd,discard=async,noatime,subvol=tmp 0 0 /dev/mmcblk2gp1 /var/at-log vfat defaults 0 0 /dev/mmcblk2p4 /opt/firmware squashfs defaults 0 0 # /dev/mmcblk2p5 /var/lib/containers/storage btrfs compress=zstd,discard=async,noatime,subvol=containers_storag e 0 0 /dev/mmcblk1p1 /mnt/sd btrfs compress=zstd,discard=async,noatime,subvol=/ 0 0 /dev/mmcblk1p1 /var/tmp btrfs compress=zstd,discard=async,noatime,subvol=tmp 0 0 /dev/mmcblk1p1 /var/lib/containers/storage btrfs compress=zstd,discard=async,noatime,subvol=containers_storage 0 0 /dev/mmcblk1p1 /var/sampleapp btrfs compress=zstd,discard=async,noatime,subvol=devicehub 0 0 # /var/sampleapp は synlinkとフォルダを作成する sudo ln -s /mnt/sd/sampleapp /var/sampleapp # symlinkを永続化 sudo persist_file /var/sampleapp # fstabを永続化 sudo persist_file /etc/fstab # 再起動 sudo reboot
コメント
at_kojiro.yamada
> 上記スクリプトは、 build-rootfs[1] の common/image_common/lib/rc/sh/functions-atmark.sh から format_app() 関数を抜き出して、足りない関数を適当に追加したものです。
書き忘れていました。失礼しました。
[1] https://download.atmark-techno.com/armadillo-iot-g4/tool/build-rootfs-v…
at_kojiro.yamada
2025年7月9日 13時35分
> この変更手順として「コンテナイメージ保存先変更方法」のようにしましたが、問題のある個所はあるでしょうか。
> Webフォーラムの過去記事を検索しましたが、同様の質問は見つけらなかったのですが、同様の記事があれば教えてください
SWU イメージのインストール と abos-ctrl rollback-clone の実行が失敗するかもしれません。
ただ、今の状態で不自由がないのであれば、そのまま使っていただいても良いと思います。
インストールディスクが行っている初期化処理を厳密に再現する手順を書いておきますので、
必要になったら試していただければと思います。
----------------------------------
app パーティションを /dev/mmcblk0p5 から /dev/mmcblk2p1 に変更する手順
注: 想定した使い方ではないため、別の場所でなにか問題が起こるかもしれません。その点ご留意ください。
1. gpt パーティションを作成しておく (fdisk ではなく gdisk を使ってください)
2. コンテナイメージ用パーティションに "app" という名前(ラベル) をつける
3. 以下のスクリプトを root ユーザーで実行する ("app" パーティションが /dev/mmcblk2p1 以外の場合は sd_part 変数を手直ししてください)
4. /etc/fstab 内の /dev/mmcblk0p5 を /dev/mmcblk2p1 に書き換える
5. persist_file -p /etc/fstab で fstab を永続化する
スクリプト
上記スクリプトは、 build-rootfs[1] の common/image_common/lib/rc/sh/functions-atmark.sh から format_app() 関数を抜き出して、足りない関数を適当に追加したものです。
format_app 関数は、インストールディスクによる初期化処理で実行される関数で、 app パーティションの初期化を行います。