Armadilloフォーラム

SWアップデートについて

e1234

2024年4月10日 16時03分

Armadillo Base OSでの、SWアップデートに関してです。

①/var/app/volumes配下以外のファイルの場合、
 SWアップデート実行によりファイル削除ができませんでした。
 (ソフトウェアアップデート自体はエラー無く完了しますが、指定のファイル(test.txt)を削除できていませんでした。)

----------------------------------------------------------------------------
<.descファイルの内容>
swdesc_command_nochroot --version extra_os.test_config 1.0.5 \
"rm /home/atmark/test/test.txt" \
"persist_file -v /home/atmark/test/test.txt"
---------------------------------------------------------------------------

②/var/app/volumes配下のファイルの場合、
 SWアップデート実行によりファイル削除をすることができました。
(指定のファイル(test.txt)を削除できていました。)
----------------------------------------------------------------------------
<.descファイルの内容>
swdesc_command_nochroot --version extra_os.file_delete 1.0.0 \
"rm /var/app/volumes/test/test.txt"
---------------------------------------------------------------------------

■質問内容
(1) /var/app/volumes配下以外のファイルを削除したい場合の、
  対応方法を教えていただけないでしょうか?
  (上記①の.desc内容で出来なかったため、対応方法を知りたいです。)

(2) swuイメージ使用によるソフトウェアアップデート(「swupdate -i (.swuファイル)」コマンド実行)により、
/var/app/volumes配下を更新することに関して、何か問題はありませんでしょうか?

コメント

at_satoshi.ohta

2024年4月10日 19時01分

お世話になっております。
太田です。

(1) に関しましては swdesc_command_nochroot を実行せずに swdesc_command を実行してください。
(2) に関しましては、swupdateを使用してファイルを削除、追加することは推奨される手順なので特に問題はありません。

前提として、ABOS は OS・ブートローダー・コンテナ部分は安全性を担保するため二面化しています。
それにより、万が一アップデートに失敗した場合、作業前の状態にロールバックすることができます。
ここでは、bootして動作している面をA面として、もう一方の面をB面とします。
swupdate を実行した場合、まずA面をB面にコピーした後にB面をアップデートします。
アップデートが成功した場合、次回起動時にB面に切り替わります。
アップデートが失敗した場合、A面のままになります。

swdesc_command_nochroot はA面に対してコマンドを実行します。
swdesc_command はB面に対してコマンドを実行します。

(1) に関しましては swdesc_command_nochroot を実行せずに
swdesc_command を実行することで再起動後のファイルが削除された状態のB面に切り替わります。
そのため、swdesc_command_nochroot を実行せずに swdesc_command を実行してください。

ちなみにですが、
swdesc_command ではなく swdesc_command_nochroot を実行した理由をお聞きしてもよろしいでしょうか?

よろしくお願いいたします。

e1234

2024年4月11日 13時39分

太田さん

お世話になっております。
回答ありがとうございます。

アップデートの仕組みについて、
丁寧なご説明ありがとうございました。

/var/app/volumes配下は二面化されていないが、
/home/atmark配下だと二面化されており、
swdesc_command コマンドで実行が必要なのですね。

(1)に関して、
swdesc_command コマンドで、ファイル削除できることを確認いたしました。
ありがとうございます。

>swdesc_command ではなく swdesc_command_nochroot を実行した理由をお聞きしてもよろしいでしょうか?
マニュアル(Armadillo-640 製品マニュアル (Armadillo Base OS対応))の、
「6.4.5. 起動中の Armadillo で任意のコマンドを実行する」を参照し、
swdesc_command_nochrootコマンドを使用していました。
swdesc_command_nochroot と swdesc_command の違いは理解できておりませんでした。

at_satoshi.ohta

2024年4月11日 14時38分

お世話になっております。
太田です。

> /var/app/volumes配下は二面化されていないが、
> /home/atmark配下だと二面化されており、
> swdesc_command コマンドで実行が必要なのですね。

おっしゃるとおりです。

> マニュアル(Armadillo-640 製品マニュアル (Armadillo Base OS対応))の、
> 「6.4.5. 起動中の Armadillo で任意のコマンドを実行する」を参照し、
> swdesc_command_nochrootコマンドを使用していました。
> swdesc_command_nochroot と swdesc_command の違いは理解できておりませんでした。

貴重なご意見ありがとうございます。
参考にさせていただきます。

今後ともどうぞよろしくお願いいたします。