WindowsNTとVMwareで、eWnnサーバと翻訳魂サーバを立ち上げよう  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ver 0.2 2001/01/17 ver 0.1 2000/10/14 ver 0.0 2000/04/07 江端智一 E-mail:See http://www.kobore.net/mailAddress.gif http://www.kobore.net/  言うまでもありませんが、本文章は 無保証です。この文章の影響によりどの ような事が起ころうとも当方は一切の責任を持ちません。  本文章は、「WindowsでeWnnを使おう」「Windowsで翻訳魂を使おう」の後に 読まれる事をお勧めします。 0.変更履歴  ̄ ̄ ̄ ̄ ̄ ver 0.2 2001/01/17 補遺「IPアドレスを一つしか貰えない貴方の為に」に、 "TCPTunnel for Win32"の記述を追加 ver 0.1 2000/10/14 補遺「IPアドレスを一つしか貰えない貴方の為に」を追加 ver 0.0 2000/04/07  初版 1.目的  ̄ ̄ ̄ 『確かに、本来、ネットワーク管理とはかくあるべきだな』と思います。 ネットワーク管理システム製品に関しては、おそらく世界一のシェアと品 質を誇るヒューレッドパッカード(HP)社。 コロラド州フォートコリンズにある従業員3000人を収納するこの巨大な 建物内部のネットワーク管理は、ある日本のある企業の研究所の「ざる」のよ うな管理とは異なり、徹底的なネットワーク管理体制で運営されていました。 インターネット接続に、Proxyを介するのは常識としても、DHCPすらも使わ ないと言うこの徹底ぶり。 固定のIPアドレスがそれぞれのマシンに付与され、そのIPアドレスは、マシ ンのインターフェースカードのMACアドレスと常時対応関係が確認されます。 したがって、簡単にノートパソコンでネットワークにお邪魔する、なんてこと もできません。 試しに、空いているアドレスをこっそり使って、Web-Proxyにアクセスした ら、ものの見事にアクセスを拒否されました。そのまま接続してたら、間違い なくマシンを逆探知されたでしょう。 わたしは、急いでノートパソコンのイーサーケーブルを引っこ抜きました。 ----- 適当な理由を設けては、ネットワーク管理部門から固定アドレスをせしめ、 あちらこちらにサーバを立ち上げまくって遊んでいた、いや、もとい、研究に 勤しんでいた日々は、アメリカと日本の時差以上に遠く、自分の管理するマシ ンは、唯一WindowsNT WorkStation一台のみ。 さらに、その一台も常に電源を入れておくことが義務づけられ、常時バック アップサーバにPCの情報が吸い上げられるとのこと。 したがって、妙なOSを勝手にインストールしたりしたら、簡単に見つかって しまうことは明白でした。 ----- 毎日、英語で山のようなレポートや議事録を書かねばならないのに、「eWnn」 も「翻訳魂」も使えない環境。 たしかに、NTで使えるOmronSoft社の「English Navigator」は優れた製品で した。しかし、Windowsのソフトは、どいつもこいつも「マウスの扱いがうっ とうしい」のです。 Mule for Windowsで「eWnn」と「翻訳魂」を使って、さくさく仕事がしたい! という私のフラストレーションは限界まできていました。 ついには、HPから提供されたこのNTマシンにイーサネットカードを2枚差し て(勿論、勝手なシステム変更は禁じられているはずだけど)、プライベート ネットワークを作って、そこにLinuxサーバを立ち上げてやろうか、と、本来 多くの人にサービスを提供するはずのサーバを、プライベートなネットワーク に押し込んで使うという、本末転倒なシステム設計を考えるまでに至ってしま いました。 ----- ですから、「複数のOSを同時に使える仮想マシン(Virtual Machine)」の話 を聞いた時に、『そんな事ができるなら、NT一台で「eWnn」と「翻訳魂」を動 かして、メールもニュースもレポートも何もかも、NTのMule for windowsで片 付けることができるって事じゃないか』と、鼻で笑っていました。 だから今、心底驚いています。 私のPCでは、NT上でLinuxのXがまったく問題なく動き、NTが走っていること を忘れてしまうほどです。 NTとLinuxが同時に動き、Linux上で「eWnn」と「翻訳魂」が走り、Windows 上では、Mule for windowsで、辞書引きと翻訳のサービスが、さくさくと動い ているのです。 (※) 本文章では、「eWnn」と「翻訳魂」についての説明は省略します。 Windowsで「eWnn」と「翻訳魂」を使う方法に関しては、それぞれ「Windows でeWnnを使おう」「Windowsで翻訳魂を使おう」を参照してください。 2.What's "VMware"?  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ VMware( http://www.vmware.com/ )とは、IBM-PC/AT 互換機のエミュレータ です。要するに、1台のマシンで複数のOSを「同時に」使えるようにするもの です。 調べてみると、これまでにもエミュレータといものは、色々あったようです (dosemu, wine, wabi, softwin等)が、私が心底驚いたのは、この「複数のOS どうしで通信できる」と言うことです。 それどころか、これらの複数のOSのすべてが外部のマシンと通信できるので す。 これは、誰がなんと言おうが凄い。 PCスペックが馬鹿みたいに向上している昨今、OSが違うと言うだけで新たに サーバ用PCを買わなければならないのを苛立たしく思っているネットワーク管 理者の方も多いと思います。 NTとLinuxとBSDのサーバを1台で行い、おまけにそのマシンでWindow98を立 ち上げてWordやExcelで仕事もでき、さらに同じマシンのメールサーバからメー ルをとってくることもできる、と来たもんだ。 これで、どれだけ設備コストや管理コストが押さえられると思いますか? 研究セクションであれば、マルチOS環境下での実験設備コストが、どれだけ 高くついているか自明なことです。 これがたったの299ドル(非商用利用なら99ドル) 私はインストールした次の日に、入金を完了しました。 3. My environment  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 私のPC環境は下記の通り。 ・IBM-PC互換機 x86 Family Model5 Stepping2 AT/AT COMPATIBLE 261,555KB RAM ・OS WindowsNT4.0 SP5 ・Ethernet Card HP Ethernet Family with LAN Remote Power まあ、この辺のスペックはほとんど関係ないでしょう。 ・2つめのOS予定 日本語Redhat Linux5.2 古いんだけど、すでに5台以上インストールして、「eWnn」も「翻訳 魂」も稼動実績があるので、無理して高いバージョンは使わないこと にしています。 構築方針 ・2つめのOS(Linux)は、外部にIPを公開しない。 と言うか、HP社からは、IPアドレスは一つしか付与されていないの で、2つめのOSにIPアドレスを付けることができないんです。 今回は、「eWnn」と「翻訳魂」を、自分のNTからのみ使えることを 目的とします。 #「同一のIPアドレスで、NTとLinuxとBSDのサーバはできないんです #か」と聞かれたのですが、普通に考えりゃそりゃ無理だと思います。 ##でも、もし私が間違っていたら教えてください。 4. VMwareのインストール  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (Step.1) まずは、http://www.vmware.com/news/pdfdownloads.htmlに行って、 "VMware 2.0 for Windows NT and Windows 2000 Getting Started Guide"を入手してください。PDFファイル形式の完璧なインストール マニュアルです。 (Step.2) http://www.vmware.com/forms/Download.cfm で、"If you are not currently a registered customer:"の方の入力欄に、E-mailアドレ ス、パスワード(自分で分かればいい)、名前、製品"VMware 2.0 for Windows NT and Windows 2000"を入力して30日間有効なライセ ンスを入手してください。 #いや、勿論いきなり買ってもいいですが。 ダウンロードの画面に移ると思いますので、適当なサイトから "VMware-2_0-XXX"を落としてきてください。 (Step.3) そうこうしているうちに、メールでレジストリファイルが送られてき ます。そのレジストリファイルを叩くと自動的にレジストリにVMware の情報が登録されます(と、思う) (Step.4) "VMware-2_0-XXX"を叩いてインストールを開始します。気を付けなけ ればならない点は、"Network Configuration"のところです。 ここでは、仮想マシン(2つ目以上のOS)に提供したいネットワーキ ング・サポートのタイプを選びます。 (1)Connect directly to a local network via an Ethernet network adapter card. PCにイーサネットカードが刺さっていて、イーサネットカー ドが接続しているローカルエリアネットワークに仮想マシン を接続したい場合に選んでください。"bridged networking" と呼ばれる環境になります。 (2)Connect the guest operating system to the host computer internally. たとえPCでイーサネット・カードがなくても、OS間の内部通 信を可能とするものです。 #私は、このオプションを選択。 (1)(2)の両方を選ぶことができるし、両方選ばないなら、OS間の内部 通信すらもできません。お好きなように。でも、後で変更することは できません。 (Step.5) 後は、CD-ROMやFDを使えるようにするかと、色々聞いてきますが、原 則"yes"で。CD-ROMのオートスタート機能も落としたほうがいいよ、 と言ってきますので、言うことをききましょう。 最後に、リブートして一度システムを終了します。 (Step.6) 再立ち上げ後、ディスクトップに"VMware"と言うアイコンができている と思いますので、これを叩きます。 この段階で始めて、VMwareが何を提供しているのか、ぼんやりと分か るようになります。VMwareのウインドウの中で、システムがブートを 開始し始めているのが分かると思います。 このブートしているところに、2つ目以降のOSを突っ込んでやればい いわけです。 多分、この段階では黒い画面に"No System"なる表示が出るのではな いかと思います(忘れました)。 (Step.7) 一度"VMware"を終了させて、日本語RedHat Linux5.2のCD-ROMを入れ て、再度"VMware"を叩くと、おお! あのVMwareの中にRedHatのイン ストール画面が、しかも日本語もちゃんと表示されて出てきます。 もう、後は普通のインストールの作業と同じです。 が、 全く同じではありません。 http://www.vmware.com/support/reference/common/guest_rh5x.html をしっかり参照してください。 一応、ざっと書いておきます。 ○SCSIアダプターがあるか?→"No"と答える。 ○ディスク分割に"Disk Druid"を選択。"初期化","追加"を選択 ○パーティッションはroot ( / )のみ。サイズはデフォルト(1)にし、 拡張可、タイプは linux native とする。 ○スワップパーティションを切る。拡張なしとする。仮想互換機に割 り当てた RAM と同程度のスワップを与えることが推奨されている ようですが、私は良く分かりませんでしたので、ハイハイとOKを押 しておきました。 ○ディスクのフォーマット時に bad block のチェックをしない。 ○PS/2マウスを選択(自動検知されてしまったが)。 ○モニタセットの選択は以下を選ぶ -Generic VGA Compatible. -Select Generic Monitor. -Probe(自動検出) ○ネットワークカードの選択は以下を選ぶ -AMD PC/Net 32. オプションのパラメーターを選び、何の値も入れない ○ネットワークの設定ですが、これは後で変更しますので適当に入れ ておいて下さい。 たとえば、 IPアドレス 192.168.1.1 ネットマスク 255.255.255.0 デフォルトゲートウェイ 192.168.1.0 マシン名 "ebacomhp" ↑好きな名前を ○マスターブートレコードにブートローダーをインストール ここでいったんリブートします。 (Step.8) このままでもXは使えるのですが、このXは美しくありません。 VMware SVGA Xサーバを使いたいならば、以下に進んでください。 ここでは、 http://www.vmware.com/support/reference/common/install_tools.html をしっかり参照してください。 一応ざっと書いておきます。 ○空のフロッピーディスクを差し込んでおく。 ○VMwareのメニュー[Settings]→[VMware Tools Install] ○suでログインする。 ○以下のコマンドを実施する。 cd / mount -t vfat /dev/fd0 /mnt cp /mnt/vmware-linux-tools.tar.gz /tmp umount /dev/fd0 cd /tmp tar zxf vmware-linux-tools.tar.gz cd vmware-linux-tools ./install.pl cd startx さて、ここでうまくXが立ち上がるといいのですが、私の場合はだめ でした。 そこで、/etc/X11/XF86ConfigのFontPathの"truetype","TrueType"と 書かれている行をすべてコメントアウトしたのち、startxを実施しし たら、美しいXが立ち上がりました。 ○あとはXの適当なterminalウインドウからvmware-toolbox &と入力 して、設定を適当に変えてください。 5. ネットワークの設定  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ さて、ここでNTのネットワーク環境がどうなっているか調べてみましょ う。 [スタート]→[設定]→[コントロールパネル]→[ネットワーク]→[プ ロトコル]→[プロパティ]→[アダプタ]のメニューを叩くと "[2]VMware Virtual Ethernet Adapter(VMnet1)" なる、仮想のイーサネットアダプタがあり、IPアドレスが振られてい ると思います。 私の場合は、172.16.84.1 / 255.255.255.0 となっていました。 変更できるのだと思うのですが(多分)、私はこのまま使うことにし ました。 従いまして、Linuxの方のアドレスをControl-panelのネットワーク設 定を次のように変更しました。 IPアドレス 172.16.84.2 ネットマスク 255.255.255.0 デフォルトゲートウェイ 172.16.84.1 VMwareのLinuxを再起動して、linux,NTの双方からpingを飛ばして、 試してみてください。 6. 「eWnn」「翻訳魂」サーバの構築(Linux側)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 特別変わったところはありません。 仮想マシンのLinuxからCD-ROMをマウントして、マニュアル通りにインストー ルすれば動くはずです。 7. 「eWnn」「翻訳魂」クライアントの設定(NT側)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 特別変わったところはありません。 「WindowsでeWnnを使おう」「Windowsで翻訳魂を使おう」を参照しながら、 lispコードと、.emacsの設定をしてください。 .emacsの設定例を、以下に示します。 ; eWnn用設定 (setq load-path (append (list "c:/win32app/mule2/LISP/ewnn/") load-path)) (load "ewnn") (setq ewnn-server-list '("172.16.84.2")) ; 翻訳魂用設定 (setq load-path (append (list "c:/win32app/mule2/LISP/honyaku/") load-path)) (load-library "honyaku") (setq honyaku-server-list '("172.16.84.2")) 8. 最後に  ̄ ̄ ̄ ̄ ̄ 現在、私はNTがインストールされたノートPCに、VMwareを使ってLinuxをイ ンストールして、さらにそこに「eWnn」と「翻訳魂」をインストールして、モ バイル環境でも使っております。 非常に快適です。 誰にでもお勧めできる環境ではないことは、百も承知の上で申し上げますが、 「モバイルサーバ」と言う新しいコンセプトを実践した先駆者として、いつの 日か誰かが私を評価してくれることを夢見つつ、本文章を終ります。 9. 補遺 IPアドレスを一つしか貰えない貴方の為に  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IPアドレスを、WindowsNT用マシンとVMware上のLinux用マシンに2つ貰えれ ば、後者のLinux用のIPアドレス(や、DNS名)を公開することで、多くの人に 「翻訳魂」や「eWnn」のサービスを提供できます。 ですが、本文を読んでいる方の多くは、 ・自由に設定できるような2台目のマシンを持っていない ・サーバマシンの管理を許されていない など、要するに「IPアドレスを一つしか貰えない」状況にあるのかもしれま せん。 そこで、WindowsNT用のIPアドレス1つだけで、「翻訳魂」や「eWnn」のサー ビスを提供する手段をご伝授致します。 事は簡単で、要するにWindowsに届いた「翻訳魂」や「eWnn」のTCPのパケッ トを、VMware上のLinuxに渡して(トンネルさせて)やればいいのです。 最初、自作しようと思ってデザインまでしたのですが、探してみたらそのよ うなツールは、結構ありました。 その一つとして、Rubyを使ってTCPのトンネルを実現する、 "tcptunnel"(立石さん(Takaaki Tateishi)作) を御紹介致します。 テストした環境は以下のとおり - 英語版WindowsNT4.0 SP5 - Ruby 1.4.2 コマンドプロンプトから、 (翻訳魂の場合) tcptunnel -P 2744 -h "172.16.84.2" -p 2744 -a "*.*.*.*" ^ ^ ^ | | | 翻訳魂の Linux(VMware上) 翻訳魂の ポート番号 のIPアドレス ポート番号 (NT側) (Linux側) (eWnnの場合) tcptunnel -P 2674 -h "172.16.84.2" -p 2674 -a "*.*.*.*" と入力すれば、NTが、「翻訳魂」や「eWnn」のサーバそのものに見えます。 (NT側のPortが、未使用であることを確認しておく必要があります。) 自作クライアントWinHon,WineWnnで、NTマシン名をサーバ名として入力して みましたが、問題なく動いております。 なお、念のために申し上げておきますが、tcptunnelを使った場合でも、複 数のユーザで同時に「翻訳魂」や「eWnn」を使用する場合には、クライアント ライセンスを購入しておく必要があります。 なお、今回はNTで実験しましたが、NT/95/98/2000 でも、原理は同じですの で、問題なく動作するものと思います。 また、Rubyのインストールが面倒だ、という方の為に、 "TCPTunnel for NT Service" http://www.kobore.net/soft/soft.html#TCPTunnel なるものを作りました。 使用方法は、 「TCPTunnel for Win32 の使い方」 http://www.kobore.net/tcptunnel2.txt を御参照下さい。