SquashFSを使用し、他のコンピュータにはr / oでマウントするルートファイルシステムを含むディレクトリがあります。
しかし、SquashFS以前は、ファイルシステムからすべてのユーザーネームスペースxattrsを消去したいと思います。これはgetfattr
小さなループスクリプトの場合は些細なことですが、依存関係setfattr
として導入するのを避けたいと思います。
トリッキーな部分は、ユーザーxattrsだけを消去したいということです。セキュリティーxattrsにはSELinuxタグが含まれているため、維持する必要があります。したがって、単にSquashにxattrsを収集しないように指示することはオプションではありません。
私が持っている1つのアイデアは、ファイルシステムのサイズを特定し、そのサイズの空のファイルを割り当て、ext4でフォーマットし、を使用してマウントし、-o nouser_xattrr
そこにファイルをコピーして圧縮することでした。これはうまくいきますが、面倒でファイルを収容するのに十分なスペースがあることを願っています。 xattrのサポートがなく、メモリが不足している可能性があるため、tmpfsは機能しません。
別のアイデアがありますか?
答え1
GNU tarはxattrsを読み取ってフィルタリングできます。https://www.gnu.org/software/tar/manual/html_node/Extended-File-Attributes.html。
sqfstar
tarアーカイブからSquashfsファイルシステムを作成することができます(バージョン4.5以降)。
そのように
tar --xattrs --xattrs-exclude='user.*' -c your-directory | sqfstar img.sqfs
動作する必要があります。