今回は仕事の体験談から。
仕事でSSDにデータを入れて、物理的にデータを受け渡す機会があったのですが、同じデータを入れているのにディスクの空き容量に違いがあってSSDが片方だけ一杯になってしまった!ということがあったので詳しく調べてみました。
ディスク上のサイズについて
ディスクの容量を調べる時、Windowsの「プロパティ」やMacの「情報を見る」から調べることが出来ます。

SSDなどの保存媒体にデータを保存する時、「サイズ」と「ディスク上のサイズ」の数値に違いが出ます。
普段は気にならない程度の差ですが、PCの使い方によってこのサイズの数値の違いが大きくなってしまい、思った以上に「ディスク上のサイズ」が増えて入らない!なんてことが起きます。
その理由について詳しく説明していきます。
アロケーションユニットサイズ
さっそく難しい単語が出てきてしましたが、極力分かりやすく解説するので安心してください。
1つのファイルを保存する時、PCではそのファイルの容量ぴったりでは保存せずにPCで使いやすい区切りを用意して、その中にファイルを保存します。




ロッカールームに荷物を入れていくようなイメージです。
荷物の大きさはサイズ、使っているロッカーがディスク上のサイズです。
ロッカーの大きさ = アロケーションユニットサイズであり、ディスクの中に作られた区切りの大きさになります。
ディスク単位でアロケーションユニットサイズが決まっていて、その単位ごとにファイルが保存されます。
サイズが大きいファイルは複数のロッカーにまたがって保存されます。
それぞれ例えると、
アロケーションユニットサイズが大きいディスク
→ 大きいロッカーは沢山ありますが、多くの人の荷物は入れられません
→ 容量が一杯になりやすくなります
アロケーションユニットサイズが小さいディスク
→ 小さいロッカーは沢山ありますが、探すのが大変です
→ 断片化という現象が起き、アクセスが遅くなることがあります。
「アロケーションユニットサイズの違いの画像」
以上をまとめると
- ディスクは膨大な量のロッカールーム
- アロケーションユニットサイズはロッカーの大きさ
- ロッカー単位でファイルを保存している
- サイズが大きいファイルは複数のロッカーにまたがって保存される
となります。
ファイルシステムとアロケーションユニットサイズ
アロケーションユニットサイズはファイルシステムと密接な関係を持っています。
ディスクをフォーマットを選択する時、
Windowsでは「NTFS」「exFAT」
Macでは「APFS」「Mac OS 拡張」「exFAT」「MS-DOS(FAT)」
など、ファイルシステムを選択することが出来ますが、 ファイルシステムによってアロケーションユニットサイズの選択肢が変わります。
衝撃の32倍差…!!
容量が多いほどexFATはアロケーションユニットサイズが大きくなるようで、2TBのディスクだと最小でも128KBのアロケーションユニットサイズになります。
【参考資料】 https://support.microsoft.com/ja-jp/help/140365/default-cluster-size-for-ntfs-fat-and-exfat
画像はWindowsの場合ですが、Macでも同様にAPFSは4KB、exFATは128KBで設定されます。
ファイルシステムの特徴
ではexFATではなく、NTFSなどのOS特有のファイルシステムにすべきなのでしょうか?
そうとは限りません。exFATにも強みがあります。
Windows | Mac | |
NTFS | Read:◯ Write: ◯ | Read:◯ Write: ✕ |
APFS | Read:✕ Write: ✕ | Read:◯ Write: ◯ |
exFAT | Read:◯ Write: ◯ | Read:◯ Write: ◯ |
こちらの表を見ても分かるように、exFATはWindows/Macどちらでも読み書きが出来るファイルシステムです。
つまり、exFATはWindows/Mac両方で使いたいディスクの場合には適していると言えます。
結局何を使えば良いのか
色々書いてきましたが、結局何を使えば良いのでしょうか?
それは用途によって合わせることが大切です。
・WindowsPCの人にしかデータを渡さない
・Windowsのプログラムの保存先にしたい
→ NTFSが最適
・MacPCの人にしかデータを渡さない
・Macのプログラムの保存先にする
→ APFSが最適
・不特定多数の人にデータを渡す
・今後どんな用途に使われるか分からない
→ exFATが最適
という形になります。
どうしてもexFATを使いたいけど容量が…という場合
Windows/Macで両方で使いたいけど、容量が限界になってきた場合は必ず来ると思います。
その場合、複数のファイルを1つのアーカイブファイルに圧縮することが有効です。




ファイル数が少ないほど効果は薄れてしまいますが、gitやUnityなどのキャッシュファイルが大量に出るものを受け渡しする場合はぜひ参考にしてください。
ここまで読んで頂きありがとうございました!
コメント