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