Linuxが動いているDELLにWin2kを仮想環境で動かしたくなった人向け。
既存Windowsからアップグレードインストール
Windows上でBIOSチェックを行っているという事になります。
これがどういう仕組みなのかは既に先人が調査済です。I386フォルダ内のBCHK32.EXEという隠しファイルがBIOSチェックを行っているようで、DELLのBIOSなら「+++」、そうでないなら「---」を出力し、その結果に応じてセットアッププログラムを起動するかしないかという判定を行っているようです。
そこで、バイナリエディタからBCHK32.EXE に変更を加えてみます。ただし、今回は面倒なのでイメージに抽出したISOファイルを直接いじります。
ISOファイルから「2B 2B 2B 00 25 73 00 00 2D 2D 2D」というバイナリを検索し、最後の2D 2D 2D(---)を2B 2B 2B(+++)にします。
画像はBCHK32.EXEですが、ISOは無圧縮なので直接上書きしても問題ありません。ただし、バイナリを削除するとISOやIMGといったイメージファイルは壊れます。CDイメージのファイル差し替えはAnyBurn、FDイメージのファイル差し替えはDiskExplorerなどを使うと良いです。
変更して再度実行してみたところ、DELLじゃなくても「+++」とBCHK32.EXEが出力するためにDELLのBIOSと誤認識しセットアッププログラムが起動しました。
でも今回やりたいのはこれではなく「新規インストール」なので、この方法ではセットアップできません。
FDブートからのインストール
通常、DELLのインストールディスクからCDブートを試そうとすると、このような画面になりセットアップできません。
FDブートならどうだろうかと試してもみました。Windows2000のインストールディスクにはFDブートをさせるための4枚のFDイメージがBOOTDISKフォルダ内に格納されています。DELL版も例外ではありません。
しかし、結果はCDブートと同様、上のようなメッセージが出てきました。
CDBOOT1.IMG内には6つのファイルが格納されています。
DISK101
NTDETECT.COM
NTKRNLMP.EX_
SETUPLDR.BIN
TXTSETUP.SIF
BIOSINFO.INF
リテール版Windows 2000(SP無し)のCDBOOT1.IMGと比較してみたところ、以下の通りになりました。
===内容が同一===
DISK101
BIOSINFO.INF
===内容が異なる===
NTDETECT.COM
NTKRNLMP.EX_
SETUPLDR.BIN
TXTSETUP.SIF
TXTSETUP.SIFはセットアップするファイルリストのようなものなので起動には関係がありません。ちなみにDELLのSP2適用済のものより、SP適用無しのリテール版のほうがファイルサイズが大きいのでドライバ関連が異なるのかもしれません。これは後で調べます。
しらみつぶしにDELL版のFDに一つずつ異なっていたファイルをコピーして調査をしてみたところ、原因はSETUPLDR.BINにあることがわかりました。
DELL版のSETUPLDR.BINはリテール版と比べ00000000~000011FFまで余分なヘッダが存在し、そこでDELLのBIOSかDELLでないBIOSかを区別しているものと推測されます。
試しに実験として、DELL版のSETUPLDR.BINを000011FFまで削除し、00001200から始まるファイルとして変更してみました。
とりあえずさっきのメッセージは出てこなくなり、セットアッププログラムが起動しました。
画面を進めたところ、普通にセットアップできました。プロダクトキーはDELLの筐体に貼ってあるCOAシール記載のものを入力しました。リテール版のキーは通らなかったです。
CDブートからのインストール
FDイメージ内のSETUPLDR.BINと、CDのI386フォルダ内のSETUPLDR.BINは同一ファイルなので、先と同様に00000000-000011FFまでを削ったものに差し替えれば起動できます。
リテール版との比較
検証するにあたってSP適用なしのリテール版のセットアップディスクからもW2Kをインストールしましたが、試しにDELLのキーを入力したところ「無効なキー」としてはねられました。
インストールされるファイルの数をWinMergeで比較してみたところ、内容に差はあっても数については変わらないようです。むしろSP2が適用されたDELL版のほうが多かったです。リテール版にしかないファイルもありましたが動作に影響を与えないようなもの、例えばプロバイダの画像の種類が多いというぐらいでした。DELL版でもリテール版でも内容は違うかもしれませんが、同じ数のドライバがインストールされていました。
つまり、DELL版とリテール版でインストールされる内容は同じでした。