Overlayfsはarchivemountをカバーします。

Overlayfsはarchivemountをカバーします。

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応答を提供する必要があるため、readdirNFSは適切ではありません。

したがって、archivemountこれらの機能のいずれも実装されておらず、次の用途に使用するのに不適当である可能性があります。書き込み可能ファイルシステムを上書きします。

文書は続きます。

2 つの読み取り専用ファイルシステムで構成される読み取り専用オーバーレイは、すべてのファイルシステムタイプを使用できます。

したがって、読み取り専用のオーバーレイがあなたのニーズに十分であれば、それ以上に設定すると下位archivemountレイヤでも機能します。この場合、すべてを読み取り専用でマウントするだけです。


FUSE インストールを overlayfs で書き込み可能な上位層として使用するのに不適切にする FUSE プロトコル自体に制限はありません。

具体的には、FUSEは拡張属性を照会および設定する関数を公開し、d_type埋められる実装フィールドも公開します。

ただし、特定のFUSEアプリケーションを使用するには、これらの機能を実装する必要があります。

拡張属性に関する別の技術的制限は、archivemountすべてのアーカイブ形式が拡張属性の保存をサポートするわけではないため、拡張属性のサポートが実装されていても、サポートされているすべてのarchivemountアーカイブ形式では機能しない可能性があります。

(文書参照--xattrsGNU tarオプション詳しくはこちらをご覧ください。 )

おすすめ記事