ext4 が使用済みスペースを報告する方法について、少し困惑しています。新しい Debian wheezy (テスト) インストールでは、 と比較して、60GB SSD で常に約 1GB の追加スペースを使用できましたdu
。その後、そのコンピューターをネットワーク ブートし、SSD をマウントしました。ネットワーク ブートした OS (Debian squeeze) では、SSD で使用されている追加スペースは 180MB のみと表示されます。ジャーナルは 128MB なので、それ以上はそれほど多くありません。
によって報告される余分な使用済みスペースはdf
、ルートまたは削除されたファイル用に予約されたスペースではないのに、何ですか? Google を使用すると、ほとんどの場合、私が除外した通常の原因が発生します。また、異なるオペレーティング システムにマウントすると、同じファイル システムでその量が異なるのはなぜですか? 再インストールしてこれをテストしたところ、wheezy インストールでは余分な使用量が再び約 1 GB になり、ネットワーク ブートしてその SSD をマウントすると 180 MB になりました。
XFS と btrfs では、報告される追加の使用量はごくわずかのようです。ファイルシステムには多少のオーバーヘッドが必要であることは理解していますが、そのオーバーヘッドが実際の使用量と混同されると不便です。
詳細な出力は次のとおりです。
df
$ df -m on wheezy
Filesystem 1M-blocks Used Available Use% Mounted on
rootfs 57132 1567 52703 3% /
udev 7899 0 7899 0% /dev
tmpfs 1581 1 1581 1% /run
/dev/mapper/ssd-kvmhost 57132 1567 52703 3% /
tmpfs 5 0 5 0% /run/lock
tmpfs 3162 0 3162 0% /tmp
tmpfs 3162 0 3162 0% /run/shm
デュ
$ du -sm /
592 /
tune2fs
Inode の数は 3670016、サイズは 256 と表示され、実際に使用済みスペースのほとんどがこれで説明できます。Inode は静的に予約されているのに、なぜサイズから減算されないのか理解できません。これをスペースとしてカウントし、その後常に使用済みとしてカウントするのはあまり意味がありません。
以下は、ネットワーク ブートされた Debian squeeze からのまったく同じファイルシステムの出力です。
aufs 7905 46 7859 1% /
tmpfs 7905 0 7905 0% /lib/init/rw
udev 7900 1 7900 1% /dev
tmpfs 7905 1 7905 1% /dev/shm
172.17.172.127:/storage/private/tftp/debian-live-6.0.3-amd64-lxde-desktop
24737 17448 7289 71% /live/image
tmpfs 7905 46 7859 1% /live/cow
tmpfs 7905 0 7905 0% /live
tmpfs 7905 1 7905 1% /tmp
/dev/mapper/ssd-kvmhost
56337 772 52703 2% /mnt
確認のため、ネットワークで起動した OS で du -sm / を実行します。
592 /
おそらく、古いカーネルは静的に予約された inode スペースを使用可能としてカウントしないので、使用済みとして表示する必要がないのでしょうか? 差は Size と Used の両方で 795MB で、inode に必要なスペースのほぼすべてです。では、180MB はいくらでしょうか? これも静的である場合、Size からそれを差し引くのが最適ではないでしょうか? そうすれば、df
他のファイルシステムが行うように、実際の使用状況を表示できます。
私の考えでは、ファイルシステムが静的なオーバーヘッド量を必要とする場合、同じ絶対スペース量に対して他のファイルシステムよりも使用可能なスペースが少なくなるだけです。dfはそれを反映し、使用可能スペース利用した?
答え1
ext[234] はデフォルトで 128 MB のブロック グループあたり 8192 個の inode を予約します。これはグループあたり 2 MB を占め、60 GB のファイルシステムでは 1 GB 近くになります。ドライブを別のシステムにマウントしても違いはありません。カーネルが wheezy と squeeze の間で使用済み領域を報告する方法が変更されたようですが、これが意図的に行われたことを示すコミットはまだ見つかっていません。
答え2
df と du の出力を提供していただければ、質問への回答が容易になります。
しかし、それは df によると、使用されているディスク容量は du より 20G 多いそうです。なぜでしょうか?
基本的に、ファイル システムはディスクの一部を独自のメタデータに使用します。つまり、ファイル自体ではなく、ファイル、その名前、権限、ディスク上の場所などを追跡するために使用されます。
上でリンクした回答にあるように、 を実行すると、tune2fs -l <device name>
より多くの情報が表示されます。特に、inode count
x はとinode size
の差に近くなるはずです。df
du
前回の回答に基づくと、私のシステムのルート パーティションはディスクの約 1.77% を inode に使用しています。60 GB * 0.0177 ~= 1 GB。
180 MBという数字は間違っていると思いますが、ネットワークブートしたシステムの出力など、より詳しい情報がなければ確信が持てませんmount
。たとえば、minixdf
/bsddf
マウント オプション。