ext4 ファイルシステムの最大ファイルサイズ制限

ext4 ファイルシステムの最大ファイルサイズ制限

Ext4の最大ファイルシステムサイズは1EB、最大ファイルサイズは16TBです。

しかし、ファイルシステムレベルで最大ファイルサイズを減らすことは可能ですか?たとえば、指定された値(1MBなど)を超えるファイルの生成を許可したくありません。 ext4でこれを達成する方法は?

ext4以外の場合、他の最新のファイルシステムはこれらの機能をサポートしていますか?

答え1

ext4max_dir_size_kbサイズを制限するインストールオプションがあります目次しかし、通常のファイルには同様のオプションはありません。

setrlimit()ただし、特定のシェルで設定した制限または組み込みの制限を使用して、プロセスが制限ulimitより大きいファイルを生成しないようにすることができます。limitほとんどのシステムでは、各ユーザーに対してシステム全体にわたってこれらの制限を設定することもできます。

プロセスがこの制限を超えると、SIGXFSZシグナルを受け取ります。この信号を無視すると、ファイルサイズを超える操作(write()システムtruncate()コールなど)がエラーで失敗しますEFBIG

この制限をファイルシステムに移動するために使用できる1つの方法は次のとおりです。ヒューズ(ユーザースペースのファイルシステム)この制限セットでユーザースペースハンドラが起動されるファイルシステム。bindfs良い候補です。

実行する場合bindfs dir dir(つまり、バインディングdir自体)、bindfs開始を次のように使用します(zsh構文)。

(limit filesize 1M; trap '' XFSZ; bindfs dir dir)

これにより、このディレクトリに1Mを超えるファイルを作成しようとすると失敗します。ファイルを書き込むプロセスにエラーをbindfs渡します。EFBIG

この制限は通常のファイルにのみ適用され、ディレクトリが制限を超えて大きくなるのを防ぎません(たとえば、その中に多数のファイルを作成するなど)。

答え2

システムレベルで設定する必要があります。

Ubuntu編集の場合/etc/security/limits.conf

次の行を追加します。

timb        hard    fsize           10000

ワイルドカード文字を使用することもできます。

session required pam_limits.soAFAIKに追加しないと、ルートでは機能しません/etc/pam.d/common-session

関連情報