Windows 7のNTFSのクラスタサイズの上限が4 KBなわけがない

また馬鹿が嘘をまき散らしているのを見たので。

www.nslabs.jp

正しくは次のとおりです

とかほざいてるこいつ自身が間違ってる。

Windows 7以前の最大クラスタサイズは4KB

Windows 7以前のクラスタサイズの上限が4 KBなわけねえだろ。

お前の頭の中では「NTFS 圧縮は、4096 より大きいアロケーション ユニット サイズに対してはサポートされません。*1」って話はWindows 8で初めて出てきた話なのかよ。

Web上には、相互に異なることを書いてあるページが多数あり、混乱します。

よかったな。お前がその原因の一人だ。

NTFS の制限

正しく直してあげます。

  1. 一つの volume の大きさが, クラスタの数が 232 まで, という制限を受ける. ここで, 新しい OS では 264 まで、といった記述はすべて誤りです。
  2. ディスクドライブのクラスタの大きさによって, volume の大きさの上限が決まる. ここが Windows のバージョンによって異なります.
  3. ファイルサイズの上限は, volume の上限と同じではありません.
  4. Windows 7以前のクラスタサイズの上限は4 KBではありません.
Windowsバージョン クラスタサイズの上限 volumeサイズの上限 ファイルサイズの上限
Windows 7, Windows Server 2008 R2 以前 64 KB 256 TB 16 TB
Windows 8 〜 10 v1703, Windows Server 2012 〜 2016 64 KB 256 TB 256 TB
Windows 10 v1709, Windows Server 2019以降 2 MB 8 PB

8 PB

 

ふと思い至ったことが一つある。

もしかしてこいつは「クラスタサイズの上限」と「デフォルトクラスタサイズの上限」の区別がついてないうえにクラスタサイズを変更してフォーマットする方法を知らないんじゃないのかと。

スパースファイルを使ってんのに「ファイルサイズの上限とボリュームサイズの上限は同じ」って言ってることからもそれが伺える。Windows 7以前でクラスタサイズを2 KBにしたら最大ボリュームサイズ8 TB・最大ファイルサイズ16 TBになるからな。スパースファイルなんだからボリュームサイズ超えたって別に問題ない。*2

話を戻すとWindows 7まではデフォルトクラスタサイズの上限が4 KBだった。*3

こいつはハードコードされてて16 TB超のボリュームをフォーマットしても自動的に8 KBが選択されずにフォーマットが失敗する。

ここまでの文章を書きながら並行して実際にそうだったのか確かめていたら、重大な誤りが発覚。

16 TB超のボリュームをフォーマットしようとしたとき自動的に8 KBやそれ以上が選択されるようになったのはWindows 7から。Windows 7発売当時にすでにその記述が存在している*4

残念ながらこの馬鹿を擁護できる理屈がなくなりました。

こいつは「ファイルサイズの上限は, volume の上限と同じ」という間違った自説からファイルサイズの上限が16 TBならばボリュームサイズの上限は16 TBでありならば16 TB÷UINT32_MAXは4 KBであるという謎理論を導いたか、Windows 7で何もテストしなかったとしか考えられん。

まとめ

馬鹿は間違った自説に矛盾する現実を無視する。

*1:Default Cluster Size for FAT and NTFS "NTFS compression is not supported for allocation unit sizes above 4K."

*2:逆にWindows 8以降は最大ファイルサイズがクラスタサイズに依存するようになったから作れないけど。[MS-FSA]: Appendix A: Product Behavior | Microsoft Docs

*3:2020-04現在、MSKB 140365に書いてある表はデタラメだぞ。

*4:Over2TB - wiki@nothing "7/2008 R2では大容量でのデフォルトクラスタサイズがフォーマット可能なように変更されました。"