私はバックアップを2つの1.5 GBの外付けハードドライブに保存します。両方とも、最近まで、NTFSでフォーマットされていました。 2つは私のファイルとフォルダーの同一のコピーを保持します。最近、ext4に変更することを決めたので、ハードドライブの1つを再フォーマットし、そこにすべてをコピー(rsync)しました。驚いたことに、新しいext4ドライブに約100 GB少ない空き領域があったので、原因を調査しました。
両方のドライブの空き容量を確認しましたが、使用したすべてのアプリケーション/ツールでまったく異なる量が表示されました。
Ext4ドライブの場合:
したがって、空き容量は196 GBから285 GBの範囲で、ほぼ100 GBの違いがあります。
Ntfsドライブ(他のドライブと同じコピーを保持)の場合:
このハードドライブの場合、空き容量はより一貫して測定され、20 GBの範囲しかありませんでした。
だから私の質問:本当はどれですか?どれを本当に信じるべきですか?なぜ彼らはそのような異なるスペースサイズを報告するのですか?特にそのようなLinux(ext4)のネイティブ形式に?そして、なぜ2つのシステムの空きスペースにこのような大きな違いがあるのでしょうか。 ext4ドライブの空き容量が増えると思いました。
洞察をありがとう!
ファイルサイズとその結果の空き領域は、アプリケーション間で一貫して計算されません。
これは、ファイルシステムの性質によるものです。データはドライブのblocksに保存されます。一般的なブロックサイズは4096です。つまり、ブロックごとに最大4096バイトのデータを含めることができます。
1バイトのデータのみを含むファイルがある場合、実際にはハードドライブの4096バイトの領域を占有します。
同様に、4097バイトのデータを含むファイルがある場合、2つのブロック、または8192バイトのストレージが予約されます。
各ファイルのデータのサイズをカウントするアプリケーションがある場合、使用されているすべてのブロックの合計をカウントするアプリケーションよりも小さい値になります。
多くのアプリケーションは、ファイルサイズを計算するときに、いくつかの「トリック」を使用してファイルサイズを推定またはキャッシュするため、システムが実際にハードドライブの内容全体を読み取る必要はありません。これは、アプリケーション間の違いを引き起こす可能性もあります。
別の例として、 ls -l
がls -s
とは異なるサイズを出力する理由をご覧ください。
空き/使用済みファイルサイズが異なるアプリケーションによって異なる方法で報告されるいくつかの追加の理由: