VirtualBox

icon

公開:’07-05-08

更新:’07-09-20

はじめに

VirtualBoxは独InnoTek社の仮想x86環境です。ユーザーのマシン上に仮想的なPCを再現し、この上でIntel x86用のさまざまなOS(WindowsやLinuxなど)とアプリケーションを動かすことができます。つまり物理的には1台のMac/PCでも、あたかも複数のPCを使用しているような環境が得られるわけです。

企業ユースでは、こうした仮想環境はサーバーを有効利用するために使われるなど、既にソリューションとして活用されています。個人ユースでは特定のOSやアプリケーションを使うために導入されているケースが殆どでしょう。例えば、古くなって現在ではサポートされていないOSや、ユーザーが使っているOSとは別のものを利用する、などです。

VirtualBoxには2種類あります。ソースコードを公開していないクローズドバージョンと、オープンソースとして公開しているOSE (Open Source Edition)です。クローズドバージョンは、個人利用では無償で使用することができ、OSEよりも機能的には上です。 Mac用のクローズドバージョンがベータ版としてInnoTek社より公開されたので、このページではこちらの使い方などを記します。OSEについては別ページをご覧下さい。

動作環境

VirtualBoxが動作するのはIntel Macだけです。PowerPCのMacでは使うことができません。CPUの性能的にはどのIntel Macでも大丈夫だと思いますが、問題はメモリー容量。ユーザーが使うOS(ゲストOSと呼ぶ)が推奨するメモリー分の空き容量は必要で、例えばWindows XPなら512MBくらいは必要でしょう。OS X(ホストOSと呼ぶ)自体も当然何をするにも512MBくらいは必要なので、合計1GBは必要になります。

ディスクの空き容量も必要ですが、Windowsを動かすなら、2GB以上の空きが必要になるでしょう。

グラフィックの性能がどこまで影響するかは分かりません。GPUの機能を直接使っているようには見えないので、MacBookのようなGPUがない機種でもあまり影響がないような気もしますが、こればかりは実際にやってみないと分かりません。

機能概要

全体像

前述のように、VirtualBoxはPCというハードウェアをソフト的に再現することで、各種OSを変更することなく動かせるようにしています。ハードウェアで直接実行したときに比べれば大きなオーバーヘッドが生じる訳ですが、CPUの性能向上と仮想環境の仕組みを工夫することで、実用的なものになっています。このようなソフトウェアで再現されたPCを仮想マシン(Virtual Machine、以下VM)と呼びます。 VirtualBoxに特徴的なのは、ユーザーにGUIなどを提供するフロントエンドとVMが分離されていることでしょう。フロントエンドとVMを言い換えて、それぞれクライアント、サーバーと言うこともできます。つまり、VirtualBoxはクライアント-サーバー方式を採用しているわけです。VirtualBox全体を簡略化して図にすると以下のようになります。

icon

通常、ユーザーはVirtualBoxという名のフロントエンドさえ使えれば十分ですが、より細かい設定や、コマンドレベルでVMを制御したいときは、VBoxManageを使うことになります。VBoxBFEはテスト用、VBoxSDLはシンプルなGUIが必要なときに使います。VBoxVRDPはリモートでVirtualBoxを使う場合に使用します。リモート用の通信手順(プロトコル)はMicrosoftのRDC (Remote Desktop Connection)と上位互換なので、Macでも利用することができます。まだ、ユニバーサルバイナリー版はベータの段階ですが、Mac用のソフトが MSのサイトから入手できます。

対応ゲストOS

VirtualBoxはすべてのPC用ハードウェアをサポートしていないので、既存の全てのx86用OSが使えるわけではありません。ゲストOSとして対応しているのは以下のとおり。

  • Windows NT 4.0 SP 6a以降
  • Windows 2000 SP3以降
  • Windows XP
  • Windows Server 2003
  • Windows Vista (現在は部分的に対応)
  • Linux 2.4 (制限あり)
  • Linux 2.6.13以降(ただし、2.6.17, 2.6.18では問題あり)
  • FreeBSD(制限あり)
  • OpenBSD 3.7, 3.8

現在VirtualBoxはDirectXやOpenGLには対応していないので、3Dを目一杯使うようなゲームは動かないか、あるいは使い物にならないでしょう。ただ、Windowsについてくるピンボールくらいのゲームなら、問題なく遊ぶことができます。

ゲスト・アディション (Guest Addtion)

VirtualBoxにはゲストOSにインストールする形をとる、ゲスト・アディションという機能がああります。意訳すれば、ゲストOS用付加機能、といったところでしょうか。これにより、グラフィックドライバーを強化したり、共有フォルダーといったホストOSとのスムーズな連携が可能になります。

VMWareのVMWare Player(OS X用はまだない)も、VirtualBoxのように無料で利用できる仮想環境ですが、ゲスト・アディションに相当するものは省かれています。

1.4の新機能

Mac用ベータ2の正式版はバージョン1.4.1として登場する見込みです(追記:1.6かも)。一応、1.4の主な新機能を書き出しておきます。

  • Mac OS X対応
  • ユーザーインターフェイスの多言語対応
  • VMWare用ディスクイメージ(分割ファイルには未対応?)
  • ディスクイメージの変換(vmdk -> vdi?)
  • ディスクへの低レベルアクセス(現在はLinuxのみ)

ベータ2版の制限事項

ベータ2では以下のものが未対応。

  • ネットワーク・インタフェース(NATでネットに接続できる)
  • 音声入力
  • Intel VT-x
  • ディスクへの低レベルアクセス(raw disk)
  • Numlock機能
  • 共有クリップボード

この他にも既知の問題あり。インストーラーを起動すると表示されるので確認して下さい。

インストール

VirtualBoxのサイトからファイル(VirtualBox-1.4.1-r22965.dmg)をダウンロードし、これをダブルクリックすると、ディスクイメージがマウントがされる。この中にVirtualBox.mpkgというインストーラーがあるので、これをダブルクリックするとインストールが始まる。通常のインストーラーで、特に設定項目もないので、画面の指示通りにボタンをクリックしていけば問題ないでしょう。

必要なファイルはVirtualBoxというアプリケーション自身に殆ど含まれているが、VBoxDrv.kextという機能拡張だけは、/ライブラリ/Extensionsに格納される。この場所は将来変更されるかもしれない。

使い方

VirtualBoxのアイコンをダブルクリックして起動すると、下図のようなウィンドウが表示される。

icon

この図ではすでにVMが2つほど設定された状態になっている。VMの設定をする前に、ノートユーザーは”ホストキー”の設定を変更しておいた方がいいだろう。ゲストOS起動後、ゲストOSのウィンドウをクリックすると、マウスはゲストOSの制御下に入る。ホストキーはこの状態から、ホストへ制御を戻すためのキー。デフォルトは右側のCommand (⌘)キーになっているが、ノート型のキーボードにはないと思う。後々不便なことになるので、メニュー”Preferences…”で表示される、設定ウィンドウで変更してしおいた方がいいでしょう。表示されたウィンドウにInputという項目がある。ここのフィールドをクリックしてハイライト状態にした後、設定したいキーを押す。

icon

残念なことに、Ctrl + ⌘などのコンビネーションは受け付けてくれないようだ。単独のキーで適当なものを入力するしかない。

言語の設定もこのウィンドウで指定できる。”Language”項目に日本語があるので、これを選択するだけ。OKボタンを押すとすぐに表示が日本語になる。ただし、メッセージなどの一部は英語のままである。

 

次にVMの設定。メインウィンドウの”New”ボタンをクリックすることで、VM設定のウィザードが開始される。この中に”OS Type”という項目があるが、もっぱらOSのアイコンを設定するもので、VM自体の動作に影響を与えるものではない。”Base Memory Size”はゲストOSに割り当てるメモリーの容量。少なくともゲストOSが推奨するサイズは設定しておく。「OS Xは仮想記憶を使っているのだから、物理メモリー以上のメモリーが使える筈」ということで、過大なサイズを割り当ててしまうことは避けたい。仮想記憶を使っているOSは、物理メモリーが枯渇すると、とんでもなくスローダウンしてしまう。こうなるとCPUの性能などは全く関係なくなる。

後はハードディスクイメージの設定。VirtualBoxの場合、ハードディスクイメージ用のファイルには”vdi”という拡張子を使っている。既存のものを使うのであれば”Existing…”ボタンで指定する。”New…”ボタンで新規イメージを作ることが出来る。ここではイメージのサイズや格納する場所を指定する。新規イメージはメニューの”File > Virtual Disk Manager…”でも作ることができる。

ベータ2では、VMWare用のイメージファイル(vmdk)をサポートしている。最近のvmdkファイルは分割されている場合が多いが、これには対応していないようだ。

その他の設定や変更は”Settings…”ボタンをクリックして行う。”Shared Folders”で共有フォルダーの設定ができる。Finderでフォルダーを作っておき、これを設定する。




設定が終わったら”Start”ボタンでVMを起動する。OSインストール用のCD-ROMまたはISOイメージを設定した場合はインストールが始まる。下図はWindows 2000を起動したときの様子。

win

ゲストOSは出来るだけ動作が軽いものがいい。もちろん使いたいアプリなどの制約で重いOSを使わざるを得ないかもしれないが、可能な限りメモリーやCPUを使わないものの方がいい。それとライセンスの問題にも注意する必要がある。Vistaのベーシッククラスだと仮想マシン上で使うことは認められていないようだ。

ゲストOSが使える状態になったら、ゲスト・アディションをインストールする。ただし、使えるのは一部のWindowsとLinuxのみ。メニューの”Devices > Install Guest Additons…”を選ぶと、Windowsならインストールウィザードが始まる。インストール完了、ゲストOSの再起動後は、画面サイズや色数の変更ができるようになる。また、マウスカーソルがゲストOSのウィンドウから外れると、ホストOSの制御下に戻っていることが分かる。これで大分使い勝手がよくなる筈だ。

次にWindowsで共有フォルダーを使えるようにしてみる。”コマンドプロンプト”を起動し、以下のコマンドを実行する。

net use x:¥¥vboxsvr¥<sharename>


<sharename>は先程設定した名前を使う。これでXドライブが共有フォルダーとして機能する。

icon




ウィンドウのクローズボタンを押すと、状態をセーブするかどうか訊いてくる。セーブしておくと次回の起動のときは、保存した状態から再開するので大変便利だ。

ここまでざっと使い方を記してきた訳だが、最後に特定のVMをダブルクリック一発で起動する方法を。

まず、以下の内容のファイルをエディターなどで作る。

#!/bin/bash
cd /Applications/VirtualBox.app/Contents/MacOS
./VBoxManage startvm "Your VM" -type gui

 

“Your VM”の部分をVirtualBoxで作ったVM名に変更し、適当な名前で保存。それをターミナルで”chmod 755 xxxx”として実行可能にする。これでFinderからのダブルクリックで指定したVMが簡単に起動できる(ターミナルも立ち上がっちゃうんですけどね)。これで私の環境では問題ないのだが、この方法はよくないとの話もある。心配な人は、最後の行を以下のように変更して使って下さい。

./VirtualBox -startvm "Your VM"

ターミナルがジャマ、という方はLaunchBoxというユーティリティーを試してみて下さい。

なお、Beta2からMacの日本語キーボードをサポートしています(私が修正しました)。¥や_も入力できますし、英数、かなキーで日本語、英語を切り替えることができます。

注意点

VDIファイルのコピー:

FinderでコピーしたVDIファイル(例え空でも)と元のVDIファイルを同時に使ってはいけない。これはVDIファイルにVirtualBoxがIDを埋め込むため、同じIDを持つファイルがあると具合が悪いのである。元のファイルを差し替えて使うなら問題ないと思う。元ファイルと複製したものを同時に使いたいときはVBoxManageコマンドで複製する。  



次にベータ2の注意点を挙げます。

共有フォルダーの問題:

ホストOS側(つまりOS X)でファイル名に日本語を使ったものは、ゲストOS(Windows)上では表示されない。逆にゲストOSでファイル名に日本語を使ったものを共有フォルダーに移動するとエラーが発生する。ホストとゲストの文字コードが違う場合、おそらく文字化けを避けるのは難しいので、半角ファイル名のみをサポート、ということになっても仕方ないかもしれませんね。

ファンクションキー:

MacBookなどのノートタイプのキーボードでは、ファンクションキーが使えいない模様。

USBストレージ:

ベータ2からUSB接続機器に対応しましたが、10.4.10の場合、ストレージ系(メモリーカードや外付けディスクなど)のデバイスが使えません。