[16845]  Windows NT4.0で80GB HDDの接続は玉砕
投稿者:くりすと さん   2001-11-24 05:45:29
 題名通りNT4でMaxtorのMX4D080H4(80GB)のHDDをXa13/Wの内蔵の#0に接続しPK98-MISTREE9にてDOS(Win98SEの起動ディスクでの起動)での動作確認(とりあえずドライブ全体を1領域(FAT32)にした状態(FORMATの確認の意味で行っただけです))をしてから、NT4を起動。ディスクアドミニストレータを使って該当ドライブの領域をまず単一に領域設定してNTFSにてクイックフォーマットを施したところ、その時点ではフォーマットした状態がきちんと認識できているのですが、再起動を行うとそのドライブの存在はあるもののディスクアドミニストレータでは不明な状態になってしまいました。さらに、容量が大きすぎるのがいけないのかと思い、改めて28GBに領域設定など分割などいろいろ試してみましたがだめでした。
 これの書き込み中に試しに先頭から29319MB(この容量はこの本体に入れてるUIDE-98Mに接続してる30GBのディスクアドミニストレータで表示する容量)領域確保し、クイックフォーマット、再起動、不明な状態、領域開放、再度29319MB領域確保、フォーマットとしてみたところ容量が7.06GB(7590748160)になっていました。
  1. 土野明日香 さん   2001-11-24 16:48:30
     どもどもっ★土野明日香です。

     現在修羅場の最中ですので、簡単に端折ってRESします。
     細部の説明については、並みいる識者にお任せしますので。

    》題名通りNT4でMaxtorのMX4D080H4(80GB)のHDDをXa13/Wの内蔵の#0に接続しPK98-MISTREE9にてDOS(Win98SEの起動ディスクでの起動)
    》での動作確認(とりあえずドライブ全体を1領域(FAT32)にした状態(FORMATの確認の意味で行っただけです))をしてから、NT4を起動。

     ということは、そのドライブ(プライマリマスターに繋がれたMX4D080H4)をNTのブートシステムドライブとしたのでしょうか?
     NT4.0系ではシステムファイルが先頭から8063MB以内にないと不具合が生じたりすることがあります。
     AT互換機版のNT4.0ではSP6辺りで対応されているのですが、PC-9821ではこのパッチは出ていないのですよね。

    #MS-Windows2000だと、この8063MBの壁についてはPK98-Mistress9ボード(またはHOTARUをIPL常駐)で対応できると思います。

    》ディスクアドミニストレータを使って該当ドライブの領域をまず単一に領域設定してNTFSにてクイックフォーマットを施したところ、
    》その時点ではフォーマットした状態がきちんと認識できているのですが、再起動を行うとそのドライブの存在はあるもののディスク
    》アドミニストレータでは不明な状態になってしまいました。

     NTがブート時に正しく容量認識できなかったドライブは、無効なドライブとして切り離されてしまうようですね。
     つまり、OSブート時のチェックが問題であるわけで、NTFSがフルに動き出した後なら、その容量にも対応できているということに
    なります。

    》さらに、容量が大きすぎるのがいけないのかと思い、改めて28GBに領域設定など分割などいろいろ試してみましたがだめでした。

     パーティション容量ではなくドライブ総容量(orドライブの取っているパラメータ)でNTのブートシステムが判断しているようで
    すので、分割方法を変えても駄目ではないかと思われます。

    》 これの書き込み中に試しに先頭から29319MB(この容量はこの本体に入れてるUIDE-98Mに接続してる30GBのディスクアドミニストレ
    》ータで表示する容量)領域確保し、クイックフォーマット、再起動、不明な状態、領域開放、再度29319MB領域確保、フォーマットと
    》してみたところ容量が7.06GB(7590748160)になっていました。

     UIDE-98Mを繋いでいて、そっちにNT4.0のシステムが入っているのですか。
     「30GBのディスクアドミニストレータで表示する容量」、というのが何のことかよくわかりませんが、別途30GBのドライブをUIDE-
    98Mに繋いであるという意味でしょうか。
     32GBを超えるドライブをPK98-Mistress9で領域確保・分割した場合、セクタ数255で取られますから、同じシリンダ数でも容量は約
    4.04倍(セクタ255÷63)になります。
     7590748160Byteを4.04倍すると30724456838Byte=29301MBとなり、29319MBとほぼ近い数値が出てくることになります。
     つまり、IDE-BIOSが返してくるセクタ255を元に計算したシリンダ数を、NT4.0のファイルシステムがドライブからネイティブに得
    たパラメータ(セクタ63)で再計算して容量を得ているために、結果として1/4の容量が返ってくるのではないでしょうか?

     PK98-Mistress9ボードのマニュアルに書かれているように、MS-Windows95/98系はOSカーネルがドライブ容量のチェックを行ってい
    ないため、領域を確保するためのFDISK.EXEとFORMAT.COMさえ対応させてしまえば、ドライブの返してくるパラメータとBIOSが返して
    くるパラメータが食い違っていても問題なく動作したのですが、NT系のOSでは、ドライブの返してくるパラメータが起動時に毎回OS
    によってチェックされていますので、BIOSだけが対応していても、不整合が生じることになります。

     これはNT4.0のファイルシステム(ATADISK.SYS及び起動関連ファイル)にパッチを当てない限り、解決は難しいです。

    #何でもNTのシステムは、プログラム内部で整合を取っているらしく、MS-DOSのEXEファイルのように単純にパッチ当てしても、不正
    #な書き換えということで無効になると聞いたことがあります。

     あるいは、ドライブのファームウェアを書き換えて、ネイティブで「ヘッド16/セクタ255」を返してくるようにしてしまうという
    方法も考えられます。
     ATA規格では一応「ファームウェアのダウンロード」というコマンドが用意されていますが、そもそも元になるファームウェアデー
    タ自身がありませんから、ダウンロードするためのデータが作成できません。
     ドライブに載っているチップを剥がして、ファームウェアを吸い出して解析し、(当然86系ではなく組み込み系CPU用アセンブリ言
    語でしょうねぇ(^^;;)合致するパラメータの部分を書き換えておけばいいのかも知れませんが....モロにドライブ依存ですから、
    この世に存在する全てのIDE-HDDを解析しなければならないハメになります。

     というわけで、NT4.0系については、ここまで考えて完全対応を断念しましたm(__)m。
  2. くりすと さん   2001-11-24 20:22:09
     どうも、土野さん。

     先の書き込みと今回も説明不足があるかもしれませんが、順を追っていきます。

    > ということは、そのドライブ(プライマリマスターに繋がれたMX4D080H4)をNTのブート
    >システムドライブとしたのでしょうか?
     していません。NT4.0のシステム(起動ドライブ)はIDEの4.3GBの別ドライブです(もともとは内蔵にさしていましたが今はUIDE-98Mに接続しています)。
     現在の接続構成はUIDE-98Mに4.3GB(#0),20GB(#1),30GB(#2)を接続。今回(MISTREE9使用なので内蔵に)80GB(#0)にしました。

    > NTがブート時に正しく容量認識できなかったドライブは、無効なドライブとして切り離さ
    >れてしまうようですね。
    > つまり、OSブート時のチェックが問題であるわけで、NTFSがフルに動き出した後なら、そ
    >の容量にも対応できているということになります。
     なるほど…それなら辻褄があいそうですね。

    > UIDE-98Mを繋いでいて、そっちにNT4.0のシステムが入っているのですか。
    > 「30GBのディスクアドミニストレータで表示する容量」、というのが何のことかよくわか
    >りませんが、別途30GBのドライブをUIDE-98Mに繋いであるという意味でしょうか。
     はい、その通りです。

    > つまり、IDE-BIOSが返してくるセクタ255を元に計算したシリンダ数を、NT4.0のファイ
    >ルシステムがドライブからネイティブに得たパラメータ(セクタ63)で再計算して容量を得
    >ているために、結果として1/4の容量が返ってくるのではないでしょうか?

     かとも思ったのですが、またドライブ一括で領域確保をクイックフォーマットした後に再起動してみても運がいいときでも7GBの表示とか全然認識しないとか、いまいち再現性も乏しかったように思います。その後、ディスクアドミニストレータでフォーマットした後にRDISKにて修復情報の更新などを施しましたが結局だめでした(上記に示しているように起動時のチェックで弾かれてるようなので)。
     ただ、ドライブの容量については間違い無い表示でした(うろ覚えですが78000MBぐらいの表示)。

    >#何でもNTのシステムは、プログラム内部で整合を取っているらしく、MS-DOSのEXEファイ
    >#ルのように単純にパッチ当てしても、不正な書き換えということで無効になると聞いたこ
    >#とがあります。
     簡単なチェックサムかと思います。以前ちょっとしたことをしようとしたときにバイト文字列を入れ換えただけのときはエラーになりませんでした(これがCRCみたいなのだと恐らくそれでもエラーになると思います)。

    >この世に存在する全てのIDE-HDDを解析しなければならないハメになります。
     個人ベースで開発したものにそこまでの要求をしてもらうつもりは毛頭ありませんのでお気になさらないでください(企業ベースでも無理な作業だと思いますので)。

    > というわけで、NT4.0系については、ここまで考えて完全対応を断念しましたm(__)m。
     いえいえ、とんでもございません。恐らく32GBまでのドライブだとMISTRESS9でも問題は起こらないんですから。80GBのHDDをつなぐことを前提にしてMISTRESS9を購入したわけでもありませんので…どういう動作をするのか見てみたかったのとよしんばうまくいけばそのまま使おうかと考えてた程度ですので。