中田真秀(なかたまほ)のブログ

研究について、日常について、その他。

VirtualBox Headless mode + VNC/RDP on Ubuntu

2014-09-21 09:11:24 | 日記
VirtualBoxは便利な仮想化手段で、よく使っている。私は特にこれをVNC経由で使うことが多い。というのも手元のマシンの負荷はなるべく減らしたいからである。若干余ったCPUリソースがあればそこで仮想マシンを動かし、開発するというスタイルである。ただ、生のマシンの上でVirtualBoxを動かすと、解像度がそれに合わされてしまうため、XVNCサーバーを動かしそこでVirtualBoxを立ち上げ、外からVNC Viewerでつなぐことを行う。これは結構リソースの無駄であろう。XvncがうごくのとVirtualBoxが生で動くからである。

それならば、VirtualBoxはXに直接書かずにVNCサーバーの機能をもってもらって、そこにつなけば良かろうという風になる。これはHeadlessモード、ウィンドウ非表示起動、と呼ばれるものである。ディスプレイなどのない環境では特に役に立つと思われる。

で、結論から言うと、状況は若干複雑で、
* VirtualBoxはデフォルトではVNCサーバーなどの機能を持たない。
* VirtualBox Extension Packを導入すると、RDP (remote desktop protocol)のサーバーは動かせるようになる。RDPクライアントはいくつか無料でダウンロードできる。
* VNCサーバーはそこに含まれておらず、別途コンパイルが必要となる。
となっている。

headlessの仕組みとしては、
* 仮想マシンのアドレスでVNCが動く訳ではない。考えてみれば当たり前だが、もしそうであれば、仮想マシン上のプログラムとしてVNCサーバーなりRDPサーバーを動かすことになる。
* headless用RDP/VNCは、ホストマシンのIPにはバインドできて、バインドしたIPのあるポートにアウトプットする、というイメージ。

RDPでの接続方法について紹介する。
* Extension Packの導入。
$ VBoxManage list extpacks
Extension Packs: 1
Pack no. 0:   Oracle VM VirtualBox Extension Pack
Version:      4.3.16
Revision:     95972
Edition:
Description:  USB 2.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM with E1000 support.
VRDE Module:  VBoxVRDP
Usable:       true
Why unusable:

のようになっていたらok。VRDE Module: VBoxVRDPとなってるのが重要。

* 認証方式をnullへ(これは問題ありだが、とりあえずのテストとして)
VBoxManage modifyvm test --vrdeauthlibrary null

* VirtalBoxの立ち上げ
VBoxHeadless --startvm test -v on --vrdeproperty TCP/Address=192.168.1.3 --vrdeproperty TCP/Ports=5901
これは
192.168.1.3のアドレスで、portは5901ということ。
ということで、成功すると

Oracle VM VirtualBox Headless Interface 4.3.16
(C) 2008-2014 Oracle Corporation
All rights reserved.

VRDE server is listening on port 5902.

となります。失敗すると

VRDE server failed to start.
VRDE server is inactive.

となるので、portが競合してないか、設定が間違ってないかを確認してやり直しましょう。

* RDPクライアントから接続
いろいろありますが、
CoRD をとりあえず使ってます。無料だけでなく、気持ちよくremote desktopが使えます。
192.168.1.3:5901
でok
解像度を変更させるとおかしくなるみたいであった。
Microsoft Remote DesktopこれはMS謹製のもの。解像度の変更も問題なしのよう。バージョンも一番新しく、これがベストかもしれない。


* 解像度の問題(解決)
VirtualBoxのドライバの制限なのか、コントロールパネルからディスプレイ、画面の解像度とやっても1366x768はなかったので残念。そもそもVirtualBoxは親ウィンドウのサイズに解像度を合わせることができたのだが...
全画面表示にしたらよくなった。

* VNCはどこいった?
次は(気力があればw)、VNCをやってみようと思います。VNCは解像度変更ができないようで、そこはRDPのほうが偉いかなと。色々調べるとRDPのほうが偉いねぇ。VNCよりええなぁと思いました!
ただ、VNCはVirtualBoxのGUIを使うには良いので、今後もコントロール用に立ち上げると思います!

最新の画像もっと見る

コメントを投稿