AUFS: ディレクトリ ツリーの一部のみの読み取り/書き込みブランチを作成するにはどうすればよいでしょうか?

AUFS: ディレクトリ ツリーの一部のみの読み取り/書き込みブランチを作成するにはどうすればよいでしょうか?

AuFS (別のユニオン ファイル システム) を使用すると、2 つのツリーが重複している場合でも、それらを 1 つにマージできます。その後、マージされたツリーへの書き込みをブランチの 1 つに向け、読み取りを別のブランチに向けることができます。

典型的な使用法は、フラッシュファイルシステムとRAMディスクの組み合わせです。これ(ref 1) Linux を壊さない読み取り専用のルート ファイル システムを作成します。すべてのファイルの書き込みは RAM に行われます。再起動後、システムは出荷時の構成に復元されます。

  • /dir1= 読み取り専用
  • /dir2= 読み取り/書き込み
  • /aufs/dir1=とをマージ/dir2

/aufsその後、 (ルート)--moveに再マウントされます。/

簡単に言えば、(ref 1)の例では次のようになります。

mount -t aufs br=/dir2:/dir1 /aufs
mount --move /aufs /

ただし、書き込み可能な ( /dir2) が RAM ディスクではなく実際のディスク上にあるように使用したいと思います。 そうすれば、再起動後もデータが保持されます。

しかし、dir2 内の特定のファイルが保存されず、( ) デフォルトに復元されるようにする必要があります/dir1。これにより、将来のブートでは常に出荷時のファイルが使用されるようになります。ユーザー データとログ データが失われることはありません。

たとえば、、で変更されたファイルは、/etc再起動すると失われます。/bin/boot/usr

AUFSウェブページ(ref 2) にはほとんど例がありません。

それで、質問です: AuFS を使用してこれを行う正しい方法は何ですか?

次のようなことが考えられます。

  1. 最初のマウントコマンドを何らかの方法で変更する
  2. 2 回目のマウントの前に aufs add/del を使用してマウント コマンドを追加します。
  3. /dir2起動時に保存する必要のないツリーを削除するだけです
  4. 部分的な木(etc, bin, boot, lib, etctmpfs

参照1:https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash
参照2:http://aufs.sourceforge.net/aufs.html

答え1

オプション1:auFS自体はこのようなマウント オプションをサポートしていないため、オプション #1 は使用できません。これを回避する必要があります。

オプション3: もちろん、起動するたびにそれらのディレクトリを削除するだけで済みます。これが私が見つけた最も簡単な方法かもしれません。

オプション 2: を操作できますtmpfs。まずtmpfs、サイズが 500 MB の を作成します。

mount -t tmpfs -o rw,size=500M tmpfs /tmpfs

現在、次のようになっています。

  • /dir1: 読み取り専用
  • /dir2: 読み書き
  • /tmpfs: RAMでの読み取り/書き込み
  • /aufs/dir1/dir2

内部に/tmpfs、保存したいディレクトリを作成します。

mkdir -p /tmpfs/{etc,usr,boot,bin}

注意してください。これは、2 つのディレクトリをすでにマージしているときに行います。つまり、ディレクトリ ツリーが/aufsすでに存在する場合です。ただし、保存する必要があるディレクトリごとに 1 つの aufs マウントを実行します。

mount -t aufs -o dirs=/tmpfs/etc=rw:/dir2/etc=ro none /aufs/etc
mount -t aufs -o dirs=/tmpfs/usr=rw:/dir2/usr=ro none /aufs/usr
mount -t aufs -o dirs=/tmpfs/boot=rw:/dir2/boot=ro none /aufs/boot
mount -t aufs -o dirs=/tmpfs/bin=rw:/dir2/bin=ro none /aufs/bin

これで、 にディレクトリ ツリーが作成され、どこにでもファイルを書き込むことができますが、たとえば に/aufs書き込むと、そのファイルはRAM 内にある に書き込まれるため、再起動すると失われます。たとえば 内の他のファイルは に書き込まれますが、これは読み取り/書き込み可能なファイル システムであるため、再起動すると失われます。/etc/tmpfs/etc/home/dir2/home

別の解決策: 私もオーバーレイファイルシステムと保存されたユーザーデータを使用するクライアントシステムを使用しています。解決方法は次のとおりです。単純に読み取り専用ファイルシステムと、その上にマウントされた tmpfs です。後でユーザーがログインすると、samba サーバーから読み取り/書き込み可能なホームディレクトリをマウントします。そのため、すべてのユーザーデータは に保存され、保存され/home、残りは再起動すると失われます。あなたの場合は、/home読み取り/書き込み可能な別の物理パーティションに配置し、後で にマウントするだけで済みます/aufs/home

関連情報