CentOS 7にVirtual Boxをインストールする

Linux上で動作する仮想化環境は数あるが、今回はOracleが提供しているデスクトップ上の仮想環境『Virtual Box』をCentOS 7にインストールする。

1.必要な事前パッケージの導入

まずは、以下の記事を参考にEPELリポジトリを導入する。

CentOS 7にEPELレポジトリを追加する

EPELリポジトリ導入後、以下のコマンドで必要なパッケージを導入する。

yum install kernel-devel kernel-headers dkms
yum groupinstall "Development Tools"
yum update

2.Virtual Boxのインストール

まずは、以下のコマンドを実行してVirtual Boxの配布元であるOracleのパブリックキーをインポートする。

wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
rpm --import oracle_vbox.asc

パブリックキーインポート後、以下のコマンドでVirtual Boxに関するレポジトリを導入する。

wget http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo

Virtual Boxに関するレポジトリ導入後、以下のコマンドでVirtual Boxのインストールを行う。
なお、今回はVirtual Box 4.3をインストールする。

yum update
yum install VirtualBox-4.3

[root@test-centos7-1 tmp]# yum install VirtualBox-4.3
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* epel: ftp.riken.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ VirtualBox-4.3.x86_64 0:4.3.20_96996_el7-1 を インストール
--> 依存性の処理をしています: libQtNetwork.so.4()(64bit) のパッケージ: VirtualBox-4.3-4.3.20_96996_el7-1.x86_64
--> 依存性の処理をしています: libQtOpenGL.so.4()(64bit) のパッケージ: VirtualBox-4.3-4.3.20_96996_el7-1.x86_64
--> 依存性の処理をしています: libQtGui.so.4()(64bit) のパッケージ: VirtualBox-4.3-4.3.20_96996_el7-1.x86_64
--> 依存性の処理をしています: libQtCore.so.4()(64bit) のパッケージ: VirtualBox-4.3-4.3.20_96996_el7-1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ qt.x86_64 1:4.8.5-8.el7 を インストール
--> 依存性の処理をしています: qt-settings のパッケージ: 1:qt-4.8.5-8.el7.x86_64
---> パッケージ qt-x11.x86_64 1:4.8.5-8.el7 を インストール
--> 依存性の処理をしています: libmng.so.1()(64bit) のパッケージ: 1:qt-x11-4.8.5-8.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ libmng.x86_64 0:1.0.10-14.el7 を インストール
---> パッケージ qt-settings.noarch 0:19-23.4.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

========================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
========================================================================================
インストール中:
VirtualBox-4.3 x86_64 4.3.20_96996_el7-1 virtualbox 69 M
依存性関連でのインストールをします:
libmng x86_64 1.0.10-14.el7 base 171 k
qt x86_64 1:4.8.5-8.el7 base 4.5 M
qt-settings noarch 19-23.4.el7 base 17 k
qt-x11 x86_64 1:4.8.5-8.el7 base 13 M

トランザクションの要約
========================================================================================
インストール 1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 86 M
インストール容量: 196 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): qt-settings-19-23.4.el7.noarch.rpm | 17 kB 00:00:00
(2/5): libmng-1.0.10-14.el7.x86_64.rpm | 171 kB 00:00:00
(3/5): qt-4.8.5-8.el7.x86_64.rpm | 4.5 MB 00:00:01
(4/5): qt-x11-4.8.5-8.el7.x86_64.rpm | 13 MB 00:00:02
(5/5): VirtualBox-4.3-4.3.20_96996_el7-1.x86_64.rpm | 69 MB 00:03:09
----------------------------------------------------------------------------------------
合計 465 kB/s | 86 MB 03:09
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : libmng-1.0.10-14.el7.x86_64 1/5
インストール中 : qt-settings-19-23.4.el7.noarch 2/5
インストール中 : 1:qt-4.8.5-8.el7.x86_64 3/5
インストール中 : 1:qt-x11-4.8.5-8.el7.x86_64 4/5
インストール中 : VirtualBox-4.3-4.3.20_96996_el7-1.x86_64 5/5

Creating group 'vboxusers'. VM users must be member of that group!

No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.

Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Trying to register the VirtualBox kernel modules using DKMSError! echo
Your kernel headers for kernel 3.10.0-123.el7.x86_64 cannot be found at
/lib/modules/3.10.0-123.el7.x86_64/build or /lib/modules/3.10.0-123.el7.x86_64/source.
[失敗]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [失敗]
(Look at /var/log/vbox-install.log to find out what went wrong)
検証中 : qt-settings-19-23.4.el7.noarch 1/5
検証中 : libmng-1.0.10-14.el7.x86_64 2/5
検証中 : 1:qt-4.8.5-8.el7.x86_64 3/5
検証中 : 1:qt-x11-4.8.5-8.el7.x86_64 4/5
検証中 : VirtualBox-4.3-4.3.20_96996_el7-1.x86_64 5/5

インストール:
VirtualBox-4.3.x86_64 0:4.3.20_96996_el7-1

依存性関連をインストールしました:
libmng.x86_64 0:1.0.10-14.el7 qt.x86_64 1:4.8.5-8.el7
qt-settings.noarch 0:19-23.4.el7 qt-x11.x86_64 1:4.8.5-8.el7

完了しました!

Virtual Boxのインストール完了後、以下のコマンドでカーネルのリビルドを実施する。

service vboxdrv setup

なお、この時以下のようなエラーが出る場合がある。

Trying to register the VirtualBox kernel modules using DKMSldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
ldconfig exited ungracefully
ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied

この場合は、SELinuxが原因。
今後にも影響するので、こちらの内容を元にSELinuxを無効化してもらいたい。

また、以下のようなエラーが出る場合もある。

Trying to register the VirtualBox kernel modules using DKMSError! echo
Your kernel headers for kernel 3.10.0-123.el7.x86_64 cannot be found at
/lib/modules/3.10.0-123.el7.x86_64/build or /lib/modules/3.10.0-123.el7.x86_64/source.

これについては、私の場合はシンボリックリンク 「/lib/modules/3.10.0-123.el7.x86_64/build 」が存在していないフォルダを参照していたことが原因だった。
このため、lsコマンドなどでリンク先を参照し、問題があるようであればlnコマンドなどで対応してもらいたい。

3.Virtual Boxの起動

ここまで来たら、後はデスクトップの端末上で以下のコマンドを実行するだけだ。

virtualbox

後は、普通にWindowsなどで利用するようにVirtual Boxを使うだけだ。