2000 年 2 月 28 日 (月) 自宅

先日買ってきた MAXTOR の 15GB ATA/66 ディスクを、 BP6 の UltraDMA/66 (チップは HPT のやつ) に挿してみました。 ついこのあいだまでの FreeBSD-current では、 どうも動作が怪しかった (しばらく使うとかならずハングアップ) のですが、 今日の -current では問題なく使えました。 とても速くていい感じです。

80x60 thumbnail image

本日の -current を make world してみました。 /usr/src と /usr/obj をそれぞれ別の ATA/66 ディスクに入れ、 インストールは ATA/33 のディスクにいたいして行う作業で、 1 時間 2 分 59 秒。 ちなみに CPU は Dualon 488MHz (75MHz * 6.5) です。

80x60 thumbnail image

さて、まもなくリリースされる 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 をフォーマットします。 まあ、遅いですがそこそこ動いてますね。

80x60 thumbnail image

さて、ここからが問題です。 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 のインストーラが起動します。 あれまぁ〜。すごいですね。

80x60 thumbnail image

で、延々時間がかかったあと、ファイルの読み込みを開始するのですが、 この残り時間がなんと 125 分…。

80x60 thumbnail image

うーん、眠くなってきたぞ…。あと 114 分……… (寝ました)。

80x60 thumbnail image

……起きてみると、 どうやらファイルの読み込みは終わったようです。 しかし、このデバイス検出がまた延々と終わらない。

80x60 thumbnail image

おそらく 10 分くらいはかかったのではないでしょうか?

80x60 thumbnail image

日付と時刻、コントロールパネルの設定などが始まりました。

80x60 thumbnail image

よし、完了! 再起動だ (本体ではなく、vmware が仮想 PC を勝手に再起動してくれますが、 なぜかゾンビが残ります)。

80x60 thumbnail image

わお、めでたく FreeBSD 上で Windows 98 が動きました。 と思ったのですが、すぐにハングしてしまいます。 どうやら画面に、EMM386.EXE がなんちゃらとか出てハングしているところを見ると、 vmware の EMM386 問題でしょう (英語版 Windows では EMM386 入れてないのかな?)。

80x60 thumbnail image

ということで、 Windows 起動時に F8 キーを押し、 「Safe mode with command prompt only」 で起動します。

80x60 thumbnail image

そして、EDIT.EXE を使い、\CONFIG.SYS 中の、

device=C:\WINDOWS\EMM386.EXE RAM
の行を、
rem device=C:\WINDOWS\EMM386.EXE RAM
のようにコメントアウトします (Windows のブートには問題ありません)。 実際には下の方の「devicehigh=」も「device=」に直した方がいいのかも知れませんが、 この際知ったことではありません。 DOS を知らずに Windows で育ったわかものは、 このあたりのテクは分かっておるまい (^^;。

80x60 thumbnail image

で、再起動。 お、今度は動いているね。

80x60 thumbnail image

Vmware 仮想スクリーンは「標準モニタ」として認識されました。

80x60 thumbnail image

をを! 「ようこそ」スクリーンがついに表示されました。

80x60 thumbnail image

もちろんスクリーンは標準 VGA (640x480 ピクセル、16 色) です。

80x60 thumbnail image

Vmware の FreeBSD port では、 「host only」形式のネットワークしかサポートされていません。 これは、FreeBSD box 内に仮想的な Ethernet のネットワークがあり、 そこに FreeBSD box のインターフェースと、 vmware 仮想 PC のインターフェースが刺さっているような状態です。 FreeBSD の ports では、 デフォルトではこの FreeBSD 側の仮想 Ethernet インターフェースに、 192.168.254.1/24 のアドレスを振ってくれます (もちろん、簡単に変更も可能です)。 ifconfig -a すると、 vmnet1 というインターフェースに見えています。

80x60 thumbnail image

今回は、vmware のインストール時には、 ネットワークなしで入れたのですが、 当然あとからでも追加は可能です。 設定メニューでネットワークを追加します。

80x60 thumbnail image

ただし動作するのは、「Host-only」モードだけです。 「Bridged」モードではまだ動作しません (このモードでは、ベースの Linux box がブリッジとして働きます)。 「Host-only」モードなんて全然役に立たないじゃないか、 と思われるかも知れませんが、 そんなことはありません。 FreeBSD box が NAT なりルーティングなりをすれば良いのです。 まあそれ以前に、 フロッピーがうまく動かない状態で、 FreeBSD box からソフトを転送するには、 この仮想ネットワーク経由が便利だということで設定しようとしているのですが (^^;。

80x60 thumbnail image

これで再起動すると、 AMD の PCI Ethernet コントローラとして仮想マシン上の OS からは認識されます。 Linux でも FreeBSD でも、そしてもちろん Windows でも、 標準サポートされていますね。

80x60 thumbnail image

「ネットワーク」のコントロールパネルから、 この仮想インターフェースの TCP/IP 設定を行います。 うちでは、ISDN のダイヤルアップルータが、 192.168.0.1/24 にいて、 こいつが DNS サーバも兼ねており、 ホストの FreeBSD box が 192.168.0.6/24 なので、 この仮想インターフェースには、

というデータを設定します。

80x60 thumbnail image

これで、ftp 192.168.254.1 などとすると、 ホストの FreeBSD box につながります。

80x60 thumbnail image

こうして、Windows 98 箱に vmware tools を持ってきました。 この vmware tools に入っている vmware 用ディスプレイドライバを持ってこないと、 VGA 以上の解像度になりませんし、 なにしろとても遅すぎるのです。

80x60 thumbnail image

というわけで、ディスプレイドライバの更新を行いましょう。

80x60 thumbnail image

Vmware tools をインストールすると、 C:\WINDOWS\TEMP に、vmx_svga.inf というディスプレイドライバのファイルを置いてくれます。

80x60 thumbnail image

「デバイスの選択」に「VMware SVGA」が現われましたので、 これを選択します。

80x60 thumbnail image

を、いきなり 800x600 で立ち上がってきました。 うーん素晴らしい。

80x60 thumbnail image

しかも全画面モードにすると、 結構ちゃんとしたスピードで動いています。 体感では、iMac 233 での Virtual PC の倍は速いと思います。 うーん。そこそこ使えるぞ。

80x60 thumbnail image

さて、次は外のネットワークにつながるようにしましょう。 うちの 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 に向けられることになります。

80x60 thumbnail image

さらに 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 が通るようになりました。 これでもう完璧です。

80x60 thumbnail image

で、Internet Explorer を起動しようとすると、 謎の MSN の configure が上がってしまいました。 これがまた役に立たないこと役に立たないこと。 完全にモデムしか選択肢がないのです。 Windows 98 SE って、 ダイヤルアップルータ経由で使うことは考えていないんでしょうか?

80x60 thumbnail image

ということで、Windows 98 SE では、 私は Internet Explorer アイコンのプロパティから、 接続ペインを選ぶと、 ここから (Windows 98 初代にもあった) インターネット接続ウィザードが起動できます。

80x60 thumbnail image

で、こいつで LAN 経由の接続を選択します。

80x60 thumbnail image

さらになぜかもう一度聞いてくるので LAN 経由だよ、 としつこく答えると、やっと LAN 経由で設定してくれます。 こうしないと Internet Explorer アイコンは使えないのです。 うーむ。

80x60 thumbnail image

ということで、Internet Explorer も起動して、 Web のブラウズができました。 すごいぞ vmware。 めでたしめでたし。

80x60 thumbnail image

うーん、何か変な感じ。 でも、これだけやるのは結構疲れますね。 もうちょっと速ければストレスも少ないんでしょうが…。 インストールが終わるまでは結構な忍耐が必要な作業です。

80x60 thumbnail image


このサイトへのリンクには何ら許可は必要ありません。 ただし、無断で写真をダウンロードして他の場所に掲載したり、 画像加工の素材として利用するなど、再配布に当たる行為はしないようにしてください。 また、このサイトへのリンクであることを明示すること無しに <img src="..."> などで他のページの内部に画像ファイルを取り込むことも、 ご遠慮下さい。