仮想化ソフトウェア VirtualBox の使い方

Contents


VirtualBoxは、個人向けの仮想化ソフトウェアのひとつです。競合する製品としてはVMware Player, Virtual PC(Microsoft)を挙げる事ができます。どの製品を使ってもあまり差はないですが、VirtualBoxが一番高機能な仮想化ソフトウェアであると思います。ただし、ネットワーク関連の設定が若干不親切なので、ある程度のトラブルシュート能力は必要となります。

このページは、Windows環境にVirtualBoxをインストールする方法とVirtualBoxの使い方について説明を行います。

VirtualBoxのインストール

VirtualBoxのダウンロード

以下URLの”Oracle”公式サイトをブラウザで開きます。

リンクを辿り”Oracle VirtualBox”のダウンロードページを探して下さい。OSによってダウンロードすべきファイルが異なる事に注意下さい。

oracle_virtual_box_download_001

VirtualBoxのインストール

先ほどの手順でダウンロードしたexeファイルをダブルクリックしインストーラーの指示に従いインストールを実行します。おそらく迷う事はないと思いますが、念のためにインストール手順を記します。

「Next」を押下します。

oracle_virtual_box_install_001

インストールするコンポーネントの選択画面です。私はデフォルト設定のままで特に困る事はありませんでした。そのまま「Next」を押下して下さい。

oracle_virtual_box_install_002

ショートカット等の設定です。特に拘りがないのならば、そのまま「Next」を押下します。

oracle_virtual_box_install_003

ネットワーク再起動する旨の警告が現れます。「Yes」を押下すると通信断が発生するので注意して下さい。もし、通信断が許容できないのならば、インストールを延期しましょう。

oracle_virtual_box_install_004

「Install」を押下します。

oracle_virtual_box_install_005

インストールが完了するまで待ちます。

oracle_virtual_box_install_006

「Finish」を押下すると、インストールが完了します。

oracle_virtual_box_install_007

仮想マシンの作成

仮想マシンの作成 – 仮想マシンの定義

VirtualBox.exeを実行します。

すると、以下のような画面が表示されると思います。「新規」ボタンを押下して下さい。

oracle_virtual_box_create_vm_001

「名前」欄に何か分かりやすい仮想マシン名を入力して下さい。「タイプ」「バージョン」はインストールする予定の仮想マシンに応じて値を入力して下さい。

値の入力が完了しましたら、「次へ」を押下します。

oracle_virtual_box_create_vm_002

仮想マシンの割り当てメモリを設定します。設定が完了しましたら「次へ」を押下します。

oracle_virtual_box_create_vm_003

仮想ハードドライブがデフォルト設定の「仮想ハードドライブを作成する」になっている事を確認し、「Next」を押下します。

oracle_virtual_box_create_vm_004

仮想ハードディスクには、いくつかの種類があります。例えば、VMwareならばVMDK形式、MicrosoftならばVHD形式になります。Oracle VirtualBoxは複数の仮想ハードディスクの形式をサポートしますので、もし複数の仮想化製品を使う環境ならば、仮想ハードディスクの変換が少なくなるように設定するとよいでしょう。

もし、特別な要件がないならば、デフォルト設定の「VDI」のままで「Next」を押下します。

oracle_virtual_box_create_vm_005

ストレージを「可変サイズ」か「固定サイズ」かを選べます。「可変サイズ」は必要な領域のみを確保するため、ディスク容量の節約につながります。主に、「可変サイズ」はSandBox環境でよく使用される設定です。

SSDのようにディスクが枯渇する傾向がある場合は「可変サイズ」がお勧めです。HDDのようにディスクリソースに余裕があるならば、性能で有利な「固定サイズ」を選択しましょう。

oracle_virtual_box_create_vm_006

ハードディスクのサイズを入力し、「作成」を押下します。

oracle_virtual_box_create_vm_007

以上で仮想マシンの作成が完了です。

仮想マシンの作成 – ISOファイルのマウント

仮想マシンを選択した状態で、「設定」を押下します。

oracle_virtual_box_create_vm_008

「ストレージ」押下し、CDのマークを押下します。

oracle_virtual_box_create_vm_009

ISOファイルを選ぶと、以下のようにISOファイル名前が表示されます。「OK」を押下し設定を完了させます。

oracle_virtual_box_create_vm_010

仮想マシンの作成 – OSインストール

該当の仮想マシンを選択した状態で、「起動」を押下します。

oracle_virtual_box_create_vm_011

見慣れたインストールの画面が現れます。以降は、通常のOSインストール手順と同様です。

oracle_virtual_box_create_vm_012

仮想マシンのネットワークの設定

仮想マシンのネットワークの設定 – IPアドレスとルーティングの設定

仮想マシンが作成されたとしてもインターネットに接続できなければ、できる検証は限られてしまいます。インターネットに接続できるようにしましょう。

Oracle VirtualBoxのネットワーク設定はやや複雑です ( 私が社内SEやっていた頃、かなりの問い合わせに対応した記憶があります ) 。まずは、DHCPの仕様について理解しましょう。DCHPが割り当てるリソースは色々ありますが、非ネットワークエンジニアでも知っていた方が良い割り当てリソースは以下3つです。

  • IPアドレス
  • デフォルトゲートウェイ
  • DNSサーバ

全てのディストリビューションについての手順を説明するのは不可能なので、多数派と思われるRedhat 6系の設定例のみ紹介します。

ディストリビューションによっては、eth0ネットワークの自動起動は無効化されている事もあります。/etc/sysconfig/network-scripts/ifcfg-eth0 の “NOBOOT”をnoからyesに変更します。

ネットワークの再起動により設定を反映させます。

DHCPによってIPアドレスが取得できている事を確認します。

8.8.8.8へのpingを送信し、ネットワークの接続性を確認します。

VirutalBoxのNATは若干の不安定さがあります。設定に誤りがなくても疎通不能になる事があります。そのような場合は、デフォルトゲートウェイ(10.0.2.2)に対してpingを送信したり、仮想マシンの再起動を行なったりする事で疎通不能が解消されます。

この不具合は、2012年頃もありましたし、現時点(2014/11/01) Oracle VirtualBox 4.3.18でも解消されていないようです。ちなみに、ネットワークに関して言えば、VMware Playerが最も安定して動作します。

仮想マシンのネットワーク設定 – DNSサーバの設定

DHCPによってDNSサーバが問題なく設定されているかを確認します。nslookup, digを使用しても良いですが、どのディストリビューションでも確実に使える確認手法は、名前解決が必要なpingです。

以下のようにwww.google.co.jp等に対するpingを行い、名前解決ができるかを確認します。

現時点(2014/11/01)の私の環境では、特に設定変更なく一発で疎通可能となりました。しかし、ホストOS側のディストリビューションやVritualBoxのバージョンによって、微妙に挙動が異なるので注意が必要です。

もし、名前解決がうまく行かない場合は、/etc/resolv.confの設定を確認しましょう。もしも、DNSサーバが適切に設定されていない場合は、”8.8.8.8″等を利用すると良いでしょう。/etc/resolv.confの設定例は以下の通りです。

私の記憶に頼った話なので信憑性は薄いですが、2013年頃のVirtualBoxは無条件でDNSサーバがホストOSに設定されたを記憶しています。そのため、dnsmasqなどのローカルで名前解決の仕組みを備えていないディストリビューションは名前解決不能になる現象が発生していた記憶があります。

ですので、古いVirturlBoxをお使いの方は、バージョンアップによってDNSの設定が楽になるかもしれません。

ホストOS ゲストOS間のssh接続

多くのLinuxディストリビューションはルートユーザによるsshログインを禁止しております。もし、sshログインがしたいならば、

  • ルート以外のユーザを作成する
  • ルートログインを許可する

のいずれかの設定が必要となります。以下、ルートログインを許可する方法を説明します。/etc/ssh/sshd_configをエディタで開き、PermitRootLogin yesの部分のコメントアウトを外します。

sshdを再起動させて設定を反映されます。

仮想マシンのネットワーク設定 – ポートフォワード

ネットワークアダプタがデフォルトの「NAT」になっている場合は、ゲストOSにssh接続するためにはポートフォワードの設定が必要となります。個人的にはポートフォワード不要な「NATネットワーク」の方が扱いやすいと思いますが、まずは多数派であるNAT + ポートフォワードについて説明します。

仮想マシンの設定画面を開き、「ネットワーク」「高度」の順に押下します。

oracle_virtual_box_create_vm_013

「高度」を押下すると「ポートフォワード」のメニューが現れます。

oracle_virtual_box_create_vm_014

ポートフォワーディングとは、特定のポートに対する通信を別サーバへ転送する仕組みの事です。ホストOSへの接続をゲストOSへ転送する事によって、ゲストOSへのsshログインが可能となります。設定例は以下の通りです。

  • 名前 : 何か分かりやすい名前をつけてください。
  • ホストIP : ホストOS側のIPアドレスを指定します。ローカルホストを表す127.0.0.1とするのが無難でしょう。
  • ホストポート : 任意の数で差し支えございませんが、バッティングに注意して下さい。バッシングが不安ならば、10000以上の大きな数を設定しましょう。
  • ゲストIP : ゲストOSのIPアドレスを指定します。一番最初に作成した仮想マシンの場合は10.0.2.15になる事が多いですが、ちゃんとゲストOS側のIPを確認してから設定した方がトラブルが少ないでしょう。
  • ゲストポート : SSHを表す「22」を設定します。

oracle_virtual_box_create_vm_015

ポートフォワードの設定が完了しましたら、仮想マシンの起動させます。

お好みのターミナルソフトで接続可能な事を確認して下さい。

oracle_virtual_box_create_vm_016

仮想マシンのスナップショットとクローン

仮想マシンのスナップショット取得

Oracle VirtualBoxは他の無償仮想化製品と異なり、簡単にスナップショットを作成する事ができます。スナップショット取得速度は商用VMwareに比べれば劣るものの、非常に直感的なUIで難なく操作する事ができると思います。

スナップショットを取得するには、該当の仮想マシンを選択した状態で「スナップショット」を押下します。

oracle_virtual_box_snapshot_001

「カメラ」のボタンを押下します。

oracle_virtual_box_snapshot_002

後から振り返りやすいように、スナップショットに対して「名前」「説明」を記入し、「OK」を押下します。

oracle_virtual_box_snapshot_003

以上でスナップショットの取得が完了です。

仮想マシンのスナップショット戻し

スナップショットへの戻しを行なうには、該当のスナップショットを選んだ状態で、「戻る」アイコンのようなボタンを押下します。

oracle_virtual_box_snapshot_004

仮想マシンのクローン作成

仮想マシンのクローンを作成するには、右クリックメニューの「クローン」を押下します。

oracle_virtual_box_clone_001

仮想マシン名の入力画面です。この画面では必ず「すべてのネットワークカードのMACアドレスを再初期化」にチェックを入れて下さい。MACアドレスの再初期化を忘れると、

oracle_virtual_box_clone_002

「全てをクローン」を選択し「クローン」を押下します。

oracle_virtual_box_clone_003

クローンが完了するまで待ちます。

oracle_virtual_box_clone_004

仮想マシンのクローン MACアドレス変更対応

クローンされたマシンを起動すると、eth0の起動で以下のようなエラーメッセージが表示されます。これはOS設定上のMACアドレスとVirutalBoxが設定したMACアドレスが異なる事に起因します。

oracle_virtual_box_clone_005

MACアドレスの設定方法は、OSバージョンやディストリビューションによって異なります。また、運用現場のニーズによって、設定方法は大きく異なります。以下にCentOS 6.5 64bitの場合の設定例を示しますが、一例に過ぎない事はご理解のうえ、お読み下さい。

CentOS 6.X系の場合は、/etc/udev/rules.d/70-persistent-net.rulesにMACアドレスに関する情報が記録されています。この70-persistent-net.rulesを削除します。削除すれば、OS再起動時に新しいMACアドレスを元にして70-persistent-net.rulesが自動生成されます。

ifcfg-eth0にもMACアドレス, UUIDの情報が付与されていますので、/etc/sysconfig/network-scripts/ifcfg-eth0を以下のように編集します。

以上でMACアドレスに関する対応が完了です。OS再起動によって設定が反映されます。

ネットワークアダプタの種類

ネットワークアダプタの種類 – 概要

多くの個人用仮想化製品は仮想OSに対して3種類のネットワーク構成を選択する事ができます。VMware Player, Virutal PCの場合は、「NAT」アダプタを選択してDHCPによるアドレス取得を行なうのが最もトラブルの少ない構成です。しかし、Oracle VirutalBoxのNATは不安定な動作をするため、「NAT」が最もトラブルが少ないとは言い切れない事に注意下さい。

アダプタの種類概要
NATNATを介してインターネットへ接続する事ができるネットワークです。特別な要件がない場合は、「NAT」を選択して下さい。
ホストオンリー外部への接続が不要な場合に使用します。
ブリッジ外部ネットワークと直接つながる構成です。サーバとして接続したい場合に使用します。

原則としては上記の3種類のアダプタですが、使用可能アダプタやDHCPサーバの仕様は、仮想化製品によって微妙に異なります。いきなりVirtualBox固有の詳細な話をするのは混乱を招きますので、まずは一般論のお話をします。

ネットワークアダプタの種類 – NAT アダプタ

NATアダプタは、ホストOS内部にNATとDHCPを行う仮想ルータが存在する構成です。ゲストOSはNATルータを介して外部ネットワークに接続する事ができます。

oracle_virtualbox_adapter_nat_001

ネットワークアダプタの種類 – ホスト オンリー アダプタ

ホスト オンリー アダプタは、ホストOSとゲストOSのみを接続する構成です。基本的にゲストOSは外部ネットワークに接続する事ができません。

oracle_virtualbox_adapter_host_only_001

ネットワークアダプタの種類 – ブリッジ アダプタ

ブリッジアダプタは、ホストOSとゲストOSが同一のセグメントに存在するネットワーク構成です。外部ネットワークと直接接続されていますので、ゲストOSをサーバとして公開したい時に有効です。

しかし、外部ネットワークにつながっているという事は、ミスを犯した時の影響が実ネットワークにまで及んでしまいます。ですので、DHCPやOSPF等のネットワーク系の検証を行う際は、社内SE部門に迷惑がかからないように充分に配慮しましょう。

oracle_virtualbox_adapter_bridge_001

VirutalBox ネットワークアダプタの設定

VirutalBox – NATの設定

NATを使用するには、デフォルトの設定で差し支えございません。すなわち、仮想マシンの設定画面で、ネットワークの割り当てが「NAT」になっている状態ならば、NATになっています。

oracle_virtual_box_network_nat_001

NATを設定した状態でゲストOSを起動させると、ゲストOSにIPアドレスがDHCPによって付与されます。

インターネットへの疎通を確認します。

VirualBox – NATネットワークの設定

VirualBox – NATネットワークの設定 – 概要

「NATネットワーク」とは「NAT」に似ていますが、以下の図のような構成の違いがあります。

oracle_virtual_box_network_nat_network_001

「NAT」も「NATネットワーク」 も似ていますが、両者の違いはゲストOS同士が通信できるかどうかです。もし、複数のゲストOSを起動しゲストOS同士の通信が必要になるのならば、多少面倒でも「NATネットワーク」を構築した方が良いでしょう。以下「NATネットワーク」の設定方法を説明します。

VirualBox – NATネットワークの設定 – VirtualBox本体側の設定

「NATネットワーク」を使用するには、まず「NATネットワーク」を作成する必要があります。VirtualBoxを起動し、「ファイル」「環境設定」の順に押下します。

oracle_virtual_box_network_nat_network_002

「ネットワーク」のメニューお選び、「NATネットワーク」タブが選択された状態にします。この画面で「プラス」ボタンを押下すると、「NATネットワーク」が作成されます。

oracle_virtual_box_network_nat_network_003

「NatNetork」が選択された状態で「ドライバ」のアイコンを押下してみましょう。すると、NatNetworkの設定を確認する事ができます。

oracle_virtual_box_network_nat_network_004

この画面でNatNetworkに関する設定の確認ができます。もし、ホストOSからゲストOSへ接続する要件がある場合は、「ポートフォワーディング」ボタンを押下しポートフォワードの設定を行って下さい。

oracle_virtual_box_network_nat_network_005

以上で「NATネットワーク」の作成が完了しました。

VirualBox – NATネットワークの設定 – ゲストOS側の設定

ゲストOSの設定画面を開き、割り当てを「NATネットワーク」とします。

oracle_virtual_box_network_nat_network_006

NATネットワークに所属する仮想マシンを2つ起動し、pingによる疎通確認を行います。

oracle_virtual_box_network_nat_network_007

VirualBox – ホストオンリーアダプターの設定

VIrtualBoxのNAT + ポートフォワーディング設定は非常に不便です。DHCPサーバが想定外のアドレスを割り当てれば疎通不能になりますし、ポートフォワーディング設定で何番ポートを使ったのかをよく忘れます。

そこで提案するのが、NATとホストオンリーアダプタの併用です。ホストオンリーアダプターは、ホストOS/ゲストOS間の通信でインターネットーへの接続ができないものの、ポートフォワードなしにゲストOSに接続できるメリットがあります。以下のような構成を採用する事によって、ポートフォワードなしにインターネット接続可能な構成が実現できます。

oracle_virtual_box_network_host_only_001

NATとホストオンリーアダプタを併用する設定例を紹介します。まず仮想マシンの設定画面で、アダプター1を「NAT」に割り当てます。

oracle_virtual_box_network_host_only_002

アダプター2を「ホストオンリーアダプター」に割り当てます。この状態で、仮想マシンを起動して下さい。

oracle_virtual_box_network_host_only_003

「ホストオンリーアダプター」を選択すると、ホストOS「VirtualBox Host-Only Ethernet Adapter」とゲストOSが接続されます。

ホストOS側のVirtualBox Host-Only Ethernet Adapterに付与されたIPアドレスを調べます。調べ方はコントロールパネルからでも、”ipconfig”コマンドでも、どちらでも差し支えございません。

oracle_virtual_box_network_host_only_004

ゲストOSを起動します。起動しただけでは、ホストオンリーアダプター(eth1)に対する設定ファイルが存在しませんので、/etc/sysconfig/network-scripts/ifcfg-eth1を新規作成します。設定例は以下の通りですが、ホストOSの”VirtualBox Host-Only Ethernet Adapter”と同一のセグメントに所属するよう注意して下さい。恐らく、環境によって設定すべきIPアドレスは異なるはずです。

ネットワークを再起動し設定を反映させます。

お好みのターミナルソフトで、ホストオンリーアダプター側のIPアドレスを指定して接続可能である事を確認します。

oracle_virtual_box_network_host_only_005

VirtualBox – ブリッジ アダプターの設定

ブリッジ アダプターを使用するには、仮想マシンの設定画面で割り当てを「ブリッジアダプター」にして下さい。「名前」欄は環境に応じたアダプタを設定します。無線環境ならば無線用のアダプタを選択し、有線環境ならば有線用のアダプタを選択して下さい。

なお、BirtualBoxのブリッジ アダプターは非常に不安定です。説明が長くなるので理由は省略しますが、ドライバの相性やMACアドレスの書き換え処理などでトラブルが発生しえます。特に無線環境ではトラブルが頻発するので、1時間くらい頑張っても接続できないのならば諦めて別の方法を探す方が無難です。

さて、ブリッジアダプターの設定例は以下の通りです。以下のスクリーンショットでは、最も安定して動作するループバックアダプターの設定例になります。

oracle_virtual_box_network_bridge_001

DHCPサーバが存在するネットワークに接続されているならば、ゲストOS側のネットワーク設定は不要です。もしDHCPサーバが存在しないならば、ゲストOSに静的にIPアドレスを割り当ててください。

今回の設定例はDHCPサーバが存在しないループバックアダプターですので、ゲストOS側に静的にIPアドレスを割り当てます。/etc/sysconfig/network-scripts/ifcfg-eth0というファイルを編集しIPアドレスを定義して下さい。以下は、192.168.100.99/24を割り当てる設定例です。

ホストOS側のループバックアダプタに、ゲストOSと同一セグメントのIPアドレスを付与します。以下は192.168.100.100/24を設定するスクリーンショットです。

oracle_virtual_box_network_bridge_002

ホストOSとゲストOSが疎通可能である事を確認します。ホストOS(192.168.100.100/24)でコマンドプロンプトを開き、ゲストOS(192.168.100.99/24)へのpingが到達する事を確認します。

動作確認環境

  • 動作確認日 : 2014/11/02
  • Virtual Box version 4.3.18
  • ホストOS : Windows 7 64bit ( レッツノート CF-10 )
  • ゲストOS : Oracle Linux 6.6 64bit

シェアする

  • このエントリーをはてなブックマークに追加

フォローする