2Gバイトの壁
読み:にギガバイトのかべ
外語:2GB wall

 FAT16FAT32環境にある
目次

概要
 FAT16では、扱えるストレージの最大容量が2Giバイトまでという制限がある。これが2Gバイトの壁である。
 またFAT32でも、扱えるファイルサイズの最大容量が2Giバイトまたは4Giバイトまでという制限があり、これも2Gバイトの壁である。
 正確にはギガではなくギビ、つまり「2Giバイトの壁」と呼ぶべきだが、当時はまだGi(ギビ)という単位がなく、このように「2Gバイトの壁」と呼ばれていた。

特徴

FAT16
 FAT16では、クラスター番号を16ビットで指定する。ゆえに、最大でも216クラスターまでしか扱えない(実際には更に少ない)。
 理論上、64セクター/クラスターが最大で、512バイト/セクターの場合は最大で2Giバイト(約2.1Gバイト)まで扱うことが可能である。但し、この場合は1クラスターの大きさが32Kiバイト(512バイト/セクターの場合)にもなり、実用的とは言いがたい。

FAT32
 FAT32では、ファイルサイズは32ビットの数値で表わされるため、232バイト、つまり4Giバイト(約4.2Gバイト)が限界となる。
 プログラムにおいてファイルサイズを32ビットのintで得た時、符号付きのsigned intでは0x7fffffff(2,147,483,647)を超えるとマイナスの値となってしまうため、つまり2Giバイト(約2.1Gバイト)が限界となり、これを超えると誤作動する。
 unsigned intとすることで倍の4Giバイトまでは扱えるが、この場合でもたかだか倍であり4Gバイトの壁となる。

壁の突破
 ファイルシステムの変更が必要で、ストレージ制限についてはFAT32で、ファイルサイズ制限についてはNTFSまたはexFATで、それぞれ壁は突破された。

再検索