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/myimage
。 home.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,...