作業データを複数の VM で共有する - VirtualBox「共有フォルダ」の使い方

Written by @dr_taka_n at 2011/07/03 17:01 [, ]

複数の VM 環境を扱っているとき、VM 上でカスタマイズする設定ファイル、スクリプトなどの大半は各 VM で共有できることが多い。
VM 環境毎に新たにファイルを作成したり、ファイルを scp 等でコピーしたり、など、まともにやっていると管理含めてメンドイことになる。
ローカルで開発を行っており、複数の VM を使って作業を行う場合、VM 環境からローカル(ホストOS)のファイルを扱えるようにしておいて、各 VM で共有できると何かと便利だ。

VM 環境からローカル(ホストOS)のファイルを「共有フォルダ」として扱えるようにする。

また、このホスト OS の対象ファイルをオンラインストレージサービス Dropbox などで管理していものを利用すると、どのマシンでも同じ作業データを使用して VM 環境を利用できるようになる。

環境と手順の概要

環境は以下の通りとなる。

  • Oracle VM VirtualBox v4.0.8
  • ローカル(ホスト)OSは、Ubuntu 10.04 Desktop or Windows XP
    VirtualBox が動作すれば特に選ばないはず。
  • 仮想 OS は Turnkey Linux (Ubuntu 10.04) を使用

手順は以下の流れとなる。

  1. VM Manager での作業
    1. VM Manager でネットワーク設定に “Host only adapter” を追加しておく
    2. 共有フォルダを作成しておく
  2. VM ゲスト OS での作業
    1. 必要なパッケージのインストール
    2. Guest Additions のインストール
      a. イメージのマウント
      b. Guest Addictions のインストール実行
    3. 共有フォルダを利用する

1. VM Manager での作業

まずは、VM Manager での作業。まだ VM のマシンは起動していない。

1.1. VM Manager でネットワーク設定に “Host only adapter” を追加しておく

VM Manager を使用して仮想マシンのネットワーク設定に “Host only adapter” を設定していない場合には設定しておく。

virtualbox-network-setting

1.2. 共有フォルダを作成しておく

VM から使用するローカル(ゲストOS)のディレクトリを指定し、共有フォルダとして VM Manager に登録しておく。

virtualbox-share-folder-setting

上記の例では、実体としてのフォルダを”ファルダのパス” (/home/xxx/Dropbox) に指定し、”フォルダ名” に “Dropbox” と指定している。 後者の “フォルダ名” というのが、VM 環境のゲスト OS から参照する際のフォルダの名称となる。

ここで、VM のマシンを起動しておく。

2. VM ゲスト OS での作業

VM のゲスト OS での作業になる。

2.1. 必要なパッケージのインストール

bzip2dkmsbuild-essentiallinux-headers-<kernel-version> が必要となる。

# apt-get install bzip2
# apt-get install dkms
# apt-get install build-essential
# apt-get install linux-headers-`uname -r`

2.2. Guest Additions のインストール

VirtualBox が提供している Guest Addictions のインストールを行う。 まずは、このインストールに使用するファイルをゲストOSから見えるようにする。

2.2.a) イメージのマウント

VirtualBox の “デバイス” メニューにある “Guest Addictions のインストール” をクリックする。

virtualbox-guest-addictions-install-1

クリックした後、画面上何の変化もなく、何が起きたの?的な状況になるが、これで、ゲスト OS から “Guest Addictions” のインストール用ファイルがあるイメージを参照できるようになっている。

ゲスト OS からマウントする。

# mkdir /media/cdrom
# mount /dev/cdrom /media/cdrom
# cd /media/cdrom/
# ls -l
total 37393
dr-xr-xr-x 3 root root     2048 2011-05-17 01:59 32Bit
dr-xr-xr-x 2 root root     2048 2011-05-17 01:59 64Bit
-r-xr-xr-x 1 root root      647 2011-01-19 21:42 AUTORUN.INF
-r-xr-xr-x 1 root root  7853516 2011-05-17 01:53 VBoxLinuxAdditions.run
-r-xr-xr-x 1 root root 14664192 2011-05-17 01:55 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root  9284432 2011-05-17 01:45 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root  6190464 2011-05-17 01:39 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x 1 root root   278832 2011-05-17 01:39 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root     6966 2011-05-17 01:51 autorun.sh
-r-xr-xr-x 1 root root     5523 2011-05-17 01:51 runasroot.sh

インストールプログラムである VBoxLinuxAdditions.run が見えている。

2.2.b) Guest Addictions のインストール実行

インストールを実行する。

# ./VBoxLinuxAdditions.run 
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.0.8 Guest Additions for Linux..........
VirtualBox Guest Additions installer
tar: Record size = 8 blocks
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)

“Window System drivers” が fail しているが、サーバ用途で使っていてファイルの共有だけの用途であれば無視して構わない。

2.3. 共有フォルダを利用する

先に VM Manager 側の作業で共有フォルダ “Dropbox” を作成していた。 この共有フォルダをゲスト OS でマウントする。

# mkdir Dropbox
# mount -t vboxsf Dropbox ~/Dropbox
# cd Dropbox/
# ls -l

以上でゲスト OS のファイルを VM ゲスト OS から利用可能となる。

参考サイト

blog comments powered by Disqus