この動作は、小規模なバックアップで正確かつ一貫してバックアップできるように、マージされたフォルダを使用するアプリケーションが何をするのかを知る必要があるために必要です。
aufを使用するスクリプトを移行するため、aufで行ったように強制する必要がありますが、これだけではありません。この動作は、私が作成し、うまく機能するレイヤーに不可欠です。
私のすべての作業ブランチ(ディレクトリ)は同じフォルダ(つまり、マージされたフォルダがある場所)のサブフォルダなので、同じ空き領域を共有します。
これらのオプションはうまく機能します。
defaults,allow_other,use_ino,category.action=ff,category.create=ff,category.search=ff
ただし、マージされたフォルダ内のファイルを変更すると、元のフォルダからファイルが削除されます。 :Oと見つかった最初のフォルダに変更されたファイルが作成/更新されます(元の
フォルダファイルに触れてはいけません)
。残ります:O、これは良いことはわかりますが、うまくいきません。
すべてのポイントのフォルダとサブフォルダを読み取り専用に設定すると、ファイルは削除されず、すべての更新が最初のフォルダに移動されます。しかし、まだすべてのブランチ(サブフォルダとファイル)をRWにし、その中の内容を変更して、再びROにすることを忘れないでください。そうでなければ、状況は複雑になります。
だから私はまだそれをAUFSのように動作させることはできません。近いですが、同じではありません。
PS:ubuntu22.04にはもうaufがないので戻りません。
答え1
あなたはできません。 mergefsはオーバーレイ/CoWファイルシステムではありません。
https://github.com/trapexit/mergerfs#how-it-works
mergefs は aufs と overlayfs の CoW (記録中のコピー) またはホワイトアウト動作をサポートしません。読み取り専用ファイルシステムをマウントして書き込むことはできません。ただし、mergefsは新しいファイルを作成するときに読み取り専用ドライブを無視するため、読み取り/書き込みドライブと読み取り専用ドライブを混在させることができます。また、ドライブ間でデータを分割しません。 RAID0/ストライピングではありません。それは他のファイルシステムの組み合わせです。
答え2
私はこれを使用しています:
mergerfs -o "defaults,allow_other,use_ino,category.action=ff,category.create=ff,category.search=ff" "FolderWriteHere:Folder1:Folder2" FinalMergedFolder
これで、マージされたすべてのフォルダ(Folder1、Folder2など)を読み取り専用にする必要があります。
ただし、「mergerfs」で「デバイスに空き領域がありません」というエラーが表示された場合は、FolderWriteHereにファイルを書き込もうとするときに、FinalMergedFolderに少なくとも4.2GBの空き容量があることを確認する必要があります(少なくともmergefs 2.33の場合)。 .3 この制限があります。つまり、空き容量が4.2GB未満になるとエラーが再び発生することになります。理由を知っている人はいますか?
さらに、このマージでは単一のパーティション/メディア/ドライブ/ディスク(すべてのフォルダが同じパーティションを共有する)のみを使用するため、複数のパーティション/ディスクで何が起こるのかわかりません。