SeamlessRDPでXPとLinuxをシームレスに統合

 最近は1台のマシンにLinuxとWindowsをインストールするにしてもいろいろな方法がある。それぞれのオペレーティングシステムを別々のディスクパーティションに置き、共通のパーティションでファイルを共有する従来のデュアルブートシステムもあれば、Wineのように、Linuxシステム内にWindowsアプリケーションをインストールするエミュレータを利用する手もある。また、VMwareなどが提供している仮想化プログラムは双方のオペレーティングシステムを同時に使えるという点でより理想的なソリューションに近いが、ホスト側とゲスト側の各システムが固定されていて、ゲスト側システムはウィンドウ内でしか表示できない。だが、VMware Serverをいくつかのフリーソフトウェアと組み合わせれば、Linuxシステム上のコンソールウィンドウ内に制限されることなく、Windows XPをLinux環境と完全に統合された形で動かすことができる。

 こうした環境を作り上げるには、3つのツールをインストールする必要がある。VMware Serverはオープンソースではないが無償提供されている。ただし、ダウンロード先と同じページからライセンス番号を取得する必要がある (当然、VMware Serverの下で動かすWindows XPも用意しなければならない)。あとは、ほぼどんなLinuxディスクパーティションにもバンドルされているRemote Desktop Protocolクライアントrdesktopと、rdesktopをWindows XPに組み込むためのユーティリティとしてCendioからGPLの下で提供されている SeamlessRDP があればよい。

 このソリューションでは、バックグラウンドで動作する仮想マシンに接続するのだが、ウィンドウの枠やWindowsデスクトップは表示されない。いつものKDEまたはGNOMEのメニューバーと共に表示されるのはWindows XPのメニューバーであり、まるで双方のOSが同時に対等な形で動作しているかのような錯覚にとらわれる。図1では、画面の上下にそれぞれKDEとWindows XPの各メニューバーが表示されているのがわかる。つまり、どちらのOSからでもアプリケーションを起動できるわけだ。

SeamlessRDP_thumb.png
図1: SeamlessRDP

 まずは、通常のオプションでVMware内にWindows XPをインストールし、ネットワーク接続のオプションをNetwork Address Translation(NAT)に設定する。これでホストマシンからの接続が単純になる。Windows XPのインストールが完了したらログインして、Linuxから呼び出すアカウントを作成してパスワードを設定する。また、このWindows仮想マシンにはリモート接続を許可しておく必要がある。この設定は「スタート」→「コントロールパネル」→「システム」から行う(場合によっては、クラシック表示に切り替える必要がある)。システムのアイコンをダブルクリックしてプロパティ画面を開き、「リモート」タブに切り替えて「このコンピュータにユーザがリモートで接続することを許可する」にチェックを入れればよい。

 今度は、Windows XP仮想マシン用のVMware Toolsをインストールする。その際、VMwareのDHCPサーバがこの仮想マシンに割り当てたIPアドレスを知る必要がある。これは、DOSコンソールから「ipconfig」を実行すれば確認できる。

 続いて、Windows仮想マシン内でSeamlessRDPのインストールを行う。そのためにはまず、Internet Explorerを開いてSeamlessRDPのzipファイルをダウンロードする。Cドライブの直下にディレクトリを作り(「C:\seamless」)、ダウンロードしたzipファイルをそこに展開すると、3つのファイルが現われる。このうち、seamlessrdpshell.exeをあとで使用する。

 ここでWindowsセッションをログオフしても構わないが、仮想マシンはそのままにしておく。ようこそというWindowsの画面が表示されたら、VMware Serverコンソールを閉じてもよい。Windows XP仮想マシンのセッションは引き続きバックグラウンドで実行されるはずだ。そのことを確認するには、普通に「ps -ef | grep vmware」を実行すればよい。

 ようやくrdesktopの出番だ。とりあえず、メモ帳のような単純なアプリケーションを開いてみよう。Linuxでターミナルセッションを開き、xtermから次のコマンドを実行する。

rdesktop -A -s "c:\seamless\seamlessrdpshell.exe notepad" 192.168.217.129 -u <ユーザ名> -p <パスワード>

 IPアドレス、ユーザ名、パスワードは各自の環境に合わせて指定すること。何も問題がなければ、Linuxシステム上にWindowsのメモ帳アプリケーションが現われるはずだ。

 「-A」オプションは、SeamlessRDPモードを有効にして、起動するアプリケーションごとにX11ウィンドウを生成する。このオプションを使う場合は、アプリケーションを起動するシェルをrdesktopコマンド内で指定する(-s)必要がある。ここでは、先ほど作成したディレクトリにあるSeamlessRDPアプリケーション(c:\seamless\seamlessrdpshell.exe)を指定している。その引数が実行したいWindowsプログラムだ。通常の設定パス上に見つからないプログラムの場合は、フルパスで指定する必要がある。

 「-u」および「-p」オプションの使用は任意だが、これらを使わない場合はアプリケーションによってWindowsのログイン画面が表示され、アカウント情報の入力を求められる。

 なお、この例のメモ帳など、Windows側で起動されたアプリケーションを閉じてもrdesktop接続は切断されない。そのため、手動でログアウトを行う必要がある。そうしないとrdesktopが別のアプリケーションを起動できないからだ。ただし、Windowsのデスクトップやログオフを行うためのスタートメニューは表示されていないので、Windows XP仮想マシンでCtrl-Alt-Delを押してログオフするか、仮想マシン自体を再起動することになる。

 これでrdesktopのSeamlessRDPオプションを使ってWindowsアプリケーションを起動する方法がわかったので、今度はいよいよexplorer.exeを試してみよう。このアプリケーションは完全なデスクトップ環境を生成するので、ユーザは主な操作をメニューバーを通じて行うことができる。ただ、エクスプローラを“そのまま”実行すると、画面全体にWindowsXPのデスクトップ(デスクトップ上の壁紙、アイコン、ショートカットも含む)が表示されることになる。

 画面全体がWindowsになるのが気に入らなければ、Windowsレジストリを操作してデスクトップ部分を取り除き、メニューバー部分だけを残すことも可能だ。そのためにはWindows XP仮想マシンに戻り、「スタート」→「ファイル名を指定して実行」を選択して、「regedit」でレジストリエディタを起動する。レジストリエディタ上で「HKEY_CURRENT_USER」→「Software」→「Microsoft」→「Windows」→「CurrentVersion」→「Policies」→「Explorer」を順に選択したら、右側のパネルを右クリックして「新規」→「DWORD値」を選択する。この新規エントリを「NoDesktop」という名前にし、クリックしてデータ値を1に変更したら、レジストリエディタを閉じてWindowsを再起動する。

 Linuxシステムを終了させるとバックグラウンドで実行中の仮想マシンも当然失われるため、このような形でWindowsに接続しようとするたびにVMware仮想マシンを起動してサーバコンソールを閉じなくてはならない。また、rdesktopコマンドを実行する前に、Linuxデスクトップ環境のメニューバーを画面の下から上に移しておくとよいだろう。画面の下にはWindowsのメニューバーが表示されるからだ。

 それでは、次のrdesktopコマンドを実行してみよう。

rdesktop -A -s "c:\seamless\seamlessrdpshell.exe c:\windows\explorer.exe" 192.168.217.129 -u <ユーザ名> -p <パスワード>

 これで、数秒後にはWindows XPのメニューバーが画面下に表示され、インストール済みのどんなアプリケーションでも起動できるようになっているはずである。まるで同じマシン上で2つのオペレーティングシステムが同時に動いているような環境が出来上がるわけだ。実にすばらしい。

 このトリックがうまく使えるのは、VMwareの仮想マシンだけではない。ネットワーク上のWindowsクライアントやほかの仮想マシンのソフトウェアでも使える。ただSeamlessRDPをインストールして、rdesktopが接続できるようにWindows XPプロパティを設定するだけでよい。

Sergio Gonzalez DuranはLinux管理者、システム開発者、ネットワークセキュリティ・カウンセラとして活躍しつつ、Linux研修での教育とLinuxおよびオープンソースに関するスペイン語のWebサイトlinuxtotal.com.mxの運営に携わっている。

Linux.com 原文