GUEST ADDITIONSとは

VirtualBox Guest AdditionsはゲストOSにインストールすることで、ホストOSとゲストOS間のより緊密な統合を行い、VirtualBoxの使い勝手を向上させます。

例えば、
ゲストマシンにOSを入れた直後では、デスクトップ画面をクリックするとマウスカーソルがゲストOSの中に入ってしまい、右Altキーを押さないとホストOSにカーソルが戻ってきません。
これをマウスキャプチャーと言います。

このままでは使い勝手が悪いので、ホストOSとゲストOS間でマウスカーソルをシームレスに移動させるために、Guest Additionsをインストールします。

その他Guest Additionsをインストールすることで提供される機能は以下のとおりです。。

  • マウスカーソルのシームレスな移動
  • シームレスなウィンドウサイズの変更
  • 高解像度のデスクトップ画面が使用可能
  • シームレスウィンドウ
  • ゲストマシンの制御と監視
  • ホストマシンとの時刻の同期
  • 共有フォルダ
  • クリップボードの共有
  • オートログオン(Windows,Linux,Solarisのみ)
  • ハードウェア3Dアクセラレーションのサポート

VirtualBoxがリリースされると、マイナーリリースだとしても、それぞれにバージョン用のGuest Additionsが提供されます。

VirtualBox本体とGuest Additionsと通信するためのインタフェースは安定しているため、VirtualBoxがアップグレードされても仮想マシンに既にインストールされているGuest Additionsは機能し続けるはずですが、Guest Additionsに対するバグフィックスなどもあるため、VirtualBoxとGuest Additionsは同じバージョンに揃えておく事をお勧めします。

WINDOWSにGUEST ADDITIONSをインストール

Guest Additionsは以下のWindowsに対応しています。

  • Microsoft Windows NT 4.0 (any service pack)
  • Microsoft Windows 2000 (any service pack)
  • Microsoft Windows XP (any service pack)
  • Microsoft Windows Server 2003 (any service pack)
  • Microsoft Windows Server 2008
  • Microsoft Windows Vista (all editions)
  • Microsoft Windows 7 (all editions)
  • Microsoft Windows 8 (all editions)
  • Microsoft Windows 10 RTM build 10240
  • Microsoft Windows Server 2012

Windows XPでハードウェア3Dアクセラレーションのサポートを有効化するためには、Windowsをセーフモードで立ち上げた状態でGuest Additionsをインストール必要があります。
セーフモードはWindows起動直前にF8キーを押します。

WindowsVista以降のWDDM Direct3Dを使用しているWindowsではセーフモードにする必要はありません。

今回はWindows Server 2016にGuest Additonsをインストールしてみます。

ゲストマシンを起動し、上のメニュー「デバイス」→「Guest AdditionsのCDイメージを挿入」をクリックします。
ゲストマシンに自動的にメディアがマウントされるので、CDイメージ内の「VBoxWindowsAdditions」をダブルクリックして実行します。

Guest Additions 4.2.0のインストール画面

「Next」をクリックします。

VirtualBox Guest Additions をインストールする時のインストールフォルダを選択する画面

インストール先を聞いてくるので、通常そのままで「Next」をクリックします。

VirtualBox Guest Additions をインストールする時のコンポーネント選択画面

オプションのコンポーネントをインストールするか選択します。

VirtualBox Guest Additions をインストールする時のインストール状況を示すプログレスバー

インストールが始まります。

途中でダイアログが表示されますが、すべて「インストール」ボタンをクリックしてください。

VirtualBox Guest Additions をインストール後の、今すぐ再起動するか、後で再起動するかの選択画面

「Completing~」のダイアログが出ればインストール終了です。
「Reboot now」にチェックを入れ「Finish」のボタンを押し、ゲストOSをリブートします。

以上でWindows Server 2016のGuest Additionsのインストールは終了です。

LINUXにGUEST ADDITIONSをインストール

Guest Additionsは公式では以下のLinuxに対応しています。

  • Oracle Linux as of version 5, including UEK kernels
  • Fedora as of Fedora Core 4
  • Redhat Enterprise Linux as of version 3
  • SUSE and openSUSE Linux as of version 9
  • Ubuntu as of version 5.10

このディスクとリビューション以外にも派生ディストリビューション、例えばFedoraの派生ディストリビューションであるRHELやCentOS、Ubuntuの派生ディストリビューションであるXubuntuやUbuntuなどでも問題無くインストールできます。

また、一部のディストリビューションではデフォルトでGuest Additionsの一部がプリインストールされている場合がありますが、これらは最新ではなく、機能が一部制限されている場合があるので、改めて最新のGuest Additionsに置き換えることをお勧めします。
プリインストールされているGuest Additonsを置き換える際には事前に仮想マシンのスナップショットを作成することを強くお勧めします。

以降は全てrootユーザーで作業を行います。

Guest Additionsインストール前の準備

Guest Additionsはインストールに以下の前提パッケージが必要になります。

kernel-headers kernel-devel gcc make

前提パッケージがインストールされているか。確認します。

rpm -qa | grep kernel-headers
rpm -qa | grep kernel-devel
rpm -qa | grep make rpm -qa | grep gcc

インストールされていないパッケージがあったら、以下のコマンドでパッケージをインストールします。

yum install kernel-headers
yum install kernel-devel
yum install make
yum install gcc

kernel-headersとkernel-develはyum installコマンドで最新のパッケージがインストールされますが、
OSイントール時のkernelと同じバージョンでないとGuest Additionsがインストールできないので注意が必要です。

以下のコマンドではOSインストール後にkernel-headersとkernel-develの最新版をインストールしたために、
kernelのバージョンと差異が出てしまっています。

[root@localhost ~]# yum list installed | grep kernel abrt-addon-kerneloops.x86_64 2.1.11-52.el7.centos @anaconda
kernel.x86_64 3.10.0-957.el7 @anaconda
kernel-devel.x86_64 3.10.0-957.5.1.el7 @updates 
kernel-headers.x86_64 3.10.0-957.5.1.el7 @updates 
kernel-tools.x86_64 3.10.0-957.el7 @anaconda
kernel-tools-libs.x86_64 3.10.0-957.el7 @anaconda
[richi@localhost ~]$ 

その為、kernelを最新版にアップデートします。

yum update kernel

kernelバージョンが揃ったか確認します。

[richi@localhost ~]$ yum list installed | grep kernel abrt-addon-kerneloops.x86_64 2.1.11-52.el7.centos @anaconda kernel.x86_64 3.10.0-957.el7 @anaconda kernel.x86_64 3.10.0-957.5.1.el7 @updates  kernel-devel.x86_64 3.10.0-957.5.1.el7 @updates  kernel-headers.x86_64 3.10.0-957.5.1.el7 @updates  kernel-tools.x86_64 3.10.0-957.el7 @anaconda kernel-tools-libs.x86_64 3.10.0-957.el7 @anaconda [richi@localhost ~]$

LinuxにGuest Additionsをインストールする。

ゲストマシン上のメニュー「デバイス」→「Guest AdditionsのCDイメージを挿入」をクリックします。
最近のLinuxであれば自動的にGuestAdditionsのCDイメージがマウントされるはずです。
ターミナルを開いて、GuestAdditionsのマウント先に移動します。
ディストリビューションによってマウントされる場所が変るので、その際はdfコマンドなどでマウント先を確認します。
CentOS7.6では以下のコマンドで移動します。

# cd /run/media/[ユーザー名]/VBox_GAs_6.0.0

ゲストOSの環境によって、異なるインストールスクリプトを実行します。
CentOS7.6では以下のコマンドを実行します。

[root@localhost VBox_GAs_6.0.0]# /bin/sh VBoxLinuxAdditions.run  Verifying archive integrity... All good. Uncompressing VirtualBox 6.0.0 Guest Additions for Linux........ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while. VirtualBox Guest Additions: To build modules for other installed kernels, run VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version> VirtualBox Guest Additions: Building the modules for kernel 3.10.0-957.5.1.el7.x86_64. VirtualBox Guest Additions: Running kernel modules will not be replaced until the system is restarted VirtualBox Guest Additions: Starting. [root@localhost VBox_GAs_6.0.0]# 

インストールスクリプトが終了し、プロンプトが戻ってきたらOSを一度リブートします。
リブート後には以下のコマンドで動作していることを確認できます。

[root@localhost VBox_GAs_6.0.0]# systemctl status vboxadd ● vboxadd.service Loaded: loaded (/opt/VBoxGuestAdditions-6.0.0/init/vboxadd; enabled; vendor preset: disabled) Active: active (exited) since 日 2019-03-03 22:09:06 JST; 2min 59s ago Process: 2053 ExecStart=/opt/VBoxGuestAdditions-6.0.0/init/vboxadd start (code=exited, status=0/SUCCESS) Main PID: 2053 (code=exited, status=0/SUCCESS) Tasks: 0 CGroup: /system.slice/vboxadd.service 3月 03 22:08:46 localhost.localdomain systemd[1]: Starting vboxadd.service... 3月 03 22:08:47 localhost.localdomain vboxadd[2053]: VirtualBox Guest Addit... 3月 03 22:09:06 localhost.localdomain systemd[1]: Started vboxadd.service. Hint: Some lines were ellipsized, use -l to show in full. [root@localhost VBox_GAs_6.0.0]#

以上でGuest Additionsのインストールは終了です。

MACOSにGUEST ADDITIONSをインストール

現在MacOSゲストにGuest Additionsをインストールすることはできません。