ブログ

Armadillo Base OS:ロールバック先のデータを最新にする方法(アップデートで実行)

at_shinya.matsumoto
2024年5月30日 17時19分

Armadillo Base OS搭載製品はロールバック(※)出来る様に前バージョンのデータを残しています。
※アップデートの失敗時やファイル破損による起動失敗などLinuxが立ち上がらなかった場合に前の正常なバージョンに戻す機能

脆弱性対応やバグ対応の為にアップデートした場合はロールバックする事が安心材料にならない為、アプリケーションが
問題無く動作している事が確認出来れば、過去のデータを上書きする事をお勧めします。

《参考》
 コマンド実行でロールバック先を最新にする方法

実施概要

Armadillo Base OSではA面/B面という概念を持っており、アップデート毎にA面⇒B面⇒A面⇒B面と交互に切り替わります。
また、ブートローダー、OS、アプリケーションコンテナをそれぞれA面/B面として管理しており、下記特徴があります。
※ブートローダー、OSは物理的に2面化(パーティション区切り)、コンテナはソフト的に2面化しております。

現在A面に書き込まれたソフトウェアを起動中、ブートローダーだけアップデートした場合、下記の様になります。

対象 アップデート有無 結果
ブートローダー 有り B面にアップデートファイルを書き込み
OS 無し B面にA面をコピー
コンテナ 無し B面にA面をコピー


次に、下記いずれもアップデートしない(空の)アップデートをした場合はすべてA面がB面にコピーされます。

対象 アップデート有無 結果
ブートローダー 無し B面にA面をコピー
OS 無し B面にA面をコピー
コンテナ 無し B面にA面をコピー

実施手順

ATDEで下記アップデートファイルを作成します。

descファイルの作成(アップデート内容無し、versionのみ追記)
[ATDE]$ cat copy.desc
#version
swdesc_option component=extra_os.copy version=1
swdesc_command true
 
swuファイル作成
[ATDE]$ mkswu copy.desc 
Enter pass phrase for /home/atmark/mkswu/swupdate.key:     //←署名用パスワード入力
copy.swu を作成しました。
 
swuファイルサイズ(約32Kbyte)
[ATDE]$ ls -lh copy.swu
-rw-r--r-- 1 atmark atmark 32K  5月 30 18:31 copy.swu


上記で作成したcopy.swuをインストールするとバージョンが下記の様に書き変わります。

アップデート前
[Armadillo]# cat /etc/sw-versions
base_os 3.19.1-at.2
boot 2020.4-at21
extra_os.a6e-gw-container 2.5.1
extra_os.initial_setup 4
extra_os.twin_exec_command enable
 
アップデート後
[Armadillo]# cat /etc/sw-versions
base_os 3.19.1-at.2
boot 2020.4-at21
extra_os.a6e-gw-container 2.5.1
extra_os.initial_setup 4
extra_os.twin_exec_command enable
extra_os.copy 1   // ←このバージョン名だけ追記(その他バージョン変更なし)


以上でA面/B面の内容を同じにすることが出来ます。(copyのバージョン名だけ追記されます)


開発手順・TIPS集のTOPに戻る