2Gバイトの壁
読み:にギガバイトのかべ
外語:2GB wall
FAT16
や
FAT32
環境にある
壁
。
目次
概要
特徴
FAT16
FAT32
壁の突破
概要
FAT16では、扱えるストレージの最大容量が2Giバイトまでという制限がある。これが2Gバイトの壁である。
またFAT32でも、扱えるファイルサイズの最大容量が2Giバイトまたは4Giバイトまでという制限があり、これも2Gバイトの壁である。
正確にはギガではなくギビ、つまり「2Giバイトの壁」と呼ぶべきだが、当時はまだ
Gi
(ギビ)という単位がなく、このように「2Gバイトの壁」と呼ばれていた。
特徴
FAT16
FAT16では、クラスター番号を16ビットで指定する。ゆえに、最大でも2
16
クラスターまでしか扱えない(実際には更に少ない)。
理論上、64セクター/クラスターが最大で、512バイト/セクターの場合は最大で2Giバイト(約2.1Gバイト)まで扱うことが可能である。但し、この場合は1クラスターの大きさが32Kiバイト(512バイト/セクターの場合)にもなり、実用的とは言いがたい。
FAT32
FAT32では、ファイルサイズは32ビットの数値で表わされるため、2
32
バイト、つまり4Giバイト(約4.2Gバイト)が限界となる。
プログラムにおいてファイルサイズを32ビットの
int
で得た時、符号付きのsigned intでは0x7fffffff(2,147,483,647)を超えるとマイナスの値となってしまうため、つまり2Giバイト(約2.1Gバイト)が限界となり、これを超えると誤作動する。
unsigned int
とすることで倍の4Giバイトまでは扱えるが、この場合でもたかだか倍であり
4Gバイトの壁
となる。
壁の突破
ファイルシステム
の変更が必要で、ストレージ制限については
FAT32
で、ファイルサイズ制限については
NTFS
または
exFAT
で、それぞれ壁は突破された。
再検索