FARLAND PARTY
ひびきつくねの ファーランドパーティ
Last Update : 2001.11.01

Copyright T.Hibiki 2001

ハードディスクのお約束

→ひとつ前に戻る

大容量ハードディスクを使うためには

 最近のパソコンには、以前では考えられなかったような大容量ハードディスク(以下HD)が標準で搭載されている。例えば1995年1月に購入したパソコンでは1GBのHDであったものが、1999年10月に購入したパソコンでは、大きいものでは30GBのHDであったりする。
 そこで、実際に店頭でHDの価格を調査すると、1999年11月現在で10GBを超えるHDも1万円ちょっとという状況である。こうなれば、一般ユーザーである私たちがHD増設を簡単に考えるのも当然の結果となるわけだが、古いパソコンで大容量HDを使用する場合に思わぬ落とし穴があることを、ここから説明していくことにする。

 ただし、ここで述べているHDは「内蔵型」である。一般にパソコン内部に装着する、「IDE」と呼ばれる規格のHDである。外付けSCSI機器には当てはまらないことに注意して頂きたい。



1.パソコンが使用できるHD容量には、限界がある。

 特に古いパソコンでは、大容量HDが正しく認識されないといった症状が顕著に見られる。これは、インターフェースやハードディスクBIOS(バイオス:Basic Input/Output System)の仕様によって扱える最大容量が決まっているからである。

 HDの構造を見ると、複数枚の磁気ディスクが回転し、その1枚ごとに用意されている磁気ヘッドがディスクにアクセスし、データを書き込んだり(保存)読み込んだり(読み出し)する。
 磁気ディスクにはデータを保存するために、システムとして様々な区切りを入れる。ディスク中心から同心円上に区切られているトラック」と呼ばれる領域、丸いケーキをナイフで等分するように、トラックを区切ったセクタ」と呼ばれる領域がそれである。またマイクロソフト社OSのFATと呼ばれる規格に基づく、ファイルを保存するための最小の区切りである「クラスタ」などもある。
 HDは複数枚の磁気ディスクからなるため、中心から同じ距離にあるトラックがディスクの枚数だけ存在する。この同じトラックの集まりを「シリンダ」という。データの保存は、ディスクの一番外側のトラック(シリンダ)から使用され、そのシリンダの全トラックが埋まったのち、磁気ヘッドが内側に移動する、といった仕組みになっている。


(1)528MB

 データの読み書き等でHDにアクセスする場合には、BIOSがそのアクセス位置を特定するために「INT13」というインターフェースを用いる。INT13は、シリンダ(10ビット),ヘッド(8ビット),セクタ(6ビット−1)の3つのパラメーター(計24ビット:頭文字を並べてCHSとも言う)をもって、HDの場所を指定する。ここで、セクタは0番目からではなく1番目から使用されるので、−1されている。
 つまり、使用できるセクタの数は次のように計算される。

 10ビット×8ビット×(6ビット−1)
= 1024× 256×      63 =16515072

 また、一般のディスクフォーマットでは1セクタ=512バイトなので、これをセクタ数に掛け算することで、INT13で扱える最大容量が計算される。

 16515072× 512 =8455716864 =8.4GB
 (1kB=1024Bで換算 : =7.9GB)

 これに対して、HD専用のインターフェースである「IDE」でもINT13と同じように3つのパラメーターをもってセクタの位置を確認する。シリンダ(16ビット),ヘッド(4ビット),セクタ(8ビット)である(計28ビット)。これを、先ほどと同じように計算し、セクタ数および最大容量を求めると次のような結果になる。

 16ビット×4ビット×(8ビット−1)
=65536×  16×     255 =267386880

 267386880×512 =136902082560 =136GB
 (1kB=1024Bで換算 : =128GB)

 しかし、これら3つのパラメータを利用すると、INT13とIDEのパラメータでそれぞれの限界を超えるわけにはいかず、小さいほうの値を用いなければならない。次の計算のように528MB(換算:504MB)が上限となってしまうのである。これが、HD容量の最初の限界であった。

 10ビット×4ビット×(6ビット−1) ×512
= 1024×  16×      63 ×512 =528482304


(2)8.4GB

 そこで、この問題を解決するために策定された規格が「Enhanced−IDE(以下E−IDE)」である。
 E−IDEでは、従来の3つのパラメーターに対して「Logical Block Addressing(以下LBA)」という方式を採用した。LBAは、すべてのセクタに番号を割り振り、1つのパラメーターとして扱う方法である。INT13インターフェースはLBAを利用することは出来ないので、BIOSが3つのパラメーターをLBAデータに変換することで対応する。
 結果として、E−IDE仕様HDにおいてLBAを採用することで、それまでの限界であった528MBを突破し、INT13の最大容量である8.4GBにまで限界を引き上げることが出来たのである。

 この8.4GBの限界を、後述するFATシステムの最大領域と勘違いされている方が多いので、僭越ながら忠告させていただく。


(3)136GB

 しかし、既に8.4GB以上のHDは広く出回っている。
 INT13を利用している限り、この限界を突破することはできない。そこで、IBM社とマイクロソフト社が策定したのが、「拡張INT13」と呼ばれるディスクBIOSの規格である。INT13では利用できなかったLBAを、拡張INT13では扱うことができるのである。この規格はWin95からサポートされており、これによって最大容量はIDEの限界である136GBにまで引き上げられたのである。



2.OSが使用できるHD容量には、限界がある。

 ここから、MS−DOS3以降で対応となった「FAT」について述べていく。
FATFile Allocation Table」は、マイクロソフト社OSで利用されている、ディスク管理を行うシステムである(WinNTやWin2000で採用されているNTFSNT FileSystem については、ここでは省略する)。
 従来の「FAT16」というシステムと、Win95OSR2以降で使用できる「FAT32」は、それぞれ扱えるクラスタ(別名アロケーションユニット)の数が16ビット(65536個)32ビット(42億個)である。クラスタとは前述した通り、ファイルを保存・管理する最小の単位であり、(ドライブによって数は異なるが)複数のセクタをまとめたものである。FAT16では65536個のうち予約分を除く65526個、FAT32では28ビット分の2億6千万個のクラスタを扱うことができる。
 さて、ここでクラスタのサイズについてである。FATシステムにおいて、クラスタはセクタをまとめたもので、そのサイズ(クラスタサイズ)は512バイトが最小であり、それより上は2のX乗をかけた値を用いる。最大は32kBである。

 余談をひとつ。クラスタサイズが32kBの場合に、1kBのファイルを1つ保存すると、そのファイルは必ず1クラスタを支配し、残りの31kBは無駄になってしまう。このようなクラスタの無駄な部分を「クラスタギャップ」と呼ぶ。クラスタギャップを小さくするには、元のクラスタサイズを小さくする以外に手立てはない。そのクラスタサイズを小さくする方法も限られており、次の2つである。
・1ドライブの領域(パーティション)を小さくする
・FAT16からFAT32に移行する
(数値に関しては省略する)

 話を戻そう。32kBが最大であるクラスタサイズで、上に示したクラスタ数であれば、次のように1ドライブの最大容量が求められる。

 FAT16:  65526× 32768 =  2147155968 =2047MB
 FAT32:268435456× 32768 =8796093022208 =8192GB
                         =   8TB(テラバイト)

 つまり、1ドライブの最大は、FAT16では2GB、FAT32では8TB、ということになる。1台のHDに対して領域(パーティション)は4つまで扱うことができるので、FAT16では最大8GBまで扱うことができる(この8GBは、前節の「限界8.4GB」とは全く異なる観点であることに注意していただきたい)。
 ここでFAT32の計算値は8TBとなったが、これは管理できる限界であり、使用できるのは32ビット,2TBまでとなる。


3.拡張INT13をサポートしていないパソコンで大容量HDを使用する。

 1節で述べたように、拡張INT13に対応していないパソコンでは、いくら接続を試みたところでE−IDE最大8.4GBまでしか認識せず、残りの部分は使えない。しかし、ソフトウェア的にBIOSを拡張し、8.4GBを超える大容量HDを使用できるようにするユーティリティがある。
 こういったユーティリティソフトを「Disk Manager」という。次に示すような、HDを開発している各社から公開されている。

Storage Soft社:「EZ−Drive」
 http://www.storagesoft.com/
Ontrack Data International社:「Disk Manager DiskGo!」
 http://www.ontrack.com/op/op_2.asp
IBM社 Disk Manager
 http://www.storage.ibm.com/techsup/hddtech/welcome.htm
Quantum社 Ontrack Disk Manager DiskGo!
 http://service.quantum.com/menus/soft_menu.htm
Seagate社 Disk Manager DiskWizard
 http://www.seagate.com/support/disc/faq/8point4.shtml
Western Degital社 EZ−Drive
 http://www.wdc.com/service/ftp/drives.html

 それぞれ、ユーティリティソフトはインターネット等で無料で配布されている。ただし「IBM社のディスクマネージャーはIBM社のHDに対してのみ利用可能である」といったように、メーカー独自のソフトウェアとなっている。Western Degital社のショッピングページで販売されているフルパッケージ版($59.95)では、ほぼすべてのメーカーのHDに対応していると言われている(未確認)。ユーティリティの起動は英語版MS−DOSでなければならないようで、NEC PC−98(NXより前)マシンではソフトウェアは起動しないかもしれない。こちらも未確認である。
 実際のソフトウェアの起動については、私に試用できる環境がないため、配布されているファイルの説明を見る、ということでここでは割愛させていただく。基本的にフロッピーディスクにファイルをコピーし、そのフロッピーディスクから起動する形となる。






 今後、次の問題となる136GBを超えるHDを気軽に入手できるのは、そう遠い先の話ではないであろう。基本ソフトウェアや有名アプリケーションのサイズは大きくなる一方であり、マルチメディアデータの増大に加えてCD,DVDデータをそっくりそのままHDに保存することも増えてくるだろう。
 この内容を参考に大容量HDについて増設等考えていただければ、幸いである。


参考ページ
 「情報・通信略語林」
  http://www.incept.co.jp/ryakugo/
 8.4GBのBIOSの壁を越える  A Quantum White Paper
  http://www.quantum.co.jp/hottopics/bios.html
 Getting Beyond the ATA 8.4GB Limit
  http://www.storage.ibm.com/hardsoft/diskdrdl/technolo/8gblimit/8gblimit.htm


→ひとつ前に戻る