下位レイヤーを交換(オフライン、再起動)することができるマージされたオーバーレイ構造を構築しようとしています。どういうわけか期待どおりに動作しません。私の問題を説明するために、次の例を使用しました。
mkdir lower upper work merged
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
mkdir merged/test
getfattr -n trusted.overlay.opaque upper/test
umount merged
mkdir -p lower/test
touch lower/test/blub.txt
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
ls -la merged/test
umount merged
touch upper/test/bla.txt
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
ls -la merged/test
umount merged
rm -rf lower upper work merged
結果は次のとおりです。
root@linux:/data# mkdir lower upper work merged
root@linux:/data# mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
root@linux:/data# mkdir merged/test
root@linux:/data# getfattr -n trusted.overlay.opaque upper/test
# file: upper/test
trusted.overlay.opaque="y"
root@linux:/data# umount merged
root@linux:/data# mkdir -p lower/test
root@linux:/data# touch lower/test/blub.txt
root@linux:/data# mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
root@linux:/data# ls -la merged/test
total 8
drwxr-xr-x 2 root root 4096 Feb 3 18:30 .
drwxr-xr-x 1 root root 4096 Feb 3 18:30 ..
root@linux:/data# umount merged
root@linux:/data# touch upper/test/bla.txt
root@linux:/data# mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
root@linux:/data# ls -la merged/test
total 8
drwxr-xr-x 2 root root 4096 Feb 3 18:32 .
drwxr-xr-x 1 root root 4096 Feb 3 18:30 ..
-rw-r--r-- 1 root root 0 Feb 3 18:32 bla.txt
root@linux:/data# umount merged
root@linux:/data# rm -rf lower upper work merged
したがって、既定では、空のマージされたオーバーレイファイルに新しいフォルダを作成します。予想通り、このディレクトリが上部に作成されます。しかし、「trusted.overlay.opaque」設定を使用するのはどうですか?
このプロパティを設定した後、サブファイルシステムへの変更は後で非表示になります。変更はオフラインで行われたため、機能する必要がありますか?
Debian(4.19カーネル)とArchlinux(5.10カーネル)でテストされました。
時間をいただきありがとうございます:)