ブログ

Armadillo Base OS:RAM上のファイル、podmanのデータをeMMCに保存する

at_kazutaka.bito
2023年7月4日 15時49分

Armadillo Base OSのデフォルト設定では、ファイル、podmanのデータの保存先がRAMになっています。
保存先がRAMのまま作業を進めて電源を切ると、作業内容が残りません。

ここでは、RAM上のファイル、podmanのデータをeMMCに保存する方法を説明します。
詳細な説明は下記マニュアルを参照ください。
Armadillo-IoT ゲートウェイ G4:製品マニュアル「9.11.2. overlayfs と persist_file について」
Armadillo-IoT ゲートウェイ G4:製品マニュアル「8.1.3. PodmanのデータをeMMCに保存する」

RAM上のファイルをeMMCに保存する

下記のようにpersist_fileコマンドでファイル名を指定して実行します。

armadillo:~# persist_file [ファイル名]

RAM上のpodmanのデータをeMMCに保存する

基本的には、podmanのデータはeMMCに保存するように予め設定(disk mode)してから作業します。
ここでは、うっかりpodmanのデータをRAMに保存する設定(tmpfs mode)のまま作業した場合、eMMCに保存する方法です。

まず、作業中のコンテナをイメージ化します。
(コンテナのままではeMMCに保存できないため)
コンテナを停止し、コンテナが停止していること(Exited)を確認します。

armadillo:~# podman stop [コンテナ名]
armadillo:~# podman ps -a
CONTAINER ID  IMAGE   COMMAND     CREATED        STATUS      PORTS       NAMES
(略)     (略)   (略)      (略)       Exited (0)   (略)    [コンテナ名]

ここでは、例として
 [コンテナ名]:mycon

 [コンテナのイメージ名:タグ名]:image_mycon:v1.0.0
という名前でイメージ化します。

イメージ化するには、podman commitコマンドを使用します。

armadillo:~# podman commit mycon image_mycon:v1.0.0

コンテナをイメージ化できているか確認します。
(ここでは、image_mycon:v1.0.0に相当するイメージがあることを確認)

armadillo:~# podman images
REPOSITORY                TAG         IMAGE ID      CREATED       SIZE       R/O
localhost/image_mycon     v1.0.0        (略)      (略)     (略)   (略)

次に、podmanのデータの保存先をeMMCに設定するコマンドを実行します。

armadillo:~# abos-ctrl podman-storage --disk

上記コマンドは、podmanのデータをeMMCに保存するモード(disk mode)に遷移するものです。
このコマンド実行時に、RAM上にpodmanのデータがある場合は下記のように問われます。

What should we do? ([C]opy (default), [N]othing, [D]elete)

この問いに対して、Cを入力します。
Cを入力すると、RAM上のpodmanのデータをeMMCにコピーし、
podmanのデータをeMMCに保存するモード(disk mode)に遷移します。