« 2006年11月 9日 | メイン | 2006年11月14日 »

2006年11月11日

VMware de Vine

Category: Linux

PC-MW70J の復旧作業中なのですが、CPU Pentium-M 1.73GHz メモリ 1,500MB とマシンパワーがありますので、 WindowsXP と Linux のデュアルブートから WindowsXP のみにして、 Linux は VMware 上で走らせてみることにします。理由は以下の通り

■ マシンパワーには余裕がありそう
■ Linux 側の設定が結構面倒 (これは今までの経験より克服可能ですけど)
■ ディスクを有効利用できそう
■ Windows と Linux の連携がかなりスムーズになる
■ バックアップが比較的楽

一方、デメリットは

■ エミュレートなので動作が遅くなる
■ ハードディスクのアクセスも遅くなりそう

ということですが、大規模な数値計算をやらない限り前者の問題はそれほど出てこないでしょうし、少しだけ我慢すれば後者も克服できそう。まぁ、大規模な数値計算をやる人間なので問題と言えば問題ですが、それはデスクトップにまかせるとしよう。

ということで VMware Server をホストを WindowsXP としてインストールしました。そこにゲスト OS として VineLinux をインストールしました。昨年あれほど悩んだ音周り、画面周り、ハードディスク周りが何の問題もなく利用できます。やはりノート PC には VMware 上で Linux を動かす方がいいのでは?という気がしてきた。

ここで一つ問題が。 USB ハードディスクを利用したかったのですが、先日購入したマルチメディアプレーヤー MP-1000J をつないだところうまく認識してくれなかった。これは VineLinux 3.2 の問題なのか VMware の問題なのかはよく分かりません。今まで使えていたことを考えると VMware の USB デバイスドライバの問題かも。VineLinux 4.0 ではどうだろう?と 4.0RC2 を試そう…とダウンロードしようとしたらサーバーダウンにつきダメでした ^^; ということでこの問題は先送り。

Windows 側とのデータ共有ですが、一般的には SAMBA を使うわけですが Windows の NFS サーバーってあるのかなぁと調べていたら Windows Services for UNIX というものがあるようです。これをダウンロードして、NFS 関連だけをインストールしました。 Windows 側のユーザーと Linux 側のユーザーを一致させることが必要なので「Services For UNIX の管理」の「ユーザー名マッピング」でパスワードファイルとグループファイルを Linux の /etc/passwd, /etc/group を指定しました。これらは当然 WindowsXP から見える必要があるので WinSCP を利用して WindowsXP で見られる場所にコピーしました(そのままダウンロードするとパーミッションが 000 なので注意)。

次に「マップ」タブで実際のマッピングを行う。「ユーザーマップの表示」をクリックした後、「Windows ユーザーの一覧」、「UNIX ユーザーの一覧」ボタンをそれぞれ押し対応させる。最後に適用ボタンを押します。「グループマップ」に関しても同様のことを行います。

以上で「Services For UNIX」での設定は終了。次に共有の設定を行います。 NFS マウントを許すフォルダのプロパティを表示すると「NFS 共有」というタブがあるので「このフォルダを共有する」にチェックを入れる。エンコードを「EUC-JP」にして(UTF-8 はないようです)、次に「アクセス権」を押します。アクセス権の種類を「読み書き」、ルートアクセスを許可して OK します。

以上で NFS に関する WindowsXP 側の設定が完了です。 Linux 側はとても簡単で /etc/fstab に通常の NFS のように記述するだけです。注意点は

■ ホスト名(or IP)は vmnet8 のものではなく WindowsXP が取得したもの
■ ドライブ名は大文字

です。前者は NFS サービスは VMware ではなく WindowsXP のサービスですので、IP は WindowXP のコマンドプロンプトで ipconfig をした時、VMware と書かれていない Ether adapter が示す IP アドレス(またはそれに対応するホスト名)を記述する必要があります。後者は、例えば C:\public というフォルダにアクセス可能な場合(ホスト名を host とする)

host:C:\public

のようにドライブ名を大文字にする必要があります(これでしばらくはまった…)。以上で NFS に関する設定が終了です。

VMware サーバーなので、クライアントからアクセスすればリモートデスクトップのように使えるので別の PC からアクセスを試みたところ WindowsXP のファイアーウォール機能によりアクセス拒否されてしまいました。そこで「Windows ファイアーウォール」の設定の「詳細設定」のタブの「ネットワーク接続」で VMware ではないネットワークを選択して「設定」でサービスを追加した。VMware は 902 番ポートを利用するので「追加」ボタンより 902 番ポート(TCP)を追加した。また、VMware 内の Linux に ssh するために 22番ポートも追加しました。以上の設定で無事に VMware クライアントからアクセス出来ます。

最後に ssh で外部からアクセスできるようにポートフォーワードの設定をしました。これは VMware Server の「Host」→「Virtual Network Settings...」より行います。ここにある「NAT」のタブを押し、「Edit...」ボタンを押します。設定画面内に「Port Forwarding...」というボタンがありますのでこれを押します。ここで 22 番ポートを Linux に割り当てられた IP アドレスにフォーワードする設定を行いました。

以上で基本的にやりたいことはすべて出来るようになった気がします。欲を言えば DHCP で割り当てる Linux の IP を固定したいのですがその設定はどこでやるのだろう?ということくらい。まぁ、ゲストをこれ以上増やすことはたぶんないのでほぼ問題ないとは思いますが…。あ、MP-1000J の認識問題もあるか。でも別の USB HDD は認識したし、最悪は NFS や samba という手もあるので気にしなくてもよいかな。

残るはデータの復旧とパフォーマンステストだな。

--
(追記)

外部から NFS を利用するにはさらに 111 (Portmapper), 1039 (Status), 1047 (Nlockmgr), 1048 (Mountd), 2049 (nfsd) 番ポート(TCP/UDP) をあける必要があるようです。一応 NFS マウント出来ましたが、使うことがなさそうなのでポートを閉じるとします。

投稿者 kato : 01:16 | コメント (0) | トラックバック