OSR2へアップグレードしたら... 1998.1.28

     Windows95−OSR2のCD−ROMを入手。複数あるマシンの1台を試しにアップグレードすることにした。このマシンには,DOS6.2もインストールしてある。今回もこのDOS6.2の環境を残すことにした。更にアプリケーションフォルダも再インストールしないで済むようにハードディスクの再フォーマットせずにアップグレードする方法を取ることにした。

     まず,OSR2のCD−ROM内のWIN95ディレクトリを丸ごとHDDにコピーした。これはOSR2をCD−ROMからインストールするよりもHDDからインストールする方が速度的に有利なことと,今後デバイスを拡張した際にWindowsがインストール用CD−ROMを必要とする時に自動的にHDDから読み込んでくれて便利なためである。

     次に,Windows95から,HDDの中のwindowsフォルダと今コピーしたWIN95ディレクトリ,その他残して置きたいフォルダ以外のフォルダ全てを削除した。Windows95が動作していると削除不可能なファイルもあり,いくらかのフォルダが削除されずに残る。

     この後リブートし,Windows95のスタートメニューで「旧バージョンのDOSで立ち上げ」を選択,DOS6.2でマシンを起動した。ここで,FDを使って残っているwindowsディレクトリやその他のディレクトリ,更にルートディレクトリにある不要なファイルを削除する。

     しかし,DOS6.2環境では,ロングファイル名のエントリが削除出来ずに残ってしまう。そこで,DEBUGを使って直接HDDのルートディレクトリエントリを書き換えた。FATとの矛盾は残るが,これは,この後に/Fオプションを付けたCHKDSKを走らせ,異常と検出されたクラスタをファイルに変換し,後で削除すれば良い。なお、ここでFATの矛盾を解決しておかないとこの後のWindows95インストール過程の最初に実行されるSCANDISKで削除したファイルやフォルダが復元されてしまう場合がある。
     この後,AUTOEXEC.BATやCONFIG.SYSの内容を整え,WIN95ディレクトリに移動,SETUPコマンドを投入しOSR2をインストールした。無事インストールを完了,ネットワーク回りの設定やビデオカード,サウンドカードのドライバの更新を実行した。

     これで問題がなければ何も言うことはない。MicroSoftの製品だけに何か問題が起こりそうな気がする。

     OSR2の環境整理が一段落した所で,わざわざ残しておいたDOS6.2でマシンを起動した。Windows95のスタートメニューの8番には「旧バージョンのDOSで立ち上げ」が間違いなしに設定されている。このメニューはWindows95インストールの時に,HDDに旧バージョンのDOSがインストールされていると設定されるものだ。

     DOS6.2でディレクトリ表示やその他簡単なコマンドを投入し動作確認をする。当然ロングファイル名の表示はされないが,DOS6.2としての動作に特段問題はない。ここでマシンの電源を切り,再度投入。Windows95が立ち上がるはずなのだが,HDDのアクセスランプがついたままで立ち上がってこない。

     今までのWindows95ならここでうまく立ち上がってきた。OSR2に変更したらダメだ。やはり問題が起こった。マシンの電源切断,投入を繰り返すも状況は変わらない。

     Cドライブの先頭セクタにあるブートセクタが壊れているか内容がOSR2になって変更になった可能性がある。

     仕方ないので,起動用FDでシステムを立ち上げる。DEBUGを起動してブートセクターを読み出してみた。不思議な事にブートセクタの最後の方に書かれてあるべきWINBOOT.SYSのファイル名が見あたらない。今まではここにMSDOS.SYS,IO.SYSとWINBOOT.SYSの3つのファイル名が書かれていた。今見てみるとWINBOOT.SYSが見あたらない。また,セクタの先頭バイトにあるジャンプ命令の飛び先も2バイトずれている。


     旧DOSとWindows95を同時にインストールすると,おのおののシステムファイルは次のように動作環境に応じてリネームされる。

      DOS6.2システムファイル
      DOS6.2動作環境Windows95動作環境
      IO.SYSIO.DOS
      MSDOS.SYSMSDOS.DOS
      COMMAND.COMCOMMAND.DOS
      CONFIG.SYSCONFIG.DOS
      AUTOEXEC.BATAUTOEXEC.DOS

      Windows95システムファイル
      DOS6.2動作環境Windows95動作環境
      WINBOOT.SYSIO.SYS
      MSDOS.W40MSDOS.SYS
      COMMAND.W40COMMAND.COM
      CONFIG.W40CONFIG.SYS
      AUTOEXEC.W40AUTOEXEC.BAT

     システムがブートする時、ルートディレクトリにWINBOOT.SYSがあればそれをロードし,もし見つからなければMSDOS.SYSをロードする。仮に上記に示したようなDOS6.2でのマシン起動を考慮しないならば,ルートディレクトリに存在するMSDOS.SYSは,必ずWindows95システムファイルであり常にそれをロードすればよい。

     DOS6.2でのマシン起動を許す限りはその後の起動に備えて,ブートプログラムはWINBOOT.SYSの存在を考慮しなければならないはずだ。ところがどういう訳かブートセクタにWINBOOT.SYSの文字列が無いのだ。

     どうもOSR2は,旧のDOSでのマシン起動を考慮していないように思われる。元々,OSR2はメーカのプレインストールマシンのためのOSであり,今更旧バージョンのDOSを組み込むメーカなんていない。更にOSR2はFAT32をサポートする。FAT32になれば旧のDOSは使うことはできない。

     結局OSR2では旧DOSと同時にインストールされることを考慮していないと考えられるのだが,FAT16でインストール時点に旧のDOSがインストールされていればスタートメニューにそれを追加するという中途半端な事をしている。更に,インストール用CD−ROMのSETUP.TXTでは,「..Win3.1でこの文書を読むには...」なんて記述があり,旧DOSを結構意識している(内容が見直されていないだけかも)。

     前のバージョンのWindows95がインストールされたドライブのブートセクタからブートプログラム部分をコピーしてこの問題を解決した。