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


oldPC

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

#contents;

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

  • くらさんのお店で最初にパソコン通信(BBS)がスタートしたのは1987年のことだが、その時のシステムはFDベースで動いていた。その後、HDDを増設して、いろいろ生々流転はあったが、インターネット移行で閉局する2002年まで動いていた。
  • 最後のシステム構成は以下のとおりだった
    ・本体は、「PC9801 VX2」
    ・外付けHDDは「AV-120J」(120MB)
    ・インタフェースはSCSI、ボードは「Logitec LH-521」
    ・OSは、MS-DOS ver3.3(かな?)
    ・ソフトは、「WWIV」をカスタマイズ(Paku氏に感謝)
  • 「クラリNET 年表」をひも解くと、このHDDの由来について記載があり、10年間使っていたことが分かる。
     1993年4/12 ホストのHDD増強
         120MBに拡張(MAC,DOS/V用ライブラリボード新設)

    HOST_HDD
  • 閉局後も、そのまま保存して、時々電源は入れたりしていたが、インターネット移行と、その後システム拡張にかまけて、旧システムのことは何も考えていなかった。そのうち、FDDは壊れて、数年後には電源も入らなくなっていた。
  • HDDには10年分に近いホストとしてのデータが蓄積されている。これは捨てがたい。100名を超えるメンバーの思い出(怨念かな^^;)がこもっている。バックアップも全くとっていない、なんとかしておきたいという一念がモクモクと!
  • これを何とか取り出し保存できないものかと考えた。もっとも、MS-DOS上のファイルなので、外付けMOにでも抜き出しておけば、とりあえずは保存はできる。
  • それが、まずはPC本体が起動しなくなってしまい、PC98経由でHDDを読み出すことがもうできないのだ。
  • ということで、PC98-HDDサルベージ大作戦が始まる!

なぜ読めないのか?

  • 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」にトライ

  • そのものズバリの、対応ソフトと思われるドライバがみつかった。
  • しかしながら、対応のASPIドライバが必要とある。また、詳しい使い方もイマイチよくわからない(^^;) が気を入れて、5"FDD用に構築したWindows98機に、SCSIボード取り付けて試してみる。
  • BIOSレベルのユーティリティで、物理ドライブとしては認識を確認。「CONNER CP30100-121mb」という機体型番が表示されるところまでは順調(^^) 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近くあり無事終了と判断。 &ref(): File not found: "05drivebin.jpg" at page "クラリHOST用HDDのサルベージ!";

論理ファイル化

  • 取出しは成功したと思われる。これを適当なパラメータで区切りなおして読み出そうと言うわけ。使うツールは「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
  • 領域を選ぶと、ばらばらバラとファイルディレクトリーが表示されます。同様にして、別領域も無事表示される! &ref(): File not found: "08disk_A.jpg" at page "クラリHOST用HDDのサルベージ!";
  • これだ、これだ!! と小躍り大踊りして、取り急ぎ、ファイルコピー(ドラッグ)して、Windows98上にファイル保存する。

エミュレータ上で動作

  • とりあえず、ファイル化できれば、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に割付けて再起動すると、何事もなくシステムが立ち上がり、昔懐かしい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
トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元