VirtualBox上のCentOS5で共有フォルダをマウントする

VirtualBoxをMac上で動かした際にゲストOSのCentOS5に共有フォルダをマウントする方法です。

  • ホストOS:Mac
  • ゲストOS:CentOS5

WindowsのVMWarePlayerで使っていた仮想環境をMacのVirtualBoxで動かす

でゲストOSの環境をVMWarePlayerから引っ張ってきた状態からスタートします。

CentOS5に共有フォルダの設定

http://mpweb.mobi/windows/share-centos.php

などを参考にVirtualBOXの設定画面から共有フォルダの設定を行います。

Guest Additionsインストール

CentOSにGuest Additionsをインストールします。まずCDイメージですが、

/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso

にあるので、自分のフォルダに適当にコピーしておきます。

その上でゲストOSを起動して、CDにVBoxGuestAdditions.isoのセットを行います。

システム上でマウントをします。

# mkdir /mnt/cdrom
# mount -r /dev/cdrom /mnt/cdrom

# yum install gcc
# yum install make
# yum install kernel-devel

# cd /mnt/cdrom
# ls -l

インストーラを実行します。

# sh ./VBoxLinuxAdditions.run

エラーが出ました。

Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.20 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.3.20 of VirtualBox Guest Additions...
Copying additional installer modules ...
add_symlink: link file /usr/lib/VBoxGuestAdditions already exists
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
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.
The missing package can be probably installed with
yum install kernel-devel-2.6.18-128.1.6.el5

Building the main Guest Additions module                   [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions              [  OK  ]
Installing the Window System drivers
Installing X.Org 7.1 modules                               [  OK  ]
Setting up the Window System to use the Guest Additions    [  OK  ]
The following X.Org/XFree86 configuration files were originally generated by
the VirtualBox Guest Additions and were not modified:

  /etc/X11/xorg.conf

You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services componen[  OK  ]

ログを見てみます。

# cat /var/log/vboxadd-install.log
/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

カーネルのソースのパスを指定する必要があるようです。

ただ今回の場合、 

yum install kernel-devel-2.6.18-128.1.6.el5

を行った際に、該当するパッケージがなくてインストールが上手く行っていませんでした。

現在利用中のカーネルのバージョンを確認します。

# rpm -qa kernel\* | sort 
kernel-2.6.18-128.1.6.el5
kernel-2.6.18-92.1.22.el5
kernel-2.6.18-92.el5
kernel-devel-2.6.18-400.1.1.el5
kernel-headers-2.6.18-128.1.6.el5

あたらしすぎるkernel-develがインストールされているので、kernelと同じバージョンのkernel-develをインストールし直します。

# yum install kernel-devel -y
# yum remove  kernel-devel
# wget http://vault.centos.org/5.3/updates/i386/RPMS/kernel-devel-2.6.18-128.1.6.el5.i686.rpm
# yum localinstall kernel-devel-2.6.18-128.1.6.el5.i686.rpm
# export KERN_DIR=/usr/src/kernels/2.6.18-128.1.6.el5-i686

改めてGuest Additionsをインストールします。

# sh ./VBoxLinuxAdditions.run

マウントを行います。

mount -t vboxsf -o dmode=0777,fmode=0777 share(共有フォルダ名) /mnt/hgfs/share/(マウント先)

リブート対応

リブート時にも自動的にマウントするように設定を行います。

# vim /etc/rc.local
mount -t vboxsf -o dmode=0777,fmode=0777 share(共有フォルダ名) /mnt/hgfs/share/(マウント先)

エラーログとその対処方法

unknown filesystem type ‘vboxsf’

マウントしようとした時に

mount: unknown filesystem type ‘vboxsf’

が出る場合、「Guest Additions」をゲストOS側にインストールする必要があります。

mounting failed with the error: No such device

マウントしようとした時に

/sbin/mount.vboxsf: mounting failed with the error: No such device

が出る場合、「Guest Additions」のインストールが正常に完了していません。

Guest Additionsインストールエラー

# cat /var/log/vboxadd-install.log
/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.

カーネルのソースコードのパスが上手く取れていません。

export KERN_DIR=

を指定します。