低サブマウント位置にオーバーレイをマウントする方法は?

低サブマウント位置にオーバーレイをマウントする方法は?

chroot環境用にOverlayfsを設定しようとしています。環境は、複数の読み取り専用squashfsファイルシステム(下)と書き込み可能ディレクトリ(上記)で構成されています。

トリッキーな部分は、1つのsquashfsファイルシステムにのみchrootのルートディレクトリがあり、他のファイルシステムにはルートに戻る完全な祖先チェーンが含まれていないことです。だから私は次のことを試みます:

mount -o ro,loop base.squash /media/foo/myimage
mount -o ro,loop home.squash /media/foo/myimage/home/
mount -t overlay overlay -o lowerdir=/media/foo/myimage,upperdir=/var/lib/myimage,workdir=/var/chache/myimage /media/bar

/media/barこれは次のような(素晴らしい)結果をもたらしました。ただ base.squashそして/var/lib/myimagehome.squash無視 空白のままにします/media/bar/home

追加のサブレイヤーとして追加する方法についてドキュメントを見てみましたが、home.squashすべてのレイヤーがルートの祖先ディレクトリの完全なチェーンを含むと仮定しているようです/

コンテンツを変更せずにsquashfsイメージをどのようにマウントするのですか?

ベストアンサー1

この問題の解決策を見つけました。ファイルシステムのマージ入れ子になった複数のマウントの階層を、 overlayfs が動作する単一のマウントポイントに再マップします。例えば

mount -o ro,loop file1 /mnt/dir/part1
mount -o ro,loop file2 /mnt/dir/part2
mount.mergerfs /mnt/dir /mnt/view
mount -t overlayfs lowerdir=/mnt/view,... 

おすすめ記事