[20127]  chanpon3とSC-UPCIの容量限界
投稿者:hiro さん   2002-10-08 21:18:45
はじめまして、hiroと申します。
98改造を探していたらここに行き着きました。宜しくお願いします。
9821v166s5c 流星モデルがあり
IDEのハードディスク(HD)をacardAEC-7720でSCSIにしこれを
Chanpon3かSC-UPCIでつなげようと思います。
OSはWin2000です。
質問(再確認)させて頂きたいことは

1 SC-UPCI or Chanpon3で32GBより大きなHDを接続した場合
ハングアップせず起動するのでしょうか?

2 SC-UPCI or Chanpon3と例えば60GBのHD を使い、ブートのパーティションは
8GBぐらいで、データなどを置くパーティションとして残り52GB(または32GB+20GB)
の様に取り認識させたいと願っていますがこれは可能なんでしょうか。
(どちらもNTFSフォーマット)

それとも32GBよりも大きなHDを持ってきてもWin2kで使えるのは32GBまでなんでしょう
か?

win2kの起動時はbios管理下で8GBを認識させ、一度win2kが立ち上がれば
ドライバー管理下で60GB全てを使えるのではと思ったのでした。

過去ログと
http://homepage1.nifty.com/marimono/hdcapa.html
を読ましていただくと
IFC-USP-M2および CHANPON(chanpon3の前バージョン?)では60GBまで
起動時ハングアップせず、認識でき、
SC-UPCIは、32GBを超えた容量のドライブを繋いでも、ハングアップしないが
32GBまでの認識
という風にあるのですが、
http://www.griffonworks.homeip.net/dorlog/2nddorcom/98mania/thread19663.html
では
SC-UPCIだけは、32GB越えたHDもハングアップしないし、ひょっとしたら
40GB全部が使えるかもと思えましたので、お聞きした次第です。

宜しくお願いいたします。
  1. Aim さん   2002-10-08 23:18:00
    以下の過去ログを参照してみてください。凄く参考になります。
    http://www.cham-reo.com/logsearch/archive/stage_3/maniax/sled17588.html
    *一度削除して再度レスしています*
  2. まりも さん   2002-10-09 00:27:34
    ・絶対にWindows2000のみしでかそのHDDを使わない
    ・SC-UPCI以外のSCSIアダプタには絶対繋ぐことはない
    というのであれば、SC-UPCIでディスクアドミニストレータで32GBの少し手前から以降のところを「確保」してしまえばよいみたいです。

    しかしそうでない場合は絶対に32GBを超えないように、つまりFDISKで確保できるところまでに留めておかないと、危ないです。
  3. CD-R さん   2002-10-09 21:46:47
    WINDOWSからしか見えませんが、CHANPON3に60GBの1パーティションHDを接続して使ってます。
  4. hiro さん   2002-10-09 23:09:34
    Aim様、まりも様、CD-R様ありがとうございます。
    >凄く参考になります。
    あっ~。すみません。過去ログチェックしたはずなんですが。
    欲しかった情報ドンぴしゃです。すみません。
    CD-R様へ
    もう少し詳しくお聞かせいただけませんか?
    ブートディスクは別にあり、EX-IDEなどで仕切&フォーマットされたという環境の様
    に推察いたしますが。
    Windowsって98?98SE?ME?2Kのどれでしょうか?
    それはブートディスクでしょうか?(Biosからでは60GBを認識できないはずだろう
    し。)
    どのソフトでパーティション確保フォーマットされたのでしょうか?

  5. かわのべ さん   2002-10-10 02:03:14
    まりもさん
    >・SC-UPCI以外のSCSIアダプタには絶対繋ぐことはない
    この条件と、Windows2000 + FreeBSD(98) の組み合わせを想定し、例えば1~32768シ
    リンダはWindows2000、32769~65535シリンダはFreeBSD(98)とした場合に、BIOSでは
    アクセスできない65536シリンダ以降の領域をWindows2000から確保することができる
    でしょうか?

    もし確保できないのであれば、パーティションテーブルの最終シリンダが65535で、か
    つ実際のHDの容量がそれよりも大きい場合に、65536シリンダ以降の領域は最終シリン
    ダが65535の領域を持つOSが使用権を握るというルールを作り、容量いっぱい使うよう
    にすることもできます。現状のFreeBSD(98)では少し特殊な方法を採らないと65536シ
    リンダ以降の領域を使用することはできませんが、多少のコードの追加でこのような
    ことを実現できます。

    もしWindows2000が (我が物顔で) 確保できてしまう仕様ならば、65536シリンダ以降
    の領域がすでに使用されているかどうかを判定する何らかのアルゴリズムを考え出さ
    なくてはなりません。

    これらのことが解決できれば32GB制限の壁だけではなく、120GBを越えるHDを起動ディ
    スクにするとともに全領域使用でき、32G以下の領域にブート領域を配置するという制
    約の上で、種々の (上の2つ以外の) OSの共存もでき嬉しいのですが。
  6. ぷよよん さん   2002-10-11 01:36:39
    Windows掲示板の[22825]SC-UPCIで32GB OVER領域が使用できました(制限あり)にて
    SC-UPCI + Seagate Barracuda ATA-IV ST340016A(40GB) + AEC-7720UW において

    >>まとめると、32GB OVERのHDDにおいても、32GB以内の領域をブートデバイスとしてDOSや
    >>WIN98と併用しつつ、NT4とWIN2Kでは(データドライブとしてのみですが)32GB越え領域を
    >>全量使用できました。

    という投稿をしたのですが、どるこむのどの検索エンジンでも出てこないなぁ?
    再投稿した方がいいのかな?
  7. まりも さん   2002-10-11 02:19:52
    http://www.griffonworks.homeip.net/dorlog/2nddorcom/windows/thread22825.html
    ですね。結局追試してないんですが(ぉぃ、 ぷよよんさん の追試結果からすると、
    ・パーティションテーブルには、なにやら壁越え領域の存在が登録されている。
    ・ただし開始-終了シリンダ番号は不正な値が入っていると思われる(65535を超えられないので当然)。
    ・Windows2000,NTは、領域開始位置を見つけだせば、あとはその領域のブートセクタ情報からファイルシステムを構築する
    ように見えます。いずれにしてもあらゆるフォーマッタはこの領域を正常に扱えない(どころか全体をも扱えなくなるかも)ので、もう環境をいじらずに使うしかないでしょう。領域の削除もアドミニストレータから行なう以外できない(FDISK動作不可)かもしれません。

    >かわのべさん
    次のように取り決めを行なえば、さほど危険ではなくかつ32GB壁越え利用が図れるかも知れません。

    ・32GB上限手前に1MB程度の領域を作る。
    ・BOOT不可かつスリープ属性にしておく。
    ・そこから容量最後まで通し領域があるとして求めたセクタ数で論理フォーマットを「自前で」行なう。
    少なくともこうしておけば、「領域先頭位置とブートセクタ側に書かれたジオメトリだけでファイルシステムを認識するOS(*)」ならば領域を正しく認識できてしまいます。Windows2000はそうであるように見えます。またDOSやWin9xでは、アクティブではない領域なので誤認識しません。

    FreeBSDは、(*)のようなファイルシステム認識アルゴリズムでしょうか?もしそうならば壁越え論理フォーマッタをFreeBSDで作ることができればすばらしいです。ファイルシステムの形式は何であってもよいでしょう。
  8. かわのべ さん   2002-10-11 22:09:54
    >・パーティションテーブルには、なにやら壁越え領域の存在が登録されている。
    これはとても面白そうですね。パーティションテーブルのシリンダ数は16ビット分し
    かないので、どのように扱われるか興味があります。 Windows2000のインストールは
    時間がかかりますが、私も追試してパーティションテーブルをダンプしてみます。

    >FreeBSDは、(*)のようなファイルシステム認識アルゴリズムでしょうか?
    FreeBSD領域は、BSD独自のaからhまでの8つのパーティションに分割されています。
    第0セクタはブートセクタ、その次の第1セクタにジオメトリやaからhまでの情報276
    バイト分が格納されています (これをディスクラベルと呼びます)。

    通常、32ビットカーネルは領域の先頭に配置されるaパーティション (例えば100MBな
    ど比較的小さい容量) にあり、32GB上限マイナスaパーティション容量の位置から領
    域確保を行なえば、aパーティションがすべてBIOSからアクセスできるため、確実に
    ブートできます。

    つまり(*)は真ということになります。ただし、AT互換機のFreeBSDはこの機能が標準
    的に備わっているものの、98へのポーティングが不十分なため、FreeBSD(98)のfdisk
    コマンドが領域を正しくパーティションテーブルに書き込めないようなのです。次の
    リリースには間に合わないと思いますが、 上記のWindows2000がどのようなデータを
    パーティションテーブルに書き込むのか調査して、共存可能なようにしてみたいと思
    います。Windows系のファイルシステムは今のところ標準でFATしかマウントできない
    のですが、将来NTFSを入れたときにこれらのことが役に立つと思いますし。
  9. まりも さん   2002-10-12 01:16:00
    なるほど、それは行けそうですね。
    WindowsNTのdisk administratorが作るパーティションテーブルにどのように書かれるのかは、近いうちに調べておきます。NTをいまさらながらインストールしなきゃならないのは面倒ですが、今度は有言実行で(^^;)。
  10. ぷよよん さん   2002-10-13 10:24:01
    >まりもさん・かわのべさん

    >>・32GB上限手前に1MB程度の領域を作る。
    >>・BOOT不可かつスリープ属性にしておく。
    >>・そこから容量最後まで通し領域があるとして求めたセクタ数で論理フォーマットを「自前で」行なう。
    >>少なくともこうしておけば、「領域先頭位置とブートセクタ側に書かれたジオメトリだけでファイルシステムを
    >>認識するOS(*)」ならば領域を正しく認識できてしまいます。Windows2000はそうであるように見えます。
    >>またDOSやWin9xでは、アクティブではない領域なので誤認識しません。

    もともと先の投稿のHDDを、IBM Deskstar 120GXP IC35L120AVVA07(120GB)に換装する予定だったので
    今回でいろいろと確認してみました。前回詳しく書いてなかったので、パーティション構成まで記します。

    シリンダ数    サイズ  FORMAT 起動OS
    1~ 4094   2G   FAT16  DOS6.20
    4095~ 8188   2G   FAT16  WIN98SE
    8189~40954  16G   FAT32  WIN98SE
    40955~49144   4G   NTFS  WINNT4 WS SP6a
    49145~65530   8G   NTFS  WIN2000 Pro
    65531~(38990) 83G   NTFS  (WINNT4)

    (1)シリンダ65530まで上記のように各OSで領域確保。
    (2)65531~65534(上限)までWIN98SEにてFAT16で領域確保。スリープ&ブート不可&未フォーマットとする。
    (3)NT4のディスクアドミニストレータで(2)の領域を開放、改めて全量を確保&NTFSでフォーマット。
    ※アドミニストレータ再起動した時点で領域サイズ誤認識(約2TB)となります。
    この領域はNT4とWIN2Kにおいて83GBとして問題なく使用可能。

    (3)の完了時点でWIN98SEのFDISK動作不能となります。
    で、各段階においてまりもさんツールのRMBR・WMBRでMBRを保存しておきました。
    まず(3)完了後、(2)のMBRを復元しましたが、NT4・WIN2Kとも壁越え領域は認識できませんでした。
    (1)のMBRにも復元してみましたが、NT4・WIN2Kとも壁越え領域は同様に認識できませんでした。
    フォーマットしてあるかどうかではなく、やはりパーティション情報の有無が問題と言うことですね。
    また、(1)のMBR状態で、さらにまりもさんツールのMKPTNTBLでシリンダ65531からのNTFS領域を発見
    出来るかどうか試してみましたが、発見できませんでした。
    ※というか、どうも誤動作しているらしく、直前のWIN2Kパーティションの終了シリンダを65530ではなく、
     65533として認識しているようです。

    ということで、壁越え領域を安全に使うにはやはり「自前」のフォーマッタが必要なようですね。
    ただ、83GBがちゃんと確保できた(最低でも65535を2回突破している)ところを見ると、おそらく2TBまでは
    この方法で使用可能なのではと思われます。
  11. ぷよよん さん   2002-10-13 17:57:03
    さらに追加です。
    MBRを(3)から(2)か(1)に戻してNT4/WIN2Kに認識させていく過程で、どうもパーティション情報が一部
    失われるようで、その後に(3)のMBRに書き戻しても、NTFS領域とは認識してくれなくなりました。
    何か別のOSで確保されているという認識状態のようです。

    ということで、改めてNT4で再フォーマットしました。
    ついでなので、この領域にWIN2Kが入れられるか試してみました。
    インストーラはこの領域を2TB、ただし空き領域83GBとは認識しており、そのままインストールは
    実行できました。で、一旦再起動しますが、ここで不具合がでました。

    無効な BOOT.INI ファイルです
    C:winnt から起動しています
    Disk I/O error: Status = 00000001
    Disk I/O error: Status = 00000001
    NTDETECT が失敗しました

    と表示され、インストールが続行できません。
    BOOT.INIの内容は

    [boot loader]
    timeout=1
    default=multi(0)scsi(0)disk(0)rdisk(0)partition(6)WINNT
    [operating systems]
    multi(0)scsi(0)disk(0)rdisk(0)partition(6)WINNT="Microsoft Windows 2000 Professional" /fastdetect

    で特に問題なく、この直前のWIN2Kのファイルをまるまるコピーもしてみましたが、表示は変わらずでした。
    もっと手前から壁越え領域を確保していたらうまく行っていたかも?

    NT系OSの場合、インストール済みの領域からシステムファイルをコピーしてみても NO SYSTEM FILE
    で怒られてしまうんで、うまくやれる方法があればいいんですが。
    ということで、WIN2Kが壁またぎ起動できるOSかどうかは不明なままでした。
  12. かわのべ さん   2002-10-13 22:39:19
    ぷよよん さん
    詳細な報告ありがとうございます。参考になります。上の私の投稿では、シリンダ数
    65535までと勘違いしていましたが、シリンダ数の上限が65535でシリンダ番号は0か
    ら数えますから65534が最大シリンダでした。訂正します。
  13. まりも さん   2002-10-24 22:06:26
    どうやら、Windows2000が作成する32GB壁またぎ領域は、パーティションテーブル上で終了シリンダ番号が16bitに切られるため、一見矛盾した内容(開始番号より小さい)で書かれることが問題のようです。しかしそれ以外の点では、なんとか使えるようです。意外にもWindows98の DOSモードで使用できます。
    詳しくは下記のSC-UPCI壁越え実験記をお読み下さい。
    http://homepage1.nifty.com/marimono/scsi32gb.html
  14. ぷよよん さん   2002-10-26 09:44:43
    >まりもさん

    32G壁越えの詳細な解析報告ありがとうございます。先鞭を付けたものとしてはたいへん
    うれしく思います。私の方の結果と総合すると、
    ・壁越え領域をFAT32で32GB以上で作成すると、Windows98の起動時ハングアップ。
     ただしNTFSならばサイズ制限はなく、いずれの領域にも影響なし(と思われる)。
     その場合もNT4のディスクアドミニストレータでしかNTFSフォーマットは出来ない。
    といったところでしょうか。

    さて、実験記での「MS-DOS 6.20の起動でハングアップすることがある」については、
    私の環境では発生したことがないです。 壁越え領域が65531シリンダからのせいか、
    その領域がNTFSだからか、どちらの影響なんでしょうね?
    さて、FORMATX1.17aにおけるFAT32領域の32GB制限ですが、上に報告したように120GBを
    装備してますので、無制限バージョンでの人柱になってもよろしいですよ。
  15. まりも さん   2002-10-26 10:44:03
    32GB壁またぎ領域が存在しているときの MS-DOS 6.20起動時のハングアップは、起こったり起こらなかったりで、どうもはっきりしない点があります。微妙な容量の違いで起こるようにも見えますが、もう少し調べてみます。

    >NTFS
    ディスクアドミニストレータでの領域サイズ表示ならともかく、Windows2000のマイコンピュータなどあらゆる場面で、領域のサイズがおよそ2Tバイトになってしまうのがどうも気になります。FAT32の場合はそういうことがないんですが…。

    >無制限バージョンでの人柱
    では人柱バージョンをβ版として置いておくのでしばらくお待ち下さい。ファイルを書いて行ってそれが正しい内容で読めればOKというところですが、その作業も結構大変ではないかと思います。
  16. ぷよよん さん   2002-10-26 11:46:26
    >ディスクアドミニストレータでの領域サイズ表示ならともかく、Windows2000のマイコンピュータなどあらゆる
    >場面で、領域のサイズがおよそ2Tバイトになってしまうのがどうも気になります。FAT32の場合はそういう
    >ことがないんですが…。

    うーむ、私の所ではWIN2Kからでもマイコンピュータからは2TBという表示にはなってない
    ですね。もしかして全サイズが2TB、空きが20GBみたいな表示ですか?
    WIN2K上で領域確保とフォーマットまで行おうとすると、確かに2TB表示になるんですが、
    (というかフォーマットはちゃんと完了しなかったと思いますがよく覚えてないです)
    NT4でフォーマットしておくと、NT4はもちろんWIN2Kからでもドライブサイズは正常に
    83GBで見えていますので、ちょっと挙動が違っているように見えますね。
    ちなみにそのドライブをWIN2Kの「ディスクの管理」で確認すると、右上半分のドライブ
    レター表示でのドライブサイズまでは正常で、右下半分のパーティション情報のところでは
    2TB表示になっています。私の今のMBRを確認してみますか?
    そういえば、32GB越え領域のサイズに関係なく2TB(2035GB)表示でいつも同じ気がします。
    今回は83GBですが、前回の4GBのときも2035GBだったような。

    人柱バージョン公開いただけるようでありがとうございます。
    ここまできたら出来るところは検証に協力させていただきますよ。
    検証としてはWAVファイルが20GBほどあるんで、それを全域にコピーして、ちゃんと再生
    できるかどうかで判断してます。(1GBおきに所々確認するだけで問題ないと思ってます)
  17. ぷよよん さん   2002-10-26 14:33:03
    追加情報です。
    WIN2K上で、NT4のディスクアドミニストレータ(system32ディレクトリ中のWINDISK.EXE)
    が動作するかどうか試してみました。バージョンチェックで引っかかるかと思いきや、
    あっさり起動します。ただし、起動しているWIN2K自分自身のパーティションが見えて
    いないとか、32GB越え領域が一切見えないなど、非常に危険な動作状況でした。

    ということで、WIN2K上ではどうやってもNTFS領域の作成とフォーマットは無理なようです。
    あとがFAT32→NTFSコンバートがちゃんと動作するかどうかですね。
    これが一番危険な作業のような気がします。人柱バージョンではここも確認してみます。
  18. まりも さん   2002-10-27 19:51:25
    ふむ、やはりWindows2000でのNTFSフォーマットはダメでしたか。
    一応β版置いておきましたのでテストなさってみて下さい。
    ファイルの書き込みで予期せぬところが潰れないことを祈ります(^^;)。
  19. ぷよよん さん   2002-10-29 02:05:11
    平日は午前様ばかりなのでなかなか検証が進みません(^^;
    さて、仕事中にふと思いついたんですが、FAT32で32GB以上のサイズにしたときの
    FATといった管理領域のサイズってどのくらい必要なんでしょう。
    管理領域がBIOSで見えない範囲にまたがっているせいで、WIN98起動時にハングアップ
    してしまうのではないかと思ってみたり。
    32GB以上確保するときは管理領域サイズにあわせて壁越え開始シリンダを前にずらすと
    解決するかも。はずしているかもしれませんが(^^;
  20. まりも さん   2002-10-29 21:36:47
    LBAモード指定だとBIOSで全容量見えるみたいなんです。CHS指定では当然桁溢れでダメですが。MS-DOS(モード)の場合、DOSは内部からはLBAモードで動作しているようなので大丈夫なようです。でないとFORMATXでフォーマットできません(^^;)。DOSの論理セクタ自体がLBAのような32bit指定ですので、DISK BIOSとのアドレス変換を考えるとLBA指定のほうが簡単そうですよね。

    FATのサイズは、「アロケーションユニット数」×4バイトです。FATの「アロケーションユニット数」は、chkdskコマンドで表示できます。およそですが、それは 容量/アロケーションユニットサイズ(クラスタサイズのほうが通りがよいかも)です。
  21. ぷよよん さん   2002-10-30 02:32:47
    32GBを32KBクラスタで作成すると、アロケーションユニット数=1024^2=1048576個
    FATサイズ=4B*1024^2個=4MBですか、結構使用しますね。でも外してしまったようです(^^;

    ところでFORMATX 1.17βですが、もしかして32GB壁越え領域が65534クラスタ開始でないと
    領域サイズの32GB越えできない仕様でしょうか?
    うちの65531クラスタからだとβ版でも32GB制限が外れません(^^;

    あと、フォーマット前の領域確保のみ状態で、MS-DOS 6.20 起動不能(もどき)が発生
    しました。といってもハングアップでなく、起動で画面表示が出るまで10秒ほどウェイト
    がかかったような状態です。待っていれば一応起動しますがそちらではどうでした?