ブログ

Armadillo Base OS のアップデート時にファイルを残す方法

at_shiita.ishigaki
2022年6月17日 9時39分

Armadillo Base OS は SWUpdate によってアップデートすることができます。
アップデートする際には、SWUpdate によるアップデートに含まれるファイルと /etc/swupdate_preserve_files に記載されているファイルで新しい rootfs を作ります。
そのため、 SWUpdate と /etc/swupdate_preserve_files に含まれていないファイルは消えてしまいます。
本ブログでは、 /etc/swupdate_preserve_files にファイルを記載する方法について説明します。

Armadillo Base OS に含まれていないファイルを /etc/swupdate_preserve_files に記載するには persist_file -p コマンドを使用します。

[armadillo ~]# persist_file -p hoge
[armadillo ~]# tail -n 2 /etc/swupdate_preserve_files
# persist_file 20220617
/root/hoge

また、 /etc/swupdate_preserve_files に直接記載することもできます。

[armadillo ~]# echo "/root/fuga" >> /etc/swupdate_preserve_files
[armadillo ~]# tail -n 1 /etc/swupdate_preserve_files
/root/fuga
[armadillo ~]# persist_file /etc/swupdate_preserve_files #直接記載する場合はファイルの永続化が必要

Armadillo Base OS に含まれているファイル変更し、その変更をアップデート後にも適用したい場合は、アップデート後にそのファイルをコピーする必要があります。
その場合は、 /etc/swupdate_preserve_files に記載するファイル名の前に POST と記載する必要があります。 コマンドは persist_file -P となります。

[armadillo ~]# echo "#" >> /etc/conf.d/podman_atmark #既存のファイルに変更を加えることで persist_file コマンドを実行できるようにする
[armadillo ~]# persist_file -P /etc/conf.d/podman-atmark
[armadillo ~]# tail -n 2 /etc/swupdate_preserve_files
# persist_file 20220617
POST /etc/conf.d/podman-atmark

以下のように /etc/swupdate_preserve_files に直接記載することもできます。

[armadillo ~]# echo "POST /etc/conf.d/podman-atmark" >> /etc/swupdate_presever_files
[armadillo ~]# tail -n 1 /etc/swupdate_preserve_files
POST /etc/conf.d/podman-atmark
[armadillo ~]# persist_file /etc/swupdate_preserve_files #直接記載する場合はファイルの永続化が必要

/etc/swupdate_preserve_files に記述するのを忘れて、アップデートでファイルが消えてしまった場合は、 Armadillo Base OS で違う面のファイルにアクセスする方法 のように、違う面のデータをコピーしてくることができます。