Windowsで説明されるサイズとディスク上のサイズの違い

ファイルエクスプローラでファイルのプロパティを開くと、ファイルの実際のサイズを表示できます。気づいたことがあるかもしれませんが、ファイルのプロパティには同じファイルに対して2種類のサイズが示されます。つまり、サイズディスク上のサイズです。ディスク上のサイズは通常、実際のファイルサイズよりも大きくなります。ただし、場合によっては実際のファイルサイズと同じか、それよりも小さくなることがあります。この記事では、Windows PCでのサイズとディスク上のサイズの差について説明します。

サイズとディスク上のサイズの違いの説明

「サイズ」と「ディスク上のサイズ」の違いについて詳細に説明する前に、これらの用語の基本的な違いを見てみましょう。ここでは、「ディスク上のサイズ」の正確な結果と概算の結果を示す計算も紹介します。以下のスクリーンショットは、ファイルのサイズと「ディスク上のサイズ」を示しています。

サイズは、ファイルの実際のサイズを表します。簡単に言えば、ファイルが保持するデータのサイズです。ファイルが保持するデータに基づいて、サイズは増減します。たとえば、空のテキストファイルを作成すると、0バイトのサイズが表示されます。しかし、テキストを書き始めると、サイズも大きくなり始めます。

ディスク上のサイズは、ハードドライブにファイルを保存するときにファイルが占有するバイト数を示します。割り当て単位のサイズに基づいて、同じファイルに対して異なるディスク上のサイズが表示されます。通常、「ディスク上のサイズ」は、ファイルの実際のサイズよりも大きくなります。これを理解するには、計算を理解する必要があります。しかし、計算を示す前に、データがハードドライブにどのように格納されるかを知っておく必要があります。

データはどのようにハードドライブに格納されるか

ハードドライブにデータを保存すると、Windowsはそれを2進値、つまり0と1に変換します。これらの値は、ハードドライブのクラスタに保存されます。クラスタサイズは、ファイルの保存に使用されるディスク領域の小さな量を表します。Windowsでは、通常、3種類のファイルシステムが利用可能です。NTFS、FAT 32、exFATです。これらのファイルシステムはすべて、異なる割り当て単位サイズをサポートしています。選択したファイルシステムとその割り当て単位サイズに基づいて、「ディスク上のサイズ」が計算されます。Windowsはこの計算の後、ファイルのプロパティに同じものを表示します。

ハードドライブまたはハードドライブパーティションをフォーマットするときに、クラスタサイズを選択できます。クラスタサイズを指定しない場合、Windowsはクラスタサイズの既定値を使用してハードドライブまたはハードドライブパーティションをフォーマットします。

ファイルを保存すると、クラスタに保存されます。ファイルのサイズ(ファイルが保持するバイト数)に基づいて、クラスタに分散されて保存され、「ディスク上のサイズ」が決まります。たとえば、NTFSファイルシステムとクラスタサイズ(割り当て単位サイズ)1024バイトのハードドライブに5KBのファイルを保存する場合、5キロバイトは分割され、各クラスタが1024バイトのデータを持つ異なるクラスタのセットに保存されます。最後のクラスタに残っている空のバイト数は無駄になります。そのため、「ディスク上のサイズ」は通常、実際のファイルサイズよりも大きくなります。

ディスク上のサイズの計算

それでは、ディスク上のサイズの計算をいくつか見てみましょう。そうすれば、このトピックをより深く理解できるでしょう。NTFSファイルシステムの異なるクラスタサイズで、異なるサイズのテキストファイルの計算をいくつか行いました。ここでは、それらを示し、これらの計算を説明します。

割り当て単位サイズが4096バイトの場合のディスク上のサイズの計算

サイズが24223バイトのテキストファイルを取り、割り当て単位サイズが4096バイトのNTFSファイルシステムのUSBフラッシュドライブにコピーしました。割り当て単位サイズは、USBフラッシュドライブのクラスタサイズです。テキストファイルのプロパティを開くと、以下の詳細が表示されました。

  • サイズ – 24223バイト
  • ディスク上のサイズ – 24576バイト

上記のスクリーンショットで同じ情報を確認できます。この記事で上で説明したように、「ディスク上のサイズ」は通常、実際のファイルサイズよりも大きくなります。これは、ファイルの保存中にクラスタが無駄になるためです。舞台裏の計算を見てみましょう。

実際のファイルサイズは24223バイトで、選択したクラスタサイズは4096バイトです。さて、Windowsはこのファイルをクラスタに保存します。これは、24223バイトがディスク上の4096クラスタのセットに分散されることを意味します。「4096クラスタのセット」と言うのは、各クラスタ(割り当て単位)は最大4096バイトのデータを保持できるからです。

24223バイトを4096バイトで割ると、以下の結果が得られます。

24223/4096 = 5.9138バイト

上記の結果から、5セットのクラスタが完全に占有され、最後の6番目のセットには空のクラスタがいくつかあることがわかります。Windowsは、これらの空のクラスタを他のデータを保存するために使用しません。このため、これらのクラスタは無駄になります。しかし、同じファイルのデータを上書きすると、Windowsは同じクラスタを使用します。

さて、4096クラスタの5セットが完全に占有されています。これにより、以下の値が得られます。

5 x 4096 = 20480バイト

データの合計は24223バイトです。このうち、20480バイトはクラスタの5セットに完全に占有されています。したがって、データの残りのバイトは次のとおりです。

24223 - 20480 = 3743バイト

Windowsは、クラスタの最後のセット、この場合は6番目のクラスタに、これらの3743バイトをすべて埋め込みます。各クラスタは4096バイトを保存できます。したがって、残りの空のクラスタは次のとおりです。

4096 - 3743 = 353バイト

さて、これらの残りまたは空のバイトは、ファイルが持つ実際のバイトに追加されます。これにより、実際の結果(「ディスク上のサイズ」)が得られます。

353 + 24223 = 24576バイト

上記の結果では、「ディスク上のサイズ」は24576バイト(各クラスタが最大4096バイトを保存できる6セットのクラスタ)が完全に占有されていることを示しています。しかし、実際には、6セットのクラスタの5.9138部分のみがデータの保存に使用され、残りは無駄になっています。

割り当て単位サイズが8192バイトの場合のディスク上のサイズの計算

さて、別のファイルを取り、USBフラッシュドライブの割り当て単位サイズを4096バイトから8192バイトに変更しました。

上記のスクリーンショットは、ファイルの以下の詳細を示しています。

  • サイズ– 5202バイト
  • ディスク上のサイズ– 8192バイト

ここでは、計算は簡単です。ファイルサイズが割り当て単位サイズよりも小さい場合、割り当てサイズが8192バイトのクラスタの1セットにのみ完全に収まり、残りのバイトは無駄になります。したがって、Windowsはこのファイルのディスク上のサイズとして8192バイトを表示しています。

割り当て単位サイズが1024バイトの場合のディスク上のサイズの計算

では、同じファイルの割り当て単位サイズを8192バイトから1024バイトに減らしたらどうなるかを見てみましょう。USBフラッシュドライブをクラスタサイズ1024バイトでフォーマットし、同じファイルをコピーしました。

以下のファイルのプロパティを見てみましょう。

  • サイズ– 5202バイト
  • ディスク上のサイズ– 6144バイト

ここでは、クラスタサイズがファイルの合計サイズよりも小さいので、ファイル内のバイト数はハードドライブ上の1024バイトのクラスタのセットに分散されます。ここでは、各クラスタは最大1024バイトを保持できます。

5202バイトを1024バイトで割ると、以下の結果が得られます。

5202/1024 = 5.08バイト

これは、1024バイトの割り当て単位の5セットが完全に占有され、残りのバイトが次のセットに埋められることを意味します。

5 sets of 1024 bytes = 5 x 1024 bytes = 5120 bytes

5120バイトがディスクに完全に書き込まれます。ディスクに書き込まれる残りのバイト数を計算してみましょう。

5202 - 5120バイト= 82バイト

Windowsは、割り当てサイズが1024バイトのクラスタの最後の6番目のセットに82バイトを書き込みます。したがって、クラスタの最後のセットに残りのバイトが残ります。

残りのバイト数、1024 - 82 = 942バイト

これらの残りまたは空のバイトは、ファイルが持つ実際のバイトに追加されます。これにより、実際の結果(「ディスク上のサイズ」)が得られます。

5202 + 942 = 6144バイト

このようにして、「ディスク上のサイズ」が計算されます。1つのファイルに対してのみ、「ディスク上のサイズ」の計算を示しました。

場合によってはサイズとディスク上のサイズに大きな違いがあるのはなぜですか?

ハードドライブにファイルをコピーすると、Windowsはすべてのファイルを同時にコピーしません。割り当て単位にバイトを埋めることで、ファイルを1つずつコピーします。データの書き込み後、Windowsは空または無駄な割り当て単位を計算し、実際のファイルサイズに追加してディスク上のサイズを表示します。

これが、場合によってはファイルの実際のサイズと「ディスク上のサイズ」に大きな違いが見られる理由です。

サイズとディスク上のサイズの差を減らす方法

ディスク上のサイズが大きいほど、無駄も大きくなります。したがって、実際のファイルサイズとディスク上のサイズの差を減らしたい場合は、割り当て単位サイズを減らす必要があります。

同じファイルの実際のサイズと、2つの異なる状況でディスク上に占めるサイズの差を確認できます。ディスク上のサイズが6144バイトと表示されている画像では、割り当て単位サイズは1024バイトです。2番目の画像で「ディスク上のサイズ」が32768バイトと表示されている場合、割り当てサイズは32キロバイトです。したがって、割り当て単位サイズが小さいほど、ファイルのサイズと「ディスク上のサイズ」の差が小さくなることがわかります。

割り当て単位サイズまたはクラスタサイズを減らすには、以下の手順に従います。ストレージデバイスまたはハードドライブパーティションのフォーマットを開始する前に、そのデータを別のストレージデバイスにコピーします。

  • ストレージデバイスまたはハードドライブパーティションを右クリックします。
  • フォーマットを選択します。
  • 割り当て単位サイズドロップダウンをクリックします。
  • 使用可能なオプションのリストから割り当てサイズを選択します。
  • 開始をクリックしてハードドライブをフォーマットします。

ストレージデバイスまたはハードドライブパーティションのフォーマットが正常に完了したら、データをコピーして戻すことができます。

ディスク上のサイズ0とはどういう意味ですか?

ファイルのプロパティのディスク上のサイズは、選択したファイルに対して0バイトと表示される場合があります。これは通常、ファイルにクラスタに埋められるのに十分なデータが含まれていない場合に発生します。すべてのクラスタが空の場合、「ディスク上のサイズ」は0バイトと表示されます。

ディスクサイズはどのような用途で使用されますか?

ディスクサイズは、データを保存するために使用されます。ディスクのサイズは、ディスクの管理アプリで確認できます。「ディスク上のサイズ」について話す場合、それはクラスタまたは割り当て単位でディスクにデータを保存するために使用されるバイト数です。