複数の VM 環境を扱っているとき、VM 上でカスタマイズする設定ファイル、スクリプトなどの大半は各 VM で共有できることが多い。
VM 環境毎に新たにファイルを作成したり、ファイルを scp 等でコピーしたり、など、まともにやっていると管理含めてメンドイことになる。
ローカルで開発を行っており、複数の VM を使って作業を行う場合、VM 環境からローカル(ホスト OS)のファイルを扱えるようにしておいて、各 VM で共有できると何かと便利だ。
VM 環境からローカル(ホスト OS)のファイルを「共有フォルダ」として扱えるようにする。
また、このホスト OS の対象ファイルをオンラインストレージサービス Dropbox などで管理していものを利用すると、どのマシンでも同じ作業データを使用して VM 環境を利用できるようになる。
Table of Contents
Open Table of Contents
環境と手順の概要
環境は以下の通りとなる。
- Oracle VM VirtualBox v4.0.8
- ローカル(ホスト)OS は、Ubuntu 10.04 Desktop or Windows XP
VirtualBox が動作すれば特に選ばないはず。 - 仮想 OS は Turnkey Linux (Ubuntu 10.04) を使用
手順は以下の流れとなる。
- VM Manager での作業
- VM Manager でネットワーク設定に “Host only adapter” を追加しておく
- 共有フォルダを作成しておく
- VM ゲスト OS での作業
- 必要なパッケージのインストール
- Guest Additions のインストール
a. イメージのマウント
b. Guest Addictions のインストール実行 - 共有フォルダを利用する
1. VM Manager での作業
まずは、VM Manager での作業。まだ VM のマシンは起動していない。
1.1. VM Manager でネットワーク設定に “Host only adapter” を追加しておく
VM Manager を使用して仮想マシンのネットワーク設定に “Host only adapter” を設定していない場合には設定しておく。
1.2. 共有フォルダを作成しておく
VM から使用するローカル(ゲスト OS)のディレクトリを指定し、共有フォルダとして VM Manager に登録しておく。
上記の例では、実体としてのフォルダを”ファルダのパス” (/home/xxx/Dropbox
) に指定し、“フォルダ名” に “Dropbox” と指定している。
後者の “フォルダ名” というのが、VM 環境のゲスト OS から参照する際のフォルダの名称となる。
ここで、VM のマシンを起動しておく。
2. VM ゲスト OS での作業
VM のゲスト OS での作業になる。
2.1. 必要なパッケージのインストール
bzip2
、dkms
、build-essential
、linux-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 のインストール” をクリックする。
クリックした後、画面上何の変化もなく、何が起きたの?的な状況になるが、これで、ゲスト 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 から利用可能となる。