f

アーカイブ

2015-06-02

Install Guest Additions for CentOS 7 on VirtualBox 4.3.12

VirtualBox4.3.12にCentOS7をインストールしたが,Guest Additionsをインストールできなかった。この解決策を記す。

VirtualBoxで仮想化により別のOSを使うとき,Guest Addtionsを一緒にインストールするとクリップボードのやりとりやマウスポインタの統合,フルスクリーンにでき便利だ。Guest Additionsのインストール手順は以下のサイトなどで解説されている。

VirtualBox環境構築:CentOS - Guest Additions導入 http://nextindex.s141.xrea.com/virtualbox/centos_GuestAddition.html

Guest Additionsのインストールに必要なパッケージは以下のコマンドでインストールできる。カーネルの更新が必要なので最後にPCを再起動している。

sudo yum update
sudo yum -y install gcc make kernel kernel-dev
sudo shutdown -r now

VirtualBoxのメニューからデバイス▷Guest AdditionsのCDイメージを挿入からGuest Additionsのインストールプログラムを実行すると以下のエラーが出る。

cd /run/media/senooken/VBoxGuestAdditions-4.3.12
sudo ./VBoxLinuxAddtions.run
  Building the main Guest Additions module                   [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)

示されているとおりに/var/log/vboxadd-install.logを見ると以下のエラーメッセージが出ている。

/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1542:26: error: 'struct mm_struct' has no member named 'numa_next_reset'
                 pTask->mm->numa_next_reset = jiffies + 0x7fffffffffffffffUL;
                          ^
make[2]: *** [/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2

この現象は例えば以下のサイトでも報告されている。

ぷにおちゃん ~ CentOS 7でVBoxGuestAdd-inが失敗した時の対処方法 http://punio.org/blog/201408041942VVAW.html

Ubuntu 14.04ではこのエラーは出なかったのでCentOS 7特有の現象と考えられる。対処方法は以下のサイトで解説されている。

密かなITエンジニアの備忘録:VirtualBoxにCentOS7をインストールする http://blog.livedoor.jp/yoka3/archives/16042340.html

memobj-r0drv-linux.cのソースコードを修正してやる。

cd /opt/VBoxGuestAdditions-4.3.12/src/vboxguest-4.3.12/vboxguest/r0drv/linux
sudo vi memobj-r0drv-linux.c

  1536, 1541行目
   変更前 ~ KERNEL_VERSION(3, 13, 0)
   変更後 ~ KERNEL_VERSION(3, 10, 0)

変更後以下のコマンドを実行することでGuest Additionをインストールできる。

sudo /etc/init.d/vboxadd setup

なお、ここでまたsudo ./VBoxLinuxAdditions.runを実行してしまうと、memobj-r0drv-linux.c が修正前の状態に戻ってしまうので要注意。最後に再起動すればGuest Addtionsのインストールは完了。

これでVirtualBox上にCentOS 7をインストールし,Guest Addtionsによりマウスの統合やフルスクリーンにでき快適になった。

なお,このインストールでOpenGL関係のビルドはエラーとなるかもしれないが,特に困らないので今回は放置する。