overlayfs
インストールされているファイルシステムを使用してオーバーレイを適用しようとしていますarchivemount
。
mkdir -p {upper,work,mount}
tar zcf somefile upper/ work/ mount/
mkdir tmp
archivemount -o allow_root -o fsname=ext4 somefile tmp
sudo mount -t overlay -o lowerdir=/,upperdir=tmp/upper,workdir=tmp/work overlayfs tmp/mount
ただし、次の場合、インストールは失敗します。
mount: /tmp/test8/tmp/mount: wrong fs type, bad option, bad superblock on overlayfs, missing codepage or helper program, or other error.
dmesgを見ると、次のようになります。
overlayfs: filesystem on 'tmp/upper' not supported as upperdir
archivemountがサポートされていないのはなぜですか?この問題を解決する方法はありますか?
ベストアンサー1
これOverlayfs カーネルモジュールに関するドキュメント状態:
trusted.*
親ファイルシステムは通常書き込み可能であり、その場合は拡張属性の作成をサポートし、有効なd_type
応答を提供する必要があるため、readdir
NFSは適切ではありません。
したがって、archivemount
これらの機能のいずれも実装されておらず、次の用途に使用するのに不適当である可能性があります。書き込み可能ファイルシステムを上書きします。
文書は続きます。
2 つの読み取り専用ファイルシステムで構成される読み取り専用オーバーレイは、すべてのファイルシステムタイプを使用できます。
したがって、読み取り専用のオーバーレイがあなたのニーズに十分であれば、それ以上に設定すると下位archivemount
レイヤでも機能します。この場合、すべてを読み取り専用でマウントするだけです。
FUSE インストールを overlayfs で書き込み可能な上位層として使用するのに不適切にする FUSE プロトコル自体に制限はありません。
具体的には、FUSEは拡張属性を照会および設定する関数を公開し、d_type
埋められる実装フィールドも公開します。
ただし、特定のFUSEアプリケーションを使用するには、これらの機能を実装する必要があります。
拡張属性に関する別の技術的制限は、archivemount
すべてのアーカイブ形式が拡張属性の保存をサポートするわけではないため、拡張属性のサポートが実装されていても、サポートされているすべてのarchivemount
アーカイブ形式では機能しない可能性があります。
(文書参照--xattrs
GNU tarオプション詳しくはこちらをご覧ください。 )