解像度の任意変更やクリップボード共有機能を提供するVirtualBox Guest Additionsのインストール手順を記載します。
Table of Contents
1 前準備
Ubuntu 16.04をVirtualBoxにインストールして下さい。
VirtualBoxを最新版にアップデートしてください。
Ubuntu 16.04のVMを起動してログインします。
2 Guest Additionsとは
ビデオ性能の向上、共有フォルダ、クリップボード共有等の機能を提供するVirtualBoxの追加コンポーネントです。
Guest Additionsインストール前だとUbuntu 16.04のディスプレイ解像度は2種類だけですが、インストール後だと任意の解像度に変更できます。
Guest AdditionsはVM上のゲストOSにインストールします。
Linuxの場合は準仮想化ドライバをビルドして組み込む必要があります。
ここではUbuntu 16.04上に組み込む手順を記載します。
3 カーネルヘッダのインストール
準仮想化ドライバをビルドする為、カーネルヘッダが必要になります。
aptでlinux-headers-genericをインストールします。
Ubuntu 16.04の場合はデフォルトでインストールされていると思います。
$ sudo apt-get install -y linux-headers-generic
RedHat系の場合はkernel-develをインストールしてください。
4 Guest Additionsのマウント
VMのウィンドウメニューからGuest AdditionsのCMイメージを挿入します。
Devices -> Insert Guest Additions CD image
automountが動いている場合は/media/<username>/<virtualbox>に自動的にマウントされます。
automountが動いていない場合は手動でDVDドライブをマウントしてください。
sudo mount -t iso9660 /dev/sr0 /mnt
5 Guest Additionsのビルドとインストール
automountを利用している場合は「Run」を押すことでビルドとインストールができます。
「Run」を押した後、sudo実行のためのパスワードを入力します。
「Press Return to close this window…」が表示されれば完了です。
terminalからビルドとインストールを実行する場合は、Guest Additionsのマウントポイントに移動して、root権限でインストールスクリプトを実行します。
$ cd /media/hiroom2/VBOXADDITIONS_5.0.20_106931/ $ sudo ./VBoxLinuxAdditions.run Verifying archive integrity... All good. Uncompressing VirtualBox 5.0.20 Guest Additions for Linux............ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... Removing existing VirtualBox non-DKMS kernel modules ...done. Building the VirtualBox Guest Additions kernel modules The headers for the current running kernel were not found. If the following module compilation fails then this could be the reason. Building the main Guest Additions module ...done. Building the shared folder support module ...done. Building the graphics driver module ...done. Doing non-kernel setup of the Guest Additions ...done. Starting the VirtualBox Guest AdditionsInstalling the Window System drivers Installing X.Org Server 1.18 modules ...done. Setting up the Window System to use the Guest Additions ...done. You may need to restart the the Window System (or just restart the guest system) to enable the Guest Additions. Installing graphics libraries and desktop services components ...done. ...done.
5.1 ビルドが失敗する
Guest Additionsの準仮想化ドライバのコードとカーネル間のインターフェースの整合性が合わない場合にビルドが失敗します(例えばGuest Additionsが使うカーネルの関数がなくなった場合等)。
これはLinuxカーネル外にあるドライバの宿命です。
VirtualBox側もカーネルのアップデートに合わせてドライバのコードをアップデートしてくれるはずなので、最新版のVirtualBoxで試して見て下さい。
それでもビルドが失敗する場合はあきらめるか、/usr/src/vboxguest-<version>/のコードを直すしかありません。
5.2 カーネルアップデート後にGuest Additionsが動かない
現在のGuest AdditionsはDKMSをサポートしている為、カーネルバージョンが変わった場合に自動でリビルドしてくれるはずです。
DKMSがサポートされていないディストリの場合は手動でリビルドする必要があります。
リビルドが失敗するようならば、先ほどと同様に最新版のVirtualBoxを試すか、ソースコードの修正が必要になります。
6 動作確認
ビルドとインストールが成功したら、Ubuntu 16.04を再起動します。vboxというプレフィックスがつくドライバが動いているかを確認します。
$ lsmod | grep vbox vboxsf 45056 0 vboxvideo 49152 2 ttm 98304 1 vboxvideo drm_kms_helper 139264 1 vboxvideo drm 360448 5 ttm,drm_kms_helper,vboxvideo syscopyarea 16384 2 drm_kms_helper,vboxvideo sysfillrect 16384 2 drm_kms_helper,vboxvideo sysimgblt 16384 2 drm_kms_helper,vboxvideo vboxguest 282624 8 vboxsf,vboxvideo
ディスプレイの解像度は2種類から全種類になりました。
VMウィンドウの大きさを変えれば、自動で任意の解像度に変更されます。