Ubuntu 16.04: VirtualBox上のUbuntu 16.04にGuest Additionsをインストールする

解像度の任意変更やクリップボード共有機能を提供するVirtualBox Guest Additionsのインストール手順を記載します。

 

1 前準備

Ubuntu 16.04をVirtualBoxにインストールして下さい。

VirtualBoxを最新版にアップデートしてください。

Ubuntu 16.04のVMを起動してログインします。

2 Guest Additionsとは

ビデオ性能の向上、共有フォルダ、クリップボード共有等の機能を提供するVirtualBoxの追加コンポーネントです。

Guest Additionsインストール前だとUbuntu 16.04のディスプレイ解像度は2種類だけですが、インストール後だと任意の解像度に変更できます。

0001_Resolution-before-install.png

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>に自動的にマウントされます。

0002_Automount.png

automountが動いていない場合は手動でDVDドライブをマウントしてください。

sudo mount -t iso9660 /dev/sr0 /mnt

5 Guest Additionsのビルドとインストール

automountを利用している場合は「Run」を押すことでビルドとインストールができます。

「Run」を押した後、sudo実行のためのパスワードを入力します。

0003_Run.png

「Press Return to close this window…」が表示されれば完了です。

0004_Complete.png

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ウィンドウの大きさを変えれば、自動で任意の解像度に変更されます。

0005_Resolution-after-install.png