Armadilloフォーラム

パーティション構成の変更

dev.sanko

2024年9月19日 11時37分

お世話になっております。

Armadillo-640にてBaseOSを使用したときのパーティション構成についての質問です。
BaseOSをインストール後のeMMCのパーティション構成は下記のようになっております。

デフォルト構成
----------------------------------------
| パーティション | サイズ | ラベル |
| 1 | 300MiB | rootfs_0 |
| 2 | 300MiB | rootfs_1 |
| 3 | 50MiB | logs |
| 4 | 200MiB | firm |
| 5 | 2.7GiB | app |
----------------------------------------

appのパーティションサイズを縮小して、新たにデータベース用のパーティションを追加したいです。
下記のようなパーティション構成にすることは可能でしょうか。
可能であれば、手順をご教授いただけますと助かります。

変更後構成
----------------------------------------
| パーティション | サイズ | ラベル |
| 1 | 300MiB | rootfs_0 |
| 2 | 300MiB | rootfs_1 |
| 3 | 50MiB | logs |
| 4 | 200MiB | firm |
| 5 | 2.5GiB | app |
| 6 | 200MiB | database |
----------------------------------------

コメント

アットマークテクノの古賀です。

dev.sankoさん:
>Armadillo-640にてBaseOSを使用したときのパーティション構成についての質問です。
>BaseOSをインストール後のeMMCのパーティション構成は下記のようになっております。
>
>デフォルト構成
>----------------------------------------
>| パーティション | サイズ | ラベル |
>| 1 | 300MiB | rootfs_0 |
>| 2 | 300MiB | rootfs_1 |
>| 3 | 50MiB | logs |
>| 4 | 200MiB | firm |
>| 5 | 2.7GiB | app |
>----------------------------------------
>
>appのパーティションサイズを縮小して、新たにデータベース用のパーティションを追加したいです。
>下記のようなパーティション構成にすることは可能でしょうか。
>可能であれば、手順をご教授いただけますと助かります。

原理的には可能ですが、app パーティションを切り分ける構成は推奨しておらず、サポートできません。ごめんなさい。

質問になりますが、データベース用のパーティションを別に作りたい動機は、何でしょうか?
raw デバイスを必須とする DBMS をお使いでない限り、app パーティションにデータベースファイルを配置する構成で、支障ないと思います。

古賀様

ご回答ありがとうございます。
app パーティションを切り分ける構成は推奨外であること、承知しました。

rawデバイスでデータベースを構築しているわけではありませんが、
appパーティションにデータベースファイルを配置した場合、再起動によってデータベースの更新内容は消えないでしょうか?

persist_fileコマンドを実行すれば、データベースファイルは更新されたものが保存されるとは思いますが、
データベースへの書き込みがあるたびにコマンドを実行するのは避けたく、
logsパーティションのように別パーティション作成してそこに配置することを検討してました。

アットマークテクノの古賀です。

dev.sankoさん:
>rawデバイスでデータベースを構築しているわけではありませんが、
>appパーティションにデータベースファイルを配置した場合、再起動によってデータベースの更新内容は消えないでしょうか?

はい。消えません。app パーティションのマウントディレクトリ配下に書き込んだファイル内容は、persist_file を実行しなくても永続化されます。
たとえば、以下の質問スレッドで質問を頂いた方は、app パーティションがマウントされている /var/app/volumes/ 配下に SQLite のデータベースファイルを配置する構成で使っていらっしゃいます:
 https://armadillo.atmark-techno.com/forum/armadillo/22389

>persist_fileコマンドを実行すれば、データベースファイルは更新されたものが保存されるとは思いますが、
>データベースへの書き込みがあるたびにコマンドを実行するのは避けたく、
>logsパーティションのように別パーティション作成してそこに配置することを検討してました。

persist_file を実行する必要があるのは、overlayfs を採用しているルートファイルシステム(/)にファイルを作成した場合です:
 https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_ma…
マニュアルの上記箇所で「電源を切っても保持されるディレクトリ(ユーザーデータディレクトリ)」として説明しているように、/var/app/volumes/ 配下に書き込んだ内容は、電源を切っても保持されます。

以下のコマンドを実行すると、/ が overlayfs である一方、/var/app/volumes は btrfs であることが分かるでしょう:

armadillo:~# df -T / /var/app/volumes

古賀様

ご回答ありがとうございます。
マニュアルに「電源を切っても保持されるディレクトリ」の記載があるのを見落としてました。
/var/app/volumesの配下にデータベースファイルを配置するようにします。