マルチベンダ機能で容量拡張するときの注意 


* 基本はヘッド数とセクタ数を指定すること

 前述の通り、BIOSで認識できる容量がCHSパラメータの制限だとして、8GB制限とは[8ヘッド32セクタ]でシリンダ65536個を使い果たすことによる制限です。同様に、32GB制限は[8ヘッド128セクタ]による制限ですので、8GB制限のBIOSと32GB制限のBIOSを繋ぎ変えたときに、丁度4倍の認識違いという混乱も生じるわけです。しかしながら、BIOSでマルチベンダパラメータに対応したものであれば、8GB制限の場合は[8ヘッド128セクタ]を指定してやれば、32GBまで使えるようになる可能性があるわけですから、完全に8GB以内しか想定していないBIOSでもない限り、実質的に8GB制限は撤廃可能です。つまり8GB制限かどうかよりもマルチベンダ機能の有無が重要なのです。

* Windows2000の32GB制限とは別物

 さらに大容量を使いたければ、マルチベンダでヘッド数とセクタ数を増やせばよいのですが、Windows2000/NTではこれらの標準パラメータ(8GB以下は32セクタ、8-32GBでは128セクタ)しか受け付けません。まず、このソフトウエア(OS)上の制限とは区別して考えてください。

* 場合によってはシリンダ数も計算しなくてはならない

 もともと92以降のSCSIでは、各HDDの総容量(512バイト単位のブロックがいくつあるか)を、ヘッドとセクタで割った値をシリンダ数として算出するようになりました。ですから基本的にはマルチベンダでヘッド数とセクタ数だけ指定してすればよいはずなのですが、55時代のSCSIパラメータでは必ずしも容量に一致しないため、マルチベンダパラメータを強制指定する時は、シリンダ数も指定しなくてはならないことが少なくありません。LHA-521シリーズではヘッドとセクタの指定だけでよいのですが、SC-UPCIシリーズなどではシリンダ数も指定しなくてはなりません。しかし、これがいろいろ問題があって面倒くさいのです。

(1) 単に8GB制限のBIOSで32GBまで使いたいだけ(Win2kを使う場合など)であれば、正式に32GBに対応したSCSIでフォーマットし、その時のC/H/Sパラメータをメモしておき、8GB制限のSCSIでマルチベンダパラメータとして入力するか、または自動認識させるのがよいでしょう。現在認識されているSCSIパラメータを読むソフトとしては、各社SMIT転送SCSIボードのドライバに付属しているSCSIPARA.EXEか、アイオーのSC-98/SB/II用ドライバに付属のHDPARA.COMなどがあります(後者は総容量の表示が4GBまでですが、CHSを読むだけであれば問題ないと思います)。

(2) 32GB以上を使いたい場合は、シリンダ数を手動計算する必要が生じます。たとえば最大120GBまで使えるという15ヘッド255セクタにしたい場合は、HDDの総容量をブロック数(普通は512バイト単位)になおして(容量を512で割る)、その値を15と255で割れば、だいたいのシリンダ数の目安が算出されます。
 しかしその値をそのままシリンダ数として適用できるとは限りません。まず第一に、HDD本来の総容量は、割り算の余りの都合で、もともと認識されるよりも多いため、SCCTLなどのツールを使いこなせないと、本当の総ブロック数が分かりません。また第二に、入力すべきシリンダ数は、「総シリンダの個数」なのか「最大シリンダ番号」なのかが、SCSIアダプタによって異なるからです。後者の場合でゼロから数えていれば、前者とは値が1だけ少ないはずです。しかし、一つ違っただけでも正しく動作しなかったり、他のSCSIアダプタでは領域を正しく認識できなかったりしますから、このへんを正しく算出することが、意外に重要なのです。最終的にはシリンダ数を適当に上下させながら、ちょうど良い値を探ることになりますが、この対策を考えなくてはなりません。
 SC-UPCIなどでは、マルチベンダパラメータ入力時にシリンダ×ヘッド×セクタ(×512バイト)で計算されるHDD総容量が、実際のHDD容量よりも大きい場合には警告が出て再入力となりますから、シリンダ数を少しずつ増やしていき、警告の出ない限度ぎりぎりの値を探せばよいのではないかと思います。  またもう一つの方法は、何らかのSCSI32GB制限解除ツール(たとえばまりも氏のA2940PATなど)を利用し、(1)と同じ手順でシリンダ数を読んでおき、同様に繋ぎ替えてマルチベンダパラメータを再入力するという手です。どちらにしろ手計算は危険ですから、自動でシリンダ数を算出してくれる手段があるなら、それを利用するほうが良いでしょう。

 また、マルチベンダではC/H/Sだけでなくセクタ長も指定できる場合がありますが、これは下手にいじらないほうが良さそうです。恐らく512バイト固定でしょうし。

* フォーマットの注意

 マルチベンダ可能なSCSIボードは本来、92以外のフォーマットが残っていた時代のHDDをそのまま利用する(データを取り出す)ことが目的だったため、CバスSCSIではマルチベンダ設定されていてもフォーマットしなおす時は92パラメータになるものがあるようでした。PCIでは試していませんが、その場合は実際に大容量に対応したSCSIボードでフォーマットしなおす必要があるのかもしれません(未確認すみません)。

* 更なる大容量へ??

 説明が遅れましたが、指定できるC/H/S数(の上限)について説明していませんでした。最大容量120GBを得るパラメータが15ヘッド255セクタで、総シリンダ数が65536個ですから、C/H/Sは基本的に16ビット/4ビット/8ビットです。もともとBIGドライブに対応する前のHDDは、一括のリニアなアドレスで28ビットしかありませんでしたから、それに合わせたものかもしれません(AT互換機ではBIOS上はIDEとSCSIの区別はありません)。15ヘッド255セクタというパラメータは最大容量に使われるため、今後あちこちで使われる可能性があるので、約60GBを超える容量(IFC-USPver1.20以降では32-60GBで15ヘッド128セクタになる)には、そのパラメータがよいと思われます。
 しかし、Undoc2を良く見ると、55互換BIOS(=PC-98の標準SCSI BIOS)では、C/H/Sが12ビット/8ビット/8ビットで設定できるモード(12ビットシリンダ)もあるようです。これは良く考えてみますと、4096シリンダ×255ヘッド×255セクタ×512バイト=約127GBですから、15ヘッド255セクタで65536シリンダを使う(=約120GB)よりも若干効率が良さそうです。実際に試してはいませんのでうまく行くか分かりませんが、少し気になる情報です。ただ、SC-UPCIのBIOSではマルチベンダ手動入力で16以上のヘッド数は指定できないようでしたので、12ビットシリンダには対応していないようでした。そういう意味では12ビットシリンダが利用可能なマルチベンダSCSIは限られているのかもしれません。



KAZZEZ

戻る
未整理コラムへ