クラリHOST用HDDのサルベージ! のバックアップ(No.3)


oldPC

クラリHOST用HDDのサルベージ!

サルベージ大作戦のはじまり

  • くらさんのお店で最初にパソコン通信(BBS)がスタートしたのは1987年のことだが、その時のシステムはFDベースで動いていた。その後、HDDを増設して、いろいろ生々流転はあったが、インターネット移行で閉局する2002年まで動いていた。
  • 閉局時点のシステム構成は以下のとおり
    ◆ 本体は  「PC-9801VX2」
    ◆ 外付けHDDは 「AV-120J」(120MB)
    ◆ SCSIボードは 「Logitec LH-521」
    ◆ OSは MS-DOS ver3.3(かな?)
    ◆ HOSTソフトは 「WWIV」をカスタマイズ(Paku氏に感謝)
  • 「クラリNET 年表」をひも解くと、このHDDの由来について記載があり、約10年間使っていたことが分かる。
    HOST_HDD
     1993年4/12 ホストのHDD増強
         120MBに拡張(MAC,DOS/V用ライブラリボード新設)
  • 閉局後も、そのまま保存して、時々電源は入れたりしていたが、インターネット移行と、その後システム拡張にかまけて、旧システムのことは何も考えていなかった。そのうち、PC98本体のFDDは壊れて、数年後には電源も入らなくなっていた。
  • HDDには10年分に近いホストとしてのデータが蓄積されており、これは捨てがたい。100名を超えるメンバーの思い出(怨念かな^^;)がこもっている。しかし、バックアップも全くとっていない、、、これを何とか取り出し保存できないかという一念がモクモクと湧いてきた。
  • もっとも、MS-DOS上のファイルなので、外付けMOにでも抜き出しておけば、とりあえずは保存はできるのだが、まずは本体が起動しなくなってしまい、PC98経由でHDDを読み出すことがもうできないのだ。
  • ということで、PC98-HDDサルベージ大作戦が始まる! 【 なお、実際にやったのは、2007年頃のこと 】

なぜ読めないのか?

  • Windows98はDOSモードもあるんだから、SCSIが接続できる環境さえあれば読めそうなものだが、如何せんダメなのだ!! MOはもちろん、5"FDでも読めるのに、HDDはダメなのだ!
  • 「PC-9800のHDDをDOS/Vで読もう」 には、『論理フォーマットが違うから』と明快な一言!

DOS用ディスクドライバ

  • 実は、上の記事はSCSI I/Fメーカのサイトで、対応策が具体的に解説されている。
    弊社DOS用ディスクドライバ(MSDRVR.SYS(*1))は、
    PC98ハードディスク形式のHDDの読み書きが可能です。
    このドライバをWindows95のCONFIG.SYSファイルに登録することで、
    PC98-NXおよびDOS/V機環境でもPC98ハードディスク形式のHDDの読み書きが行えます。
  • で、『他社HDDの場合は、「ASPIマネージャ部分をお使いのSCSIアダプタに合わせて」』云々と変更すればできるようになっている。。。とあるのだけで、この手は使えなかった。
  • そもそもが、このメーカ製品用の付属ソフトでもあり、ものが違えば試しようも無いわけです(^^;)

「ドライブ・トランス・SCSI - DXS」にトライ

  • そのものズバリの対応ソフトと思われる「DXS」なるドライバソフトがみつかった。
  • しかしながら、それだけではだめで、対応のASPIドライバが必要とある。また、詳しい使い方もイマイチよくわからない(^^;) が気を入れて、5"FDD用に構築したWindows98機に、SCSIボード取り付けて試してみる。
  • BIOSレベルのユーティリティで、物理ドライブとしては認識を確認。「CONNER CP30100-121m」という機体型番が表示されるところまでは順調(^^)
    SISC-BIOS
  • 次に、config.sys や \windows\IO.sys にドライバとdxsを組み込んでみる。ところが、「ASPIドライブがありません」という表示(ドライバが合っていないのか?) DXSは起動するものの、「No Drive」という、そっけないメーッセージで終了!
  • 別のSCSIボードがあったので、そちらでも試してみたが同じ結果。MS-DOS版のASPIセット(特に、aspidisk.sys)が、合っていないのだと思われる?? ここで敢え無くデッドロック
  • ASPIの周辺情報も集めてみたが、お手上げ。HDDメーカは「caravel」 と判明したが、2000年頃に倒産してホームページも閉鎖(個人サイトで保存版を運用していたが、ドライバ類は見当たらず)

「GetDrive」で成功!

  • 話は振り出しに戻って、関連情報を再度熟読すると、「GetDrive」 なるツールが存在することが判明。
  • また、偶然に、このツールに関する「掲示板」もあることを確認した
  • 実は、ふだんはほとんどリンク切れ状態で閉鎖したと思っていたが、ある日偶然繋がった。(今は、全くつながらない。) 最新の書き込みもあるではないか! この記事を克明に読み返したところ、できそうな感触を得る
  • 「GetDrive」は ハードディスクの内容を、丸ごとファイルに変換してしまうソフトであるが、その大まかな手順は、以下の3ステップである。
    1. ドライブからイメージ吸出し(getdrive)
    2. イメージの調整(editdisk)
    3. エミュレータで動作確認

ドライブからイメージ吸出し(getdrive)

  • SCSI-I/F経由でドライブ接続する。先ほどのように、SISI-BIOSで当該デスクが認識されれば基本的に準備OKである。
  • getdrive_dos版を利用して、Windows98のDOSプロンプトで実行する。
  • 問題は、パラメータの設定だ!!
  • まずは、ドライブ番号??外付けHDDはいったい何番??#128から始まるとあるが、内蔵IDE-HDDとの関連は??
  • 試行錯誤するしかないので、1セクタだけの取り出しを、順番にやってみる
     #128 本体のHDDのアクセスランプ点灯!
         セクタデータ見てみると、何か読める文字が(windowsっぽい?)
     #129 外付けHDDのアクセスランプ点灯する!
         セクタデータは、何か読めない文字が
     #130以降は エラー表示が返る
  • 以上で、ドライブ番号は129と決め込む。(ドライブ番号については、掲示板の書き込みでも確認された)
  • 次は、容量指定だが無理に計算しなくてもよいとある。最大サイズ(2147483647)を指定すれば、最後はエラー表示でとまるので心配ない。(実際には、237000で終了した。) 最後は、保存先のファイル名を指定する。
    GetDrive_start
  • 今回のパラメータをまとめると、最終的なコマンドは以下のようになる。
     c:>getdrive 129 238000 drive.bin
  • 読込みが始まると98HDDのアクセスランプが点灯状態しながら、LBA(全セクタの通し番号)を順次表示しながら進んでいく。読みきると、最後はエラーメッセージで中断する。
    GetDrive_end
  • できたイメージファイルのサイズを見ると、120MB近くあり無事終了と判断。
    Drive.bin

論理ファイル化 (editdisk)

  • 取出しは成功したと思われる。これを適当なパラメータで区切りなおして読み出そうと言うわけ。
  • 使うツールは「Editdisk」というディスクエクスプローラで、PC9801エミュレータのイメージファイルを操作するソフトで、oldMacで言えばまさしく「HFVexplorer」に相当する。
  • できたイメージファイルをEditdiskで開くが、プロファイルは「manualHDD」モードで読み込む
  • おおっ!! 領域名が表示される!! MS-DOS3.0 ・・・ が2段で表示
    Editdisk_open
  • そういえば、パーティションを切っていたかというわけです。で、領域を選んで、OKを押すも、冷たくエラーメッセージが返るのみ(^^;) サーチで検索しても、「IPL」云々のエラーで進まず
  • 実は、ここが肝なのです。再度、掲示板の記事を熟読。様々な失敗例が報告されており、パラメータを調整しないといけないようだ!!
  • つまり、べたファイルで取り出しているため、セクタ等の区切り情報がないわけで、「セクタサイズ、セクタ数、ヘッド数」のHDパラメータをもとにオリジナルのセクタ情報として再構成する必要があるわけです。
  • これらのパラメータの技術的な詳細については、「ハードディスクドライブの基礎知識」 が参考になる
  • とはいえ、どこをどういじればよいのか? 総当りは多すぎるし。
  • さらに、掲示板の記事を頼りにすると、「領域情報が、見かけ上もっともらしく表示されている場合は、セクタ数だけの問題で、セクタ数を変えてみれば、解決できる」との見通しが得られる。
  • そういえば、2つのDOS領域のサイズが少しおかしい。2つ合計しても120MBに及ばない
  • というわけで、セクタ数を 36から 1ずつ増やしながら確認します。「セクタ数」を入力して「再読込み」をクリックすると、領域の容量が変化していきます。その都度、領域を選択してOKを押すも、むなしくエラー!
  • これだけでは駄目かなと思いきや、「セクタ数=39」でOKに!
    sector_39
  • 領域を選ぶと、ばらばらバラとファイルディレクトリーが表示されます。同様にして、別領域も無事表示される!
    kurari_A
  • これだ、これだ!! と小躍り大踊りして、取り急ぎ、ファイルコピー(ドラッグ)して、Windows98上にファイル保存する。

エミュレータ上で動作 (Anex86)

  • とりあえず、ファイル化できれば、HDDイメージの再生は容易である。
  • PC9801エミュレータ定番の「Anex86」を起動して、まずはHDDイメージを新規作成する。パーティッションの概念はないみたいなので、おおよそサイズの合っている5MBと80MBの2つ選び、kurari_A.hdi、kurari_B.hdiとして保存する。
    kurari_A.hdi
  • MS-DOS3.0のFDDイメージから「Anex86」を起動し、フォーマットコマンド実行してHDDを初期化する。領域確保後にフォーマットでシステム転送して終了。(ただ、80MBは強制的に64MBで分割されてしまった。当時のOSの限界か?)
  • Editdiskでこのイメージを開いて、先ほどのWindows98上に保存したファイルをコピー戻しすれば、実質的にHDドライブが復元したことになる。
  • 復元した2つのドライブイメージを、Anex98上で Hdd1、Hdd2に割付けて再起動すると、何事もなくMS-DOSシステムが立ち上がり、昔懐かしいWWIV画面が表示される
    BBS_start BBS_login

  • ただ、シリアルポート?あるいはモデムコマンドの不符合などか? WWIV起動が異様に遅い、またコマンド受付がおかしいなどチューニングは必要だが、今後のことにして、まずは成功!!

「nhdgen」による ヘッダ情報付加

  • ディスクイメージのパラメータが確定した段階でヘッダ情報を付加すれば、実はそのままHDDディスクとして扱えることが、後でわかってこれも試してみた。
  • そのツールが、nhdgenである。なお、nhdは、別のPC98エミュレータ「T98-NEXT」用のフォーマットである。
  • nhdgenコマンドの使い方がよくわからなかったが、最終的には、これでよし
     c:>nhdgen /merge 98hdd.bin kurari.nhd
  • 実行すると、パラメータを一つずつ入力していく
    nhdgen_start
Input the disk image comment. (255 letters max)
 (特に、入力不要)
Please input number of heads.
 ヘッド数は 4
Input number of sectors.
 セクター数は 39
Input sector length. It is 512 bytes typically.
 セクタ長は 512
Input number of cylinders.
 シリンダー数は 4
  • いずれも、さきほどEditdiskで解析したパラメータである。これを順次入力していき、入力終われば程なく「Writing...  Done.」のメッセージが出て終了する。
  • 結果、新しいファイル kurari.nhd ができており、T98ーNEXT対応フォーマットなので、そのまま起動できる。
    T98-NEXT_start
  • PC98のエミュレータとしては「Anex86」をふだん使かっているので、ここはやってみましたと言うだけだが(^^;)
トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元