VNCん中でVMware

LinuxVMware Workstationを使っています。LinuxVMwareはXなアプリケーションなのでXが動いていることが必須です(多分)。

でもホストOSのXは帰るときに落としたい(exec ssh-agent startxしているため不在の間放置したくない)ので、必然的にVMwareも落とさないとだめです。

しかし、VMwareのゲストOSに遠隔から入りたかったりするので落としたくなかったりします。

んで、今までは安直に

$ xinit .Xclient-twm -- :1

とかして別なXを上げて、そこでVMwareを起動してxscreensaverでロックをかけてました。

まぁこれでもいいんですが、

  • わざわざXを上げるのはなんかもったない(根拠レス)。
  • 遠隔からVMwareのボタンをぽちぽちしたいことがある。

なので、VNCの中でVMwareを動かしてみました。

これならSSHのport forwardingで遠隔のvncserverにvncviewerでつなげられます。

で、やり方はこうです。

まずはVNCのインストール。Debian Sargeなので、以下のdebaptitude install。

  • tightvncserver
  • vnc-common
  • xtightvncviewer

んで、VNCのパスワードを設定。

$ vncpasswd
Password:

次にvncserverを起動。画面の大きさは大きくなくていいので800x600で、色数は8bitだとVMwareがすんなり動かないので16bitで。

$ vncserver -name VMware -depth 16 -geometry 800x600 :1
New 'X' desktop is XXX:1

ほんでvncviewerで接続。さっき設定したパスワードを聞かれるので入力。

$ vncviewer :1
VNC server supports protocol version 3.3 (viewer 3.3)
Password:

繋がったらvncviewerの中でVMwareを起動。

これでホストOSのXを落としても、vncviewerで繋げればVNCがつかんでいる:1なディスプレイの中でVMwareは元気に動いています。

ちなみにvncviewerを終了するときはF8でメニューが出てくるのでそれでQuit、vncserverを終了するときは

$ vncserver -kill :1

で。

VMwareのゲストOSからフォーカスを外すときは、通常ならCtrl+Altなんですがvncviewerの中だと左Ctrl+左Altではダメで、左Ctrl+右Altならちゃんとフォーカス外れました。環境依存が気がしますが…

がんばれば、OS起動時にVMwareのゲストOSの自動起動なんかもできるかも。