大容量 IDE DISKについての勉強
会社ではSun、自宅ではMacを使用ということもあり、今回 MicroPCで遊ぶにあたって、いろいろと謎の部分が出てまいりました。いや、私とてベアボーン組み立て経験はこれで2台目。PC
UNIX経験もそれなりにあるのだから、当然知っていてもよい話題なのですが・・。なんとなく知ったかぶりだった「大容量 IDE DISK」について勉強をしましたので以下にまとめておきます。「8GBあたりに制限がある」と噂にはいろいろききますが、
果たして適当に買ってしまった私のIBM Travelstar 20GBのHDは使えるのか(^_^;
制限の原因は「HDのアドレッシングについてIDEの規格とBIOSの規格が異なる」ことに端を発していたようです。現在のIDEの規格は28bit、その当時BIOSは24bitで表現されていました。上記定義をシリンダ数・ヘッド数・セクタ数で表わすと下記の通り。
|
Cylinder |
Head |
Sector |
|
IDE(28bit) |
16bit |
4bit |
8bit |
127.5GB |
BIOS(24bit) |
10bit |
8bit |
6bit |
7.8GB |
単純に考えた場合、IDEとBIOSの制限によりその最大公約数(10x4x6=20bit)の504MBまでしか利用できません。定義当時は十分な大きさだったかもしれませんが、現在ではまったく足りません。現在のIDEの規格の最大容量127.5GBをどのように使っていけるのでしょうか。大容量DISKを利用するためには「アドレス表現の拡張」と「BIOSの拡張」が必要でした。
アドレス表現の拡張 |
CHS方式 |
20bit (C10xH4xS6) |
504MB |
CHS変換方式 |
24bit (C14xH4xS6) |
7.8GB |
CHS変換方式(LARGE) |
26bit (C16xH4xS6) |
31.4GB |
LBA方式 |
28bit (28) |
127.5GB |
BIOSコール(Diskアクセス)の拡張 |
INT13 |
7.8GB |
拡張INT13 |
127.5GB |
大容量HDが使えるかどうかは「HD」「BIOS」「OS」等が上記の制限をクリアしているかどうかになります。以下にチェックポイントをまとめます。
- HDがどのアクセス方式をサポートしているか?
- BIOSが拡張INT13をサポートしているか?
- OSのデバイスドライバがどのdiskアクセス方式をサポートしているか?
- 他にOS毎の制限やブートローダ/セレクタなどの制限はないか?
ちなみにMicroPCのBIOSは拡張INT13をサポートしていますし、IBM Travelstar 20GBは LBAをサポートしていますので、あとはOS次第。最近のFreeBSDはLBA方式のデバイスドライバがありますので、ブートセレクタなどを使わなければ、問題なく利用できそうです。
|