先日買ってきた MAXTOR の 15GB ATA/66 ディスクを、 BP6 の UltraDMA/66 (チップは HPT のやつ) に挿してみました。 ついこのあいだまでの FreeBSD-current では、 どうも動作が怪しかった (しばらく使うとかならずハングアップ) のですが、 今日の -current では問題なく使えました。 とても速くていい感じです。
本日の -current を make world してみました。 /usr/src と /usr/obj をそれぞれ別の ATA/66 ディスクに入れ、 インストールは ATA/33 のディスクにいたいして行う作業で、 1 時間 2 分 59 秒。 ちなみに CPU は Dualon 488MHz (75MHz * 6.5) です。
さて、まもなくリリースされる FreeBSD 4.0-RELEASE ですが、 なんとこの Linux エミュレータであの Vmware for Linux が動いてしまいます (たぶん説明の必要はないと思いますが、 Windows や PC-UNIX を十分に動かすことができる PC のエミュレータです)。 Netscape Communicator for Linux や Quake for Linux が動くあたりまでなら、 なんとか分からないでもないのですが、 さすがに Vmware までエミュレータで動くとは思いませんでした。 いったいどんなことをすればそんな魔術ができるのかわかりませんが、 とにかく動いてしまうところが物凄いです。 しかも限定つきながらネットワークまで動くようです。 やってみましょう。
FreeBSD 4.0-RELEASE には vmware が ports として登録されていますので、 インストールはこれだけです (ただし、ネットワークが細い場所にいるなら、 CD-ROM から linux_base の package を先にいれておくのがお勧めです)。
# cd /usr/ports/emulators/vmware # make # make install
そして、 /etc/rc.conf で linux_enable="YES" として、 Linux エミュレータをブート時に有効化する方がよいでしょう。 再起動しなくても、linux(1) コマンドで Linux エミュレータは有効化できます。 あと、どうも未確認ですが moused とは相性が悪い気がします。 私は /etc/rc.conf から moused_enable="YES" の行を外して、 /etc/XF86Config の
Section "Pointer" Protocol "Microsoft" Device "/dev/mouse" BaudRate 1200 Emulate3Timeout 50 EndSectionの部分を、
Section "Pointer" Protocol "PS/2" Device "/dev/psm0" BaudRate 1200 Emulate3Timeout 50 EndSectionにしましたが、もしかしたら何かの勘違いかも知れません (フルスクリーンモードに不都合があるとか警告メッセージが出てきた)。
追記
sanpei 情報によると、X が moused/sysmouse で動いていても、
特に問題はないようだ。
ということで、上記記述は FreeBSD でのデフォルトの
「Protocol "sysmouse"」「Device "/dev/sysmouse"」
で、構わないということだ。ただ、moused が走る分、
若干重い処理の時にマウスカーソルがもたつく傾向が強い気がする。
(2000/04/04)
というわけで、とりあえずローダブルモジュールも必要なので、 念のため再起動しても良いでしょう (実際は /usr/local/etc/rc.d/vmware.sh start で、 再起動なしにローダブルモジュールも読み込まれます)。 なお、RELEASE に付属する ports では SMP カーネルに対応していません。 vmware 2.0beta に対応した新しい ports を Vmware on FreeBSD ページ から get すれば、 SMP にも対応しているようですが、 今回は来るべき RELEASE での環境をテストするのが目的なので、 vmware 1.1.2 用の ports でやってみます。
さて、vmware のサイト で、 試用ライセンス (30 日間有効) を申請します。 これはすぐにメールで送られてきますので、 これを cut & paste して、 /root/.vmware/license というファイルに置きます。 これで OK。vmware コマンドで起動してきます。
ただし、 現状では FreeBSD 上ではどうもフロッピーの認識や読み込みに難があるようで (ドキュメントに書いてある)、 CD-ROM ブートをする方が良いでしょう。 私は OEM 版 Windows 98 SE で CD-ROM ブートしてみました (先日、例の ATA/66 のディスクと一緒に買ったのです)。 なお、vmware は Phoenix BIOS が入っていますが、 フロッピーの自動認識がきかない以上、 この BIOS の BOOT サブメニューから、 HDD、FD、CD-ROM のブートシーケンスを制御してブートデバイスの選択を行うことになります。 まあ、インストール時だけですが…。
というわけで、CD-ROM から Windows 98 SE のインストーラを起動し、 vmware ウィザードから作った仮想 HDD をフォーマットします。 まあ、遅いですがそこそこ動いてますね。
さて、ここからが問題です。 Vmware は現在、EMM386.EXE の動作に問題があります (これは vmware の FAQ に書いてある)。 ところが、CD-ROM サポート付きの Windows 98 Setup を動かすには、 EMM386.EXE がないとコンベンショナルメモリが不足して動かないのです (英語版なら足りるのでしょうが…)。 というわけで、まずは Windows 98 SE の CD-ROM ブートで、 CD-ROM サポート付きの単純ブートを選択します (セットアップを行うモードではない)。 こうすると、Windows 98 SE CD-ROM が D: ドライブに見えます。
ここでコマンドプロンプトから、
A:\> C: C:\> mkdir \win98 C:\> cd \win98 C:\WIN98> copy d:\win98\*.* .と打ち、vmware のリセットボタンから仮想 PC をリセットします。 これで、CD-ROM 上の Windows のインストールユーティリティと CAB ファイルを、 ハードディスク上の C:\WIN98 にコピーできました。
ここで、今度は CD-ROM サポートなしでブートします。 これで、 日本語版 setup.exe を起動するに十分なコンベンショナルメモリが確保できます。 というわけで、
A:\> C: C:\> cd \win98 C:\WIN98> setupとすると、Windows のインストーラが起動します。 あれまぁ〜。すごいですね。
で、延々時間がかかったあと、ファイルの読み込みを開始するのですが、 この残り時間がなんと 125 分…。
うーん、眠くなってきたぞ…。あと 114 分……… (寝ました)。
……起きてみると、 どうやらファイルの読み込みは終わったようです。 しかし、このデバイス検出がまた延々と終わらない。
おそらく 10 分くらいはかかったのではないでしょうか?
日付と時刻、コントロールパネルの設定などが始まりました。
よし、完了! 再起動だ (本体ではなく、vmware が仮想 PC を勝手に再起動してくれますが、 なぜかゾンビが残ります)。
わお、めでたく FreeBSD 上で Windows 98 が動きました。 と思ったのですが、すぐにハングしてしまいます。 どうやら画面に、EMM386.EXE がなんちゃらとか出てハングしているところを見ると、 vmware の EMM386 問題でしょう (英語版 Windows では EMM386 入れてないのかな?)。
ということで、 Windows 起動時に F8 キーを押し、 「Safe mode with command prompt only」 で起動します。
そして、EDIT.EXE を使い、\CONFIG.SYS 中の、
device=C:\WINDOWS\EMM386.EXE RAMの行を、
rem device=C:\WINDOWS\EMM386.EXE RAMのようにコメントアウトします (Windows のブートには問題ありません)。 実際には下の方の「devicehigh=」も「device=」に直した方がいいのかも知れませんが、 この際知ったことではありません。 DOS を知らずに Windows で育ったわかものは、 このあたりのテクは分かっておるまい (^^;。
で、再起動。 お、今度は動いているね。
Vmware 仮想スクリーンは「標準モニタ」として認識されました。
をを! 「ようこそ」スクリーンがついに表示されました。
もちろんスクリーンは標準 VGA (640x480 ピクセル、16 色) です。
Vmware の FreeBSD port では、 「host only」形式のネットワークしかサポートされていません。 これは、FreeBSD box 内に仮想的な Ethernet のネットワークがあり、 そこに FreeBSD box のインターフェースと、 vmware 仮想 PC のインターフェースが刺さっているような状態です。 FreeBSD の ports では、 デフォルトではこの FreeBSD 側の仮想 Ethernet インターフェースに、 192.168.254.1/24 のアドレスを振ってくれます (もちろん、簡単に変更も可能です)。 ifconfig -a すると、 vmnet1 というインターフェースに見えています。
今回は、vmware のインストール時には、 ネットワークなしで入れたのですが、 当然あとからでも追加は可能です。 設定メニューでネットワークを追加します。
ただし動作するのは、「Host-only」モードだけです。 「Bridged」モードではまだ動作しません (このモードでは、ベースの Linux box がブリッジとして働きます)。 「Host-only」モードなんて全然役に立たないじゃないか、 と思われるかも知れませんが、 そんなことはありません。 FreeBSD box が NAT なりルーティングなりをすれば良いのです。 まあそれ以前に、 フロッピーがうまく動かない状態で、 FreeBSD box からソフトを転送するには、 この仮想ネットワーク経由が便利だということで設定しようとしているのですが (^^;。
これで再起動すると、 AMD の PCI Ethernet コントローラとして仮想マシン上の OS からは認識されます。 Linux でも FreeBSD でも、そしてもちろん Windows でも、 標準サポートされていますね。
「ネットワーク」のコントロールパネルから、 この仮想インターフェースの TCP/IP 設定を行います。 うちでは、ISDN のダイヤルアップルータが、 192.168.0.1/24 にいて、 こいつが DNS サーバも兼ねており、 ホストの FreeBSD box が 192.168.0.6/24 なので、 この仮想インターフェースには、
これで、ftp 192.168.254.1 などとすると、 ホストの FreeBSD box につながります。
こうして、Windows 98 箱に vmware tools を持ってきました。 この vmware tools に入っている vmware 用ディスプレイドライバを持ってこないと、 VGA 以上の解像度になりませんし、 なにしろとても遅すぎるのです。
というわけで、ディスプレイドライバの更新を行いましょう。
Vmware tools をインストールすると、 C:\WINDOWS\TEMP に、vmx_svga.inf というディスプレイドライバのファイルを置いてくれます。
「デバイスの選択」に「VMware SVGA」が現われましたので、 これを選択します。
を、いきなり 800x600 で立ち上がってきました。 うーん素晴らしい。
しかも全画面モードにすると、 結構ちゃんとしたスピードで動いています。 体感では、iMac 233 での Virtual PC の倍は速いと思います。 うーん。そこそこ使えるぞ。
さて、次は外のネットワークにつながるようにしましょう。 うちの ISDN ルータはヤマハのやつですが、 こいつに telnet 192.168.0.1 でログインして、
> administrator Password: パスワード # ip route 192.168.254.0/24 gateway 192.168.0.6とすると、
# show ip route 宛先ネットワーク ゲートウェイ インターフェース 種別 付加情報 192.168.254.0/24 192.168.0.6 LAN1 static 192.168.0.0/24 192.168.0.1 LAN1 implicit default - PP[02] staticとなって、これで 192.168.254.0 宛てのパケットが、 ホストの FreeBSD BOX に向けられることになります。
さらに FreeBSD BOX では、 /etc/rc.conf に gateway_enable="YES" という行を追加して再起動すると、 イーサネットと vmware 仮想ネットワークとのルータになります。 再起動したくなければ、
sysctl -w net.inet.ip.forwarding=1と打つだけです。 これで、192.168.254.2 の仮想 Windows 98 から、 ISDN ルータの 192.168.0.1 まで ping が通るようになりました。 これでもう完璧です。
で、Internet Explorer を起動しようとすると、 謎の MSN の configure が上がってしまいました。 これがまた役に立たないこと役に立たないこと。 完全にモデムしか選択肢がないのです。 Windows 98 SE って、 ダイヤルアップルータ経由で使うことは考えていないんでしょうか?
ということで、Windows 98 SE では、 私は Internet Explorer アイコンのプロパティから、 接続ペインを選ぶと、 ここから (Windows 98 初代にもあった) インターネット接続ウィザードが起動できます。
で、こいつで LAN 経由の接続を選択します。
さらになぜかもう一度聞いてくるので LAN 経由だよ、 としつこく答えると、やっと LAN 経由で設定してくれます。 こうしないと Internet Explorer アイコンは使えないのです。 うーむ。
ということで、Internet Explorer も起動して、 Web のブラウズができました。 すごいぞ vmware。 めでたしめでたし。
うーん、何か変な感じ。 でも、これだけやるのは結構疲れますね。 もうちょっと速ければストレスも少ないんでしょうが…。 インストールが終わるまでは結構な忍耐が必要な作業です。