web-dev-qa-db-ja.com

dfは、パーティションにファイルがない場合に33MBが使用されると言います

空のパーティションに対してシステムで「df-ha」を実行すると、33MBが使用されたと報告されます。

/dev/sdb2        16G   33M   16G   1% /mypartition

しかし、パーティションにはファイルがありません。

ls -lha /mypartition/
total 0
drwx------ 2 root root  6 Feb 16 21:09 .
drwxr-xr-x 5 root root 57 Feb 17 06:26 ..

'df'が使用済みのスペースを報告する原因は何でしょうか?

1
binarylegit

これは完全に正常です。ファイルシステム(たとえばext4)を作成すると、ファイルが作成される前に多くのオーバーヘッドが発生します。これは予約済みスペースであり、断片化の可能性を低くし、主にのためにfsck用​​のスペースを確保する目的で使用されます。 rootユーザーは、そのパーティション上のファイルを使用するサービスが、一部のlocalユーザー入力によってスペースから除外されないことを保証しますすべてのスペース。ファイルシステムが異なれば、予約するスペースも異なります。

フォームman tune2fs

-m予約済み-ブロック-パーセンテージ

          Set the percentage of the filesystem which may only be allocated
          by  privileged  processes.   Reserving some number of filesystem
          blocks for use by privileged processes is done to avoid filesys‐
          tem  fragmentation,  and  to  allow system daemons, such as sys‐
          logd(8), to continue to function correctly after  non-privileged
          processes  are  prevented  from writing to the filesystem.  Nor‐
          mally, the default percentage of reserved blocks is 5%.

したがって、ファイルシステムを作成する場合、デフォルトは5%の予約済みブロックです。この予約ブロックは、ファイルシステムの作成時に必要に応じて調整できますmkfs.ext4 -m <X> /dev/sdaXtune2fs -m <X> </dev/sdaX>コマンドを使用してファイルシステムを作成した後、この値を調整することもできます。

予約済みのブロックを削除する場合のように:

tune2fs -m 0 /dev/sdaX

-m0を使用しないことを強くお勧めします。予約済みのスペースがあるのには理由があります。予約ブロックがない場合(-m 0)でも、ファイルシステムの内部管理に使用されるスペースの一部が常に存在します。

また、オーバーヘッドはiノードテーブルから発生し、ファイルシステムに割り当てるiノードの数に完全に依存します。 iノードのデフォルトサイズは256バイトです。

そして、CLIでこれを確認する方法はありません。できることは、さまざまなLinuxディストリビューションでさまざまなサイズと予約済みスペースを持つさまざまなファイルシステムを作成し、結果を比較することです。

予約済みスペースがrootユーザー専用であることを確認するには

Reserved Space

3