====== オーバーレイ領域の管理 ======
===== オーバーレイ領域の構成 =====
MA-S1xx は、ファイルシステムが下記のように構成されています。
* ベース領域 : Squashfs を利用した、読込専用ファイルシステム
* 書換可能領域 : tmps + overlayfs
tmpfs は RAM ディスクですので、電源を OFF した際にすべての変更が失われてしまいます。\\
ただし、それだけでは実運用に困りますので、電源 OFF/ON 時に本体 eMMC に 書換可能領域 を保存・リストアする仕組みを設けています。
書換可能部分は、下記4領域に分割して保存しています。
|<40em 3em 10em 16em>|
^ No. ^ ファイル名 ^ 用途 |
| 1|overlays_etc.tar.zst|/etc 以下の設定保存用|
| 2|overlays_home.tar.zst|/home, /root 以下(ユーザ作業領域)保存用|
| 3|overlays_log.tar.zst|/var/log 以下、syslog保存用|
| 4|overlays_other.tar.zst|その他(追加導入したパッケージ等)保存用|
| 5|overlays_comp_log.tar|/var/log 以下、圧縮された syslog 保存用((圧縮済みのファイルを圧縮しようとすると非効率なので分けています))|
保存先のディレクトリは、/ro/.host/overlay で、ファームウェア 2 面で使用する分を除くとだいたい 450MiB ほど利用可能です。
[例] 保存されたファイル
user1@gemini:~$ ls -l /ro/.host/overlay/
total 176
-rwxr-xr-x 1 root root 5412 Aug 22 20:06 old_overlays_etc.tar.zst
-rwxr-xr-x 1 root root 40960 Aug 24 08:46 overlays_cmp_log.tar
-rwxr-xr-x 1 root root 5422 Aug 24 08:46 overlays_etc.tar.zst
-rwxr-xr-x 1 root root 1260 Aug 24 08:46 overlays_home.tar.zst
-rwxr-xr-x 1 root root 115227 Aug 24 08:46 overlays_log.tar.zst
user1@gemini:~$
5つのファイルのうち、No.1〜3,5 はシャットダウン・再起動時に自動的に保存処理が行われます。\\
(明示的に任意のタイミングで保存処理を行うことも可能です。)\\
**No.4** については、コマンドにより**明示的に**保存処理を行う必要があります。
[使用方法の表示]
user1@gemini:~$ sudo overlaycfg
Usage: overlaycfg [options ...]
-s : save files on overlay area.
kind is one of 'home', 'log', 'etc', 'apt', 'other'.
-i : initialize overlay area (Reset to factory default).
-u : unmount overlay partition on exit.
user1@gemini:~$
[実行例: No.4 を保存]
user1@gemini:~$ sudo overlaycfg -s other
* remounting overlay partition as RW...
user1@gemini:~$
\\
==== オーバーレイ保存領域の mount ====
オーバーレイ保存領域 (/ro/.host/overlay) は通常時 R/W mount しないようにしています。\\
突然の電源断でも破損の危険が無いようにするためです。
オーバーレイ保存処理時には自動で R/W remount しますので、保存処理後 R/O で remount しておくために\\
**-u** オプションをつけて実行するのが安全です。
user1@gemini:~$ sudo overlaycfg -s other -u
* remounting overlay partition as RW... <--- 保存前に R/W remount している
* remounting overlay partition as RO... <--- 保存後に R/O remount している
user1@gemini:~$
\\
==== 本装置の初期化 ====
オーバーレイ保存領域 (/ro/.host/overlay)のファイルを削除する事で、本装置を工場出荷状態に戻すことが可能です。\\
\\
1. overlay領域をR/W remount
user1@gemini:~$ sudo mount_overlay
* remounting overlay partition as RW...
\\
2. /ro/.host/overlay/ 以下のファイルを削除
user1@gemini:~$ sudo rm /ro/.host/overlay/*
\\
3. overlay領域をR/O remount
user1@gemini:~$ sudo mount_overlay -u
* remounting overlay partition as RO...
\\
4.「reboot -f」コマンドにより、停止スクリプトの実行をスキップして再起動
user1@gemini:~$ sudo reboot -f
Rebooting.
\\
==== 設定情報の取り出しと反映 ====
オーバーレイ保存領域 (/ro/.host/overlay)のファイルを、SDカード等の外部ストレージを使用して別の端末に移す事で、本装置で設定した内容を別の端末に反映させる事が可能です。
\\
=== 設定情報の取り出し ===
オーバーレイ保存領域内のファイル(設定情報)をSDカードに取り出します。
\\
\\
1. overlay領域をR/W remount
user1@gemini:~$ sudo mount_overlay
* remounting overlay partition as RW...
\\
2. SDカードをマウント
user1@gemini:~$ sudo mount /dev/mmcblk1p1 /mnt/sd/
\\
3. /ro/.host/overlay/ 以下のファイルSDカードにコピー((SDカード上にoverlayというディレクトリを用意))
user1@gemini:~$ sudo cp /ro/.host/overlay/* /mnt/sd/overlay
\\
4. overlay領域をR/O remount
user1@gemini:~$ sudo mount_overlay -u
* remounting overlay partition as RO...
\\
=== 取り出した設定情報を別の端末へ反映 ===
取り出した設定情報が入ったSDカードを別の端末接続します。SDカード内の設定情報を、オーバーレイ保存領域に上書きします。
\\
\\
1. overlay領域をR/W remount
user1@gemini:~$ sudo mount_overlay
* remounting overlay partition as RW...
\\
2. SDカードをマウント
user1@gemini:~$ sudo mount /dev/mmcblk1p1 /mnt/sd/
\\
3. SDカードにコピーしておいた設定情報((overlayというディレクトリ内に保存しておいた))を/ro/.host/overlay/ 以下に上書きする
user1@gemini:~$ sudo cp /mnt/sd/overlay/* /ro/.host/overlay/
\\
4. overlay領域をR/O remount
user1@gemini:~$ sudo mount_overlay -u
* remounting overlay partition as RO...
\\
5. SDカードをアンマウント
user1@gemini:~$ sudo umount /dev/mmcblk1p1
\\
6.「reboot -f」コマンドにより、停止スクリプトの実行をスキップして再起動
user1@gemini:~$ sudo reboot -f
Rebooting.
\\