HDD チェックを回避する


  1. 怪しいところを調べる
  2. PC-9821La13/S14 システムインストールディスク(起動用)の中で、 怪しそうな箇所を調べてみます。

    1. CONFIG.SYS
    2. BUFFERS, FILES の設定、HIMEM.SYS, MOUSE.SYS, RAMDRIVE.SYS の組み込み、 あと環境によっては PC カードドライバ等の組み込み くらいしか記述されていないので、特に怪しいということは無さそうです。

    3. AUTOEXEC.BAT
    4. 98CHECK と SYSREST /R いうコマンドを起動する記述があります。 ちょっと怪しいかも。(^^;;

    5. 98CHECK.EXE
    6. このプログラムは、実行している本体が La13 なので、そのまま通り抜けます。

      試しに Xa10/K8 (Pentium 200MHz 他 ... に改造済み)で実行したところ、

      本機では再セットアップすることはできません。
      この画面を終わらせるには、電源を切ってください。
      という白い画面が出ました。どうやら機種チェックのようです。 実行環境が 98CHECK.INI に記述されている情報と合っていれば、 そのまま通り抜けるようになっているようです。

      La13 で実行する分にはこれも怪しくは無さそうです。

      気になるのであれば、AUTOEXEC.BAT の中の 98CHECK と書かれた行の頭に REM を付けて実行しないようにするのも良いでしょう。

    7. SYSREST.EXE
    8. これは Windows 95 再セットアップのプログラムです。 これを実行したところで HDD チェックに引っかかっています。 めっちゃ怪しいです。(笑)

      /R というオプションの意味は、

      システムバックアップツール(SYSBACK.EXE)で作成した
      バックアップディスク(FD・MO・HD)よりハードディスクに再
      セットアップを行います.
      だそうです。

      このプログラムを解析するのは非常に困難なので、 他の怪しそうなところをチェックしていきます。

    9. 拡張子が DAT のファイル
    10. 拡張子が DAT になっている、いかにも怪しげなファイルが全部で 4 つあります。 これらの中身を見てみましょう。

      DELLBL.DAT は、改行、Y + 改行という内容です。 LABEL < DELLBL.DAT という使い方をして、 ボリュームラベルを削除するときに使われるものと思われます。

      FREESIZE.DAT は、"550000000" という内容です。 これは意味不明です。飛ばしましょう。(^^;;

      PARTSIZE.DAT は、それぞれの HDD 固有の値と デフォルトの第 1 パーティションの容量の設定が書かれています。
      実は、本当に怪しいのはここです!




  3. PARTSIZE.DAT ファイルに書き加える
  4. 親切なことに、PARTSIZE.DAT ファイルの中の注釈文に説明が書かれています。 それを読むと、SENSEHD.EXE の戻り値(リターン値)と 第 1 パーティションサイズを = で結んだものを書けば良い というのが分かります。

    では、La13 で SENSEHD.EXE を実行してみましょう。

    そのままコマンドプロンプトが返ってきました。 どうやら SENSEHD.EXE 戻り値は、画面に表示されるわけではなく、 ERRORLEVEL として返されるようです。

    ERRORLEVEL の値を調べる方法はいくつかありますが、 もっとも身近なのは、バッチコマンドの if 文で調べる方法です。 ですが、0 〜 255 まで考えられる戻り値を調べるには、 この方法だと非常に面倒で、時間が掛かります。

    ここで、私が実際に使った調査プログラム S_HD を公開しておきますので、 使いたい人はシステムインストールディスクをコピーしたフロッピーの中に コピーして使ってください。 ここにあるバイナリを直接実行したくない人は、 C 言語のソースファイルも置いておきますので、 参考にして使ってください。(Turbo C++ でコンパイル & 動作確認済み)

    SENSEHD.EXE の戻り値が分かったら、PARTSIZE.DAT ファイルに記述を加えますが、 その前に COPY PARTSIZE.DAT *.ORG コマンドで オリジナルのファイルを保存しておくと良いでしょう。

    EDIT PARTSIZE.DAT でエディタを起動し、記述を加えます。 最後の行に、以下のような 2 行を加えるだけで良いでしょう。 ここで書き加える第 1 パーティションサイズで 固定されるわけではありませんので、 HDD の容量をみて妥当な数値を記述しておきます。

    ; ?.? GB ← HDD の容量を書く
    戻り値=パーティションサイズ

    参考までに、私が追加した内容を紹介します。

    ; 3.2 GB (IBM DYKA-23240)
    48=2047

    PARTSIZE.DAT の編集が終わったら、上書き保存してエディタを終了します。




  5. Windows 95 再セットアッププログラムの起動確認
  6. では、SYSREST /R を実行して、 Windows 95 再セットアップが始められるかどうか確認します。

    Windows 95 再セットアップメニュー

    左のような画面が出たら、HDD チェック回避は成功です!

    もし、「該当するハードディスクがありません。〜」という画面が出たら、 SENSEHD.EXE の戻り値が正しく記述されていない可能性が高いので、 = (イコール)の前後にスペースが入っていないか、 行頭にスペースやタブが入っていないか、無用な空行が入っていないか、 よく確認してください。





それでは、気を取り直して・・・。


Page 5 へ...