VirtualBoxでゲストOSのCentOSにGuest Additionsで共有フォルダを作る方法

VirtualBoxはちょっとした開発環境を立てるにはとても便利なのですが、ホストOS(今回はWindows)との共有フォルダを作るにはひと手間が必要です。
今回、ゲストOSのCentOSに共有フォルダを作ろうとしてつまづいてしまったことがあったので、備忘がてら記事にしたいと思います。

前提として、まずゲストOSとしてCentOSがすでにインストールされているものとします。
ゲストOSのコンソールウィンドウを開いて、メニューの「デバイス」をクリックすると下の方に「Guest Additions CDの挿入…」という項目があるので、これを選択します。すると、何もメッセージは出ませんが、ゲストOSの仮想CD-ROMドライブにGuest Additionsをインストールするためのメディアがセットされます(VirtualBoxのコントロールパネルの「設定」→「ストレージ」からも確認ができます)。

で、このメディアを/mntにマウントします。

mount /dev/sr0 /mnt

/mntに移動すると「VBoxLinuxAdditions.run」というインストーラがあるので、これを実行すればいいのですが……その前に、このインストーラはカーネルモジュールを作成するので、そのために必要なパッケージをインストールしておきます。

yum -y install epel-release
yum -y install gcc make bzip2 perl kernel-devel kernel-headers dkms

で、今回のハマりポイントはここでした。
これらをインストールしてVBoxLinuxAdditions.runを実行しても、「kernelのheaderが見つからん」「kernel-develをインストールしろ」というメッセージが出て、インストールが進まないのです。

なんでだろうなあ、と考えて調べてみたところ、すぐに理由が判明しました。カーネルのバージョンと、kernel-develおよびkernel-headersのバージョンがズレていたのです。yumでは最新バージョンのkernel-develおよびkernel-headersがインストールされる一方、カーネルをアップデートされていない状態だとカーネルの方のバージョンが古くなっているので、結果としてこれらのバージョンの整合性が取れずにインストーラが止まってしまったというわけなのです。

というわけで、素直にカーネルをアップデートします。

yum update kernel

この後に再度VBoxLinuxAdditions.runを実行したところ、うまく動いてくれました。やれやれ。

インストールが完了したら、VirtualBoxのコントロールパネルの「設定」→「共有フォルダー」で共有したいホスト側のフォルダを追加しておきます。「フォルダーのパス名」にはホスト側のフォルダのパスを、「フォルダー名」にはそのフォルダの名前を(まんまですな)入力しておきます。で、例えば「フォルダーのパス名」を「c:\share」、フォルダー名を「share」として、このフォルダをゲスト側の/home/hogehoge/shared_dirで共有したい場合は、以下のようにマウントします。

mount -t vboxsf share /home/hogehoge/shared_dir

仮想マシンを立ち上げるたびにmountコマンドを打つのが面倒くさい場合は、/etc/fstabに以下の行を書き加えておきましょう。

share  /home/hogehoge/shared_dir  vboxsf  defaults 0 0

ホスト側で何かファイルを作れば、マウントしたディレクトリからそのファイルを読み書きすることができます(もちろん逆も可)。

というわけで、VirtualBoxで共有フォルダを作るまでの方法でした。VMware Workstationだと、たしかこの辺もっと簡単だったと思うんですが……まあ、その辺はお好みということで。
以上、どなたかのお役に立てば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください