谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

VirtualBox + Ubuntuで「共有ディスク」を使う。

FTPが使えなかったので、共有ディスクに挑戦してみた。
これは、ホストマシンのドライブやディレクトリを、仮想マシン側のOSにマウントできるというもの。
FTPなど使わなくて良いので非常に便利なので、使い方をメモしておく。


共有ディレクトリを使うためには、まずVirtualBoxの「Guest Additions」という
機能をインストールする必要がある。
そのために、まずは仮想マシン側のOS(今回はUbuntu JeOS 8.0.4-1)を立ち上げて、
コンソールのメニューバーから「デバイス」−「Guest Additions のインストール」を選ぶ。


これで、仮想マシンの「/dev/cdrom」にGuest Additionsの
インストール媒体(CDイメージ)がマウントされるので、そこからインストールを行う。

sudo mount -t iso9660 /dev/cdrom /media/cdrom


と、ここで、いきなりインストーラ(VBoxLinuxAdditions-x86.run)を走らせると、
やれカーネルヘッダがないだの、makeやgccがないだの怒られるので、インストールする。


カーネルヘッダのバージョンを知らない場合は、unameコマンドで調べる。

uname -a

すると、こんな表示が出るはず。

Linux (ホスト名) 2.6.24-19-virtual #1 SMP Wed Jun 18 15:52:10 UTC 2008 i686

ここでは「2.6.24-19-virtual」がバージョン番号。
これでapt-cache searchしてみると良い。

sudo apt-cache search -n 2.6.24-19-virtual

いくつか候補がでてくるけど「linux-headers-2.6.24-19-virtual」というのが正解。
これと、gccとmakeをインストールしてやる。

sudo apt-get install make gcc linux-headers-2.6.24-19-virtual


これでGuest Additionsをインストールするための準備は完了。
はりきってインストールする。はりきるのがコツ。

sudo /media/cdrom/VBoxLinuxAdditions-x86.run kernel-module vfs-module control

VBoxLinuxAdditions-x86.runを普通に実行すると、
X Windowがないゼみたいなエラーが出て若干気持ち悪いので(別に害はないんだけど)
上に書いた通りの引数を指定して、必要なものだけインストールする。


ここまでできたら、いったん仮想マシン側のOSをシャットダウン。
そして、VirtualBox仮想マシンの設定で「共有フォルダ」を選択。


「新規共有フォルダ」を選択して、
「フォルダのパス」に、ホストOS側の任意のドライブ、
「フォルダ名」に、ゲストOS側から参照したい名前にする。


たとえば僕はGavotteで作ったRamdiskを共有したかったので、
「フォルダのパス」に、「R:\」と入力して、
「フォルダ名」に「ramdisk」と入力して作成した。


これで準備は完了。仮想マシン側のOSを立ち上げる。
OSが立ち上がったら、共有ディスクをマウントしてやる。

sudo mkdir /pub
sudo mount -t vboxsf ramdisk /pub

これで、「/pub」がホストOSの「R:\」を参照することになる。
非常に便利。


ただ、Ramdiskが悪いのか、共有ディスクが悪いのか、
この/pubにかなりの頻度での書き込み(大量のログ出力)を行ったら
なぜかデータの一部が壊れてしまった。


普通に書き込んだり、コピーしたりする分には全く差し支えないんだけど、
頻繁なアクセスは控えた方が良いのかも知れない。
これも原因の切り分けなどができたら、またお知らせします。


''2009/09/05追記''
起動時に自動マウントするよう、以下を行っておくと良いでしょう。

sudo vi /etc/fstab
以下を追記。

ramdisk /pub vboxsf rw,noauto 0 0

もちろんramdiskは共有フォルダ名、/pubは共有フォルダにしたいゲスト側のフォルダ名。


sudo vi /etc/rc.local
以下を追記

mount ramdisk