Win2k on VMware (on Linux)


能書き

Linux の上で走るVMware は既にかなりポピュラーになっていますが、ここ では、ThinkPad にプレインストールされた Windows2000 をVMware on Linux で走らせてみた結果を報告します。

プレインストールされた Win2k を Linux とのデュアルブートにできる事は解っていましたが、その Win2k を VMware on Linux から走らせる事ができるかどうかについては自信が有りませんでした。 で、こわごわやってみたのですが、なんとか成功しました。

なんでこんな面倒な事にこだわったか、ですか? Win2k を改めて買うのがどうしても嫌だったんです:-) というのは冗談(でもなかば本気)ですが、 dual boot できるようにしておくと、Linux ではまだサポートが不十分な機能(例えば USB CD-ROM やディジタル・カメラを接続するとか)が確保できるから、です。

さて、おおまかな手順と、それぞれのポイントは

  1. Win2k を(ちょっとだけ)Hack する。(Non-ACPI HALにする。) (警告:このステップだけは慎重に。失敗すると、Windows が 立ちあがらなくなる可能性が有ります。) とはいうものの、あっさりリカバリできるし、 Linux から file をさわれるし、何とかなるので、実際はそれ程怖がる 必要はない。(悪魔のささやき)
  2. VMware をインストールする。
  3. Linux 上のvmware-config.pl で VMware を configure する。 (全ての質問にreturn のみで答 える)
  4. 起動するシェルの locale を英語にする。
  5. VMware を立ち上げ、Wizard で設定する。 (Disk type setting で Exisiting physical disk を選ぶ)
  6. Virtual machine を起動 Lilo で Windows を、Windows の selector では、 VIRTUAL を選ぶ。(途中でたくさん出る警告は無視。)
  7. VMware tools は install しない。

Win2k の変更

Win2k は、ACPI (Advanced Configuration and Power Management) をサ ポートしてるんだとか。(どういうものなのか、何が嬉しいのか、私に聞 かないで下さい。)で、 ThinkPad 240X はこの機能を持っているので、その上にプリインストール されている Win2k もこの機能を ON にしてあります。

しかし、VMware が供給しているvirtual machine は、まだこの機能を実 装していず、このまま Win2k を立ち上げると途中でクラッシュしてしま います。

そこで、Win2k が non-ACPI で動くようにするわけですが、次の手順でや りました。

  1. Win2k のインストール disk を持っている友人から、 HAL.DL_ と NTOSKRNL.EX_ というファイルを二つもらってくる。
  2. TP 上で、Win2k をネイティヴに(MVware の上でなく)立ちあげ、 command prompt を開く。
  3. 上のファイルが、例えば A: ドライブにあるとして
        expand A:\HAL.DL_ C:\WINNT\SYSTEM32\VMHAL.DLL
        expand A:\NTOSKRNL.EX_ C:\WINNT\SYSTEM32\VMOSKRNL.EXE
    	
    とやって、展開します。
  4. command prompt で
        C:\> attrib boot.ini -s -h -r 
    	
    とやって、boot.ini を読めるようにし、その最後に
        multi(0)disk(0)rdisk(0)partition(1)\WINNT="VIRTUAL" 
        /fastdetect /KERNEL=VMOSKRNL.EXE /HAL=VMHAL.DLL
    	
    の行(実際には一行にする)を付け加えます。
  5. boot.ini の属性をもとにもどします。
        C:\> attrib boot.ini +s +h +r
    	
これで、reboot の際に Win2k のboot selector で、二つのWin2k (ACPI 版のHAL と non-ACPI の HAL を持ったものの2種)を切りかえられるよう になりました。VMware では、VIRTUAL と名付けた方を選び、ネイティヴ で立ち上げた時は、元の"Windows 2000 ..." の方を選びます。

VMware のインストールとConfigure

VMware のインストールは簡単で、rpm package を rpm コマンドを使って インストールするだけです。

一方その後のセットアップはそれ程簡単ではありません。というか、この 部分だけとっても素気ない Perl スクリプト (vmware-config.pl)で他の 部分と比較して とても見通しが悪い。(英語だから、という事もあるの かも知れません。)

でも心配御無用。秘策があります(ってそんな大層なものでもないですが)。 要するに「デフォルトの答が用意されている質問には、すべてそのままリ ターンキーを押す(デフォルトの答を選ぶ)」です。簡単ですね。でも、 これで OK、ちゃんと動きます。

もしこれで問題が出るとしたら、むしろ Linux の環境の方で、

くらいでしょうか。

VMware の設定

さていよいよ、VMware を立ち上げるのですが、その前に…。 ロケールに関する環境変数を必ず英語にしておいて下さい。 (Vine はデフォルトで日本語になっています。)すなわち、

LANG="ja_JP.eucJP"
LC_ALL="ja_JP.eucJP"
LANGUAGE="ja"
    
となっているのを
LANG=
LC_ALL=
LANGUAGE=
    
とすれば OK です。(Bash や zsh ならば、この通り type する。)

次にsuper user になって、vmware を起動します。起動したら、動作モー ドを聞いてきますから、wizard を選択。以下、各パネルでの設定です。

Windows 2000 on VMware の起動

とりあえずの設定は以上で完了です。ここで、menu bar の左端の Power On ボタンを click すると、VMware のvirtual machine が起動されます。

いろんな警告や表示が出ますが、無視して OK としてやれば良いでしょう。 RTC にアクセスできない、という警告が出ますが、Win2k でちゃんと時刻 が表示されるので、これも無視。

Virtual machine は、自前の BIOS を持っていて、その起動画面も出て来 ます。ちょっと感動もの。でも、ここからはタイミングが大事、しっかり 画面を見ていて下さい。

最初に、Liloの選択画面が出ます。デフォルトでは Linux になっている と思いますが、カーソルキーで Win2k のラベルを選択 します。Linux を選んでしまうと、律義にその Linux を立ち上げようと します。/dev/hda2 を read only にしてあれば error で止まりますが、 そうでなければ…。(/dev/hda2 は、read only (デフォルトのまま)に しておくのが得策かと。)

次に、Win2k のboot selector 画面になりますので、先に設定した Virtual の側の OS を選びます。

ここからは時間もかかりますし、タイミングを要求される操作もないので、 コーヒーでも飲みながら、Win2k が立ち上るのを待ちます(って、そんな にはかからないですが)。 無事立ち上がったでしょうか。

立ち上がったなら、menu button の full screen を click して、full screen mode にします。ここからは、普通の Windows 2000 と同じように 使えます。full screen mode を抜けるには ctrl-alt-esc です。

Win2kを終了するには、通常通り、「スタート」メニューから(いつも思 うんですが、これちょっと「お馬鹿」ですよね:-) 「シャットダウン」を 選び、電源を落せる状態にしてから、menu button の Power off を click します。

再起動の際にも、警告が出ますが、無視して OK。警告を出さないように もできますが、そうそう起動する訳でもないので、私はそのままにしてい ます。

VMware tools のインストール

windows mode になっている状態で、VMware の"Setting" menu から、 VMware tools install を選んで、VMware tools を install します。で も、私は一度も使った事がないので、普通は必要ないでしょう。特に dual boot したいなら(ネイティヴでも使いたいなら) SVGA driver をインストールしてはいけ ません!!


301/1,730,990
Takayasu Fukuda
Last modified: 2010-03-27 (Sat) 17:53:03 PDT