初版 2013/07/14
Fedora19への対応 2013/11/02
全面刷新 2013/11/16
VBOXASDDTIONSのフォルダー名を自動判別 2013/12/08

概要

VirtualBoxで共有フォルダ機能を使用するためにGuest Additionsをインストールする必要がありますが、エラーがでてインストールできなかったので、解決方法を記載する。

動作確認環境
Windows 7 64bit/32bit
VirtualBox 4.3.2 r90405
Fedora18 32bit 3.10.14-100.fc18.i686
Fedora18 64bit 3.11.4-101.fc18.x86_64
Fedora19 32bit 3.11.7-200.fc19.i686
Fedoraのバージョンは更新後で記載

Windows側に共有フォルダを準備後、Virtualboxで設定する

以後、Windows上のC:\linuxを共有フォルダーを例に説明する。
VirtualBox マネージャーの設定で共有フォルダー名と共有するWindows側のフォルダー名を設定する。

フォルダーパスにC:\linux
フォルダー名にlinuxを設定

Guest Additionsをインストールする

ゲストOSを起動しデバイスメニューのGuest Additionsをインストールを選択する。

Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.12 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
The gcc utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

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-3.9.4-200.fc18.i686

Building the main Guest Additions module                   [失敗]
(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 Server 1.13 modules                       [  OK  ]
Setting up the Window System to use the Guest Additions    [  OK  ]
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  ]
Press Return to close this window...

Guest Additionsをインストールが失敗した場合

上記の様に実行時にエラーおよび失敗が発生した場合、gcc等のインストールを実施した後、Guest Additionsを再度インストールする。システムのアップデートにより共有機能が使えなくなるときがあるので設定が楽になるようにシェルスクリプトで記述し実行する例も示す。
実行には端末を起動してroot権限を取得する必要がある。(端末上でsu -を実行)

スクリプトを使用せずに更新

yum -y install kernel-headers kernel-devel gcc
更新されたパッケージがあれば再起動する。
yum update
更新されたパッケージがあれば再起動する。
export KERN_DIR=/usr/src/kernels/`uname -r`
/run/media/ユーザー名/VBOXADDITIONS_4.3.2_90405/
./VBoxLinuxAdditions.run
上記のユーザー名はログインしたユーザー名で置き換える 共有フォルダはvboxsfグループに属するので該当ユーザーを追加する。一度追加すればシステム更新後に再実行する必要はない。
gpasswd -a $1 vboxsf

スクリプトを使用してインストール

スクリプトのダウンロード

スクリプト a1.sh a2.sh a3.shをダウンロードし、実行権限を与える。
chmod 777 *.sh

gcc等をインストール

./a1.sh
パッケージが更新されていれば再起動させる。

その他のパッケージを更新

./a2.sh
パッケージが更新されていれば再起動させる。

環境変数KERN_DIRを設定しVBOXASDDTIONSをインストールする

フォルダ /run/media/ユーザー名/ にVBOX・・・フォルダーがあるかどうか確認する。なければ下図 のとおり操作する。ただしCDの中身は実行しないこと。

2013/11/16の記述では「先ほどのVBOX・・・フォルダー名とa3.shに記述されているフォルダー名を比較し違いがあればa3.shを修正する。」と記載していましたが、今回はスクリプトを修正してフォルダー名を自動に認識するようにしました。a3.shの`ls`はlsコマンドの実行結果を参照しなさいという意味です。`はshiftを押しながら@を押して入力します。
a3.shの引数にユーザー名を記述して実行。ユーザー名はVBOXASDDTIONSをマウントしたユーザー名である。
./a3.sh ユーザー名

a1.shのソース

yum -y install kernel-headers kernel-devel gcc

a2.shのソース

yum update

a3.shのソース

export KERN_DIR=/usr/src/kernels/`uname -r`

pushd /run/media/$1
cd `ls`

./VBoxLinuxAdditions.run

popd


a1~a4のダウンロード

a1.sh
a2.sh
a3.sh(2013/12/08修正)
a4.sh

共有フォルダーをfedoraでマウントする

VirtualBoxの自動マウント機能を使う場合は、ゲストOSでは/media/sf_フォルダー名にC:\linuxがマウントされる。
任意に設定する場合は自動マウント機能を使わない。

自動マウントを使う場合

/media/sf_フォルダー名はvboxsfに属するユーザーでしかアクセスできないので、一般ユーザー名をvboxsfグループに追加する必要がある。
ゲストOSの端末を起動しroot権限を取得し、gpasswdコマンドを実行しログオフまたは再起動する。

ユーザー名を引数で設定できるように変更

su -
rootパスワード
gpasswd -a $1 vboxsf
reboot

a3.shの実行例

上記をシェルスクリプトで記述したa4.shはユーザー名を引数により設定する。たとえばユーザー名uを追加するには下記のように記述する。
例 ./a4.sh u

自動マウントを使用しない場合

下記の例では /mnt/share にマウントしている。
su -
rootパスワード
mount -t vboxsf linux /mnt/share