My Photo

« CentOS 6.5にX Window Systemのインストール | Main | CentOSのバージョンを確認する »

November 26, 2014

VirtualBoxのCentOS6.5にGuest Additionsをインストール

関連記事:
VirtualBox+CentOS導入
VitrualBox+CentOS 6.5環境のネットワークの設定
CentOS 6.5にX Window Systemのインストール

以前の記事でホストOS-ゲストOSの間の共有フォルダの設定について書いたが、共有フォルダを使うにはゲストOSにGuest Additionsというのをインストールしないといけないらしい。
順序が前後したが、CentOSにGuest Additionsをインストールした。結構苦労した。

インストール失敗

VirtuBoxのメニューの「デバイス」>「Guest Additions のCDイメージを挿入」とすると、オートランのアプリケーションを実行するか確認ダイアログが表示される。実行に同意しインストーラが実行されたが、開いたターミナルに

yum install kernel-devel-2.6.32-431.el6.x86_64

Buiding the main Guest Additions module      [失敗]
(Look at /var/log/vboxadd-install.log to find out what went wrong)

と出ている。他に[OK]と出ているものもあるが、カーネルの何かについては失敗してるようだ。vboxadd-install.log を見ると

unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.

とある。シェルに変数 KERN_DIR を設定すればいいらしい。
スナップショットで作業前の状態に戻して、以下のように KERN_DIR を設定。

# uname -r
2.6.32-431.el6.x86_64
# export KERN_DIR=/usr/src/kernels/`uname -r`

そして再度、インストールを試みる。「デバイス」>「Guest Additions のCDイメージを挿入」としたが、先ほどと違って何も起きない。/media の下にマウントもされていない。
最初に「デバイス」>「Guest Additions のCDイメージを挿入」としたときは、実際のPCの光学ドライブにCD-ROMを入れた時と同じようにオートランになっているアプリケーションが実行される。2回目以降は既に光学ドライブにCD-ROMが入っている状態なので何も起きない、ということだろか。
GUI環境で「コンピュータ」を押下すると「CD/DVD ドライブ: <Guest Additions のCD>」というのがある。それを押下すると、CD-ROMがマウントされてCD-ROMの中身が表示される。
それから端末で

# cd /media/<Guest Additions のCD>
# sh VBoxLinuxAdditions.run

とやった。けどまた失敗。
ログを見ると、カーネルのソースが見つからないと書かれていた。KERN_DIR にセットしたフォルダに実際にカーネルのソースがないとだめなのか。
カーネルのソースは "yum install kernel-devel" なのだが、やってみると仮想マシンの現在のカーネルのソースではなく、CentOS 6.5の最新のカーネルのソースを持ってきてしまう。ならばカーネルをバージョンを指定してと思い

# yum -y install kernel-devel-2.6.32-431.el6.x86_64

としたが、エラーが発生。yumのリポジトリ?には2.6.32-431.el6.x86_64のソースがないのかな。
rpmファイルを直接指定してやればいいらしいので、 kernel-devel-2.6.32-431.el6.x86_64.rpm でググってrpmファイルがあるところを探して、

# yum -y install ftp://ftp.muug.mb.ca/mirror/centos/6.5/os/x86_64/Packages/kernel-devel-2.6.32-431.el6.x86_64.rpm

としたらカーネルのソースがインストールされた。
けど、ここまでやって方針転換。

updateしてからにする

kernel-devel のインストールで現在のカーネルと違うソースコードが入っちゃうのはカーネルが古いから。カーネルとカーネルのソースコードを合わせるんなら、古いソースコードをインストールするのではなくカーネルの方をアップデートした方がいいじゃん、ということでカーネルのアップデートすることにした。
どうせアップデートするならカーネルだけじゃなくて全部アップデートすることに。以下のコマンドを実行。

# yum update

再起動すると、uname -r の値が 2.6.32-504.1.3.el6.x86_64 となった。
それから kernel-devel と、参考サイトでは一緒にインストールしていたので gcc、perl をインストール。
Guest Additionsのインストールってカーネルのソースが必要ってことはカーネルを再コンパイルしてるんだろう。そうすると gcc が必要ってのはわかる。perlはよくわからんが。make は最初から入っているらしい。gcc が入ってなくて make が入ってるって、なんか変な感じがする。まあ make はCコンパイラのためだけのアプリケーションじゃないのかもしれんが。

# yum -y install gcc kernel-devel perl

kern-develをインストールすると /usr/src/kernels に 2.6.32-504.1.3.el6.x86_64 ディレクトリができていて、中にソースコードがあった。
そのディレクトリのパスを KERN_DIR を設定。

# export KERN_DIR=/usr/src/kernels/2.6.32-504.1.3.el6.x86_64

そして VBoxLinuxAdditions.run を実行してGuest Additionsのインストール成功。長かった。
これで
・共有フォルダが有効になった。
・ホストOSとゲストOSのウィンドウ間でマウスがシームレスに使えるようになった。

参考ページ:
VirtualBox 上の CentOS6.5(64bit)に GuestAdditions をインストール @ Mac OS X - RAINGARDEN
mog project: How to Solve Vagrant+CentOS+VirtualBox Mount Error
密かなITエンジニアの備忘録:VirtualBoxのCentOS6.5にGuest Additionsをインストールする
CentOS 用の古いkernel-devel パッケージの検索 - ナレッジベース - Server Backup Manager: Docs, KB Articles, Technical Papers

« CentOS 6.5にX Window Systemのインストール | Main | CentOSのバージョンを確認する »

Linux」カテゴリの記事

プログラミング、技術情報」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/60718135

Listed below are links to weblogs that reference VirtualBoxのCentOS6.5にGuest Additionsをインストール:

« CentOS 6.5にX Window Systemのインストール | Main | CentOSのバージョンを確認する »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof