2018/03/31

VirtualBox+cygwinで画面をWindows側に

目的


LinuxのウィンドウをWindowsの画面として表示させます。

環境


仮想マシンにはVirtualBoxを使います。ここではホストにWindows、ゲストにDebianを用います。

X Window Systemには、VcXsrv (https://sourceforge.net/projects/vcxsrv/) を使います。また、ssh接続のためにcygwinも用います。

方法


環境が準備できたら、以下のコマンドで簡単にWindows側でウィンドウを表示できます。 以下の例は、Visual Studio Codeを起動する例です。

まず、ゲストOSにsshでログインします。

ssh -R 6000:localhost:6000 -p [port] username@localhost
次に、ディスプレイの表示先を変更し、ウィンドウを使うアプリケーションを起動します。
export DISPLAY=localhost:0.0
code --disable-gpu
[port]はVirtualBoxのsshのポートフォワーディングルールとして設定しているホストポートの番号を入れます。具体的には、VirutalBoxの仮想マシンごとの設定の[ネットワーク]→[高度]→[ポートフォワーディング]で、
設定項目
名前ssh
プロトコルTCP
ホストIP(空欄)
ホストポート3222
ゲストIP(空欄)
ゲストポート22
としていれば、[port]は3222になります。6000はX Window Systemが使うデフォルトのポートです。

GPUによるアクセラレーションは使えないので、Visual Studio Codeはgpuを使用しないモードで起動する必要があります。ちょっと描画が遅いのが気になりますが、一応、表示や操作はできます。