モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

VirtualBoxでWindowsのゲストOSとしてCentOSを動作させる

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2014/08/30
最終更新最終更新
2020/11/18
記事区分記事区分
一般公開

仮想マシンを動作させるソフトウェアには「仮想マシンを複数のPCからアクセスするサーバとして扱う」用途のものと「仮想マシンをデスクトップアプリケーションの一つとして扱う」用途のものがあります。

仮想マシンを複数のPCからアクセスするサーバとして扱う

「ホストするOSの上にサーバ用途の仮想マシンが存在するタイプ」と「サーバ用途の仮想マシンが直接ハードウェア上に存在できホストOSは不要なタイプ」があります。前者の例としてはLinuxやWindowsをホストOSとして必要とする無償の "VMware Server" があります。後者の例としては有償の "VMwarevShere(ESXi)" があります。

仮想マシンをデスクトップアプリケーションの一つとして扱う

デスクトップアプリケーションとして仮想マシンを起動させるホストOSによって、使用できる仮想化ソフトウェアが異なります。

  • VMware Player(無償): Windows, Linux
  • VMware Workstation(有償): Windows, Linux
  • VMware Fusion(有償): Mac OS X
  • VirtualBox(無償): Windows, Linux, Mac OS X

ここでは、ホストOS WindowsのデスクトップアプリケーションとしてゲストOS CentOSを扱うためのVirtualBox使用方法を記載します。

VirtualBoxの設定

インストール

ダウンロードページにアクセスします。ホストOSはWindowsですので "for Windows hosts" のものをダウンロードしてインストールします。

初期設定

「ファイル」→「環境設定」をクリックします。

一般

仮想マシンの動作に必要なファイルの保存場所を変更したい場合は変更します。

入力

マウスポインタが仮想マシンに対してアクティブになっている状態から、ホストOSに対してアクティブな状態に戻すためにはホストキーとして割り当てられたキーを押す必要があります。自分が押しやすいホストキーに変更しておくことをお勧めします。

プロキシ

プロキシサーバが必要な環境であれば設定しておきます。VirtualBoxのアップデート情報をダウンロードする際に使用される設定情報であり、ゲストOSの使用するネットワーク設定とは全く関係がないことに注意してください。

仮想マシンのためのハードウェア設定

「新規」をクリックします。CentOSはRedHatディストリビューションと完全互換を目指しているLinuxのディストリビューションの一つであるため、「名前:CentOS」「タイプ:Linux」「バージョン:RedHat」と設定します。

残りの設定は以下のようにしておきます。

  • メモリ: 512MB
  • ハードドライブ: 仮想ハードドライブを作成する
  • ハードドライブのファイルタイプ: VDI(VirtualBox Disk Image)
  • 物理ハードドライブにあるストレージ: 可変サイズ
  • ファイルの場所とサイズ: 32GB

以上で、ゲストOSをインストールする仮想的なハードウェアの準備が整いました。

ゲストOS CentOS のインストール

ISOイメージのダウンロード

こちらのページからダウンロードできます。先程の仮想ハードウェア設定でRedHat(32bit)としたので32bitのものをダウンロードする必要があります。ここではCentOS-6のi386 (32bit) を採用しました。世界中のダウンロード用のサーバリストが表示されますが、地理的に近いものを選択します。イメージタイプのうち

  • CentOS-6.5-i386-bin-DVD1.iso

をダウンロードしてください。README.txt に記載のあるように「CentOS-6.5-i386-bin-DVD2.iso」は不要です。

ISOイメージのインストール

「起動」をクリックします。

初回起動時にはディスク選択を求められます。ドライブではなく先程ダウンロードしたISOイメージを選択してください。何かしらの操作ミスで選択し損ねた場合、右下のディスクアイコンを右クリックして選択してください。

初回起動時にはVirtualBoxの基本的な使用方法に関する注意書きが表示されますので、読んでおくようにしましょう。

「Install or upgrade an existing system」を選択

「OK」を選択

「Test」を選択

「OK」を選択

「OK」を選択

「Continue」を選択

Ejectされてしまったので、エラーが出てしまいます。右下のディスクアイコンを右クリックしてISOイメージを選択して「OK」を押してください。

「OK」を選択

キー配列について質問されます。ここでは "us" を選択しました。キー配列ナニソレ、という方は既定で選択されている "ja" を選択しておくのがよいです。

ハードディスクが壊れていると表示されますので、「Re-initialize all」を選択します。ゲストOS向けに割り当てられた仮想ハードウェアの範囲で初期化されるだけです。

タイムゾーンを選択します。

管理用rootユーザのパスワードを設定します。

初期設定のままでよいです。「OK」を選択

「Write changes to disk」を選択

「Reboot」を選択

再起動後、rootユーザについて、先程のパスワードでログインできます。

外部インターネットへの接続設定

CentOSのネットワーク設定ファイルを開きます。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

設定について、

ONBOOT=no

となっていますので

ONBOOT=yes

に変更します。

保存してから

# service network restart

を実行してください。ネットワーク設定が有効になりますので、例えば

# curl http://www.yahoo.co.jp/

が通るようになります。プロキシ設定が必要な環境においては、「.bashrc」にプロキシ設定を記載して

# source ~/.bashrc

を実行しておく必要があります。外部インターネットに接続ができることが確認できたら、初回ですので

# yum update

を実行してパッケージを最新の状態にしておきましょう。

ホストOSからCentOSへのネットワーク接続設定

NATでの外部回線へのアクセスについて

VirtualBoxマネージャの「設定」をクリック

ネットワークのアダプター1にNATが割り当てられていることが確認できます。先程curlコマンドで外部接続する際にはこのアダプタを経由していたのです。

  • 割り当て: NAT
  • MACアドレス: 0800271AEBD9

というのがポイントです。割り当てNATにしておくと、VirtualBoxマネージャによって仮想的なルータがホストPCが所属するネットワーク内に仮想的に作成され、その仮想ルータ配下に作成されたサブネットワーク内にCentOSが存在する状態となります。

において

HWADDR=08:00:27:1A:EB:D9

となっていることからも分かるように、eth0というネットワークインターフェースはこのアダプタ1で作成された仮想ルータを経由して、ホストPCが所属するネットワークにNAT (Network Address Translation; ネットワークアドレス変換) して入り、更にホストPCが所属するネットワークのゲートウェイを経由して外部のインターネットにアクセスします。

ホストオンリーアダプタの追加

上述のNATアダプタによって作成されている仮想サブネットワーク内のゲストOSにアクセスするため、仮想ルータに対してポートフォワーディング設定を行うことも可能です。つまり、ホストPCから仮想ルータに対してTCPアクセスがなされた際にゲストOSにアクセスが転送されるように設定することによって、ホストPCからゲストOSへのアクセスができる状況が実現できます。しかしながら、設定がやや煩雑であるため、もっとシンプルな解決策として、ホストオンリーアダプタの追加というものをここでは採用します。

NATアダプタの設定は、ゲストOS毎にありました。しかしながら、実は、VirtualBoxをインストールした時点でゲストOSによらない「VirtualBox Host-Only Network」というものが一つ作成されており、VirtualBoxマネージャの環境設定におけるネットワークで確認できます。

Windows側でipconfigによっても確認できます。

$ ipconfig

...(略

イーサネット アダプター VirtualBox Host-Only Network:

   接続固有の DNS サフィックス . . . : 
   リンクローカル IPv6 アドレス. . . . : fe80::edf9:ce64:4d4b:7049%34
   IPv4 アドレス . . . . . . . . . . : 192.168.56.1
   サブネット マスク . . . . . . . . : 255.255.255.0
   デフォルト ゲートウェイ . . . . . : 

この仮想的なネットワーク内にはNATの場合と異なり仮想ルータが存在しません。ホストOSのみが所属しており、外部回線へのアクセスは不可能なネットワークです。ここにゲストOSを所属させるとホストPCと直接で有線接続された状況が実現でき、ゲストOSのネットワークインターフェース設定 eth1 を追加することで、ホストPCからゲストOSへのアクセスが可能になります。

まず、ゲストOSをシャットダウン (halt) し、「CentOS設定 → ネットワーク → アダプター2 → ネットワークを有効化 → 割り当て:ホストオンリーアダプタ」とすることで、ホストPCが所属する「VirtualBox Host-Only Network」仮想ネットワークに物理的にゲストOSを接続します。eth1の設定で必要になりますので、「高度」をクリックしてMACアドレスをメモしておきます。

次に、ゲストOSを起動し、「/etc/sysconfig/network-scripts/ifcfg-eth1」というファイルを新規作成し

DEVICE=eth1
HWADDR=xx:xx:xx:xx:xx:xx ←先程確認したアダプタ2のMACアドレス)
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=192.168.56.10 ←「VirtualBox Host-Only Network」で有効な範囲の固定したいIPアドレス
NETMASK=255.255.255.0 ←「VirtualBox Host-Only Network」のネットワーク設定を参照
NETWORK=192.168.56.0 ←「VirtualBox Host-Only Network」のネットワーク設定を参照

という内容で保存します。

# ifup eth1

を実行すると、先程物理的に接続したネットワークがゲストOSにとって有効なネットワークeth1として認識され、ifconfigコマンドを実行するとIPアドレスがeth1について固定で設定されていることが確認できます。この状態で、ホストPCで

$ ping 192.168.56.10

192.168.56.10 に ping を送信しています 32 バイトのデータ:
192.168.56.10 からの応答: バイト数 =32 時間 =11ms TTL=64
...

となり、アクセスできるようになっていることが確認されます。

参考情報

192.168.56.10が「VirtualBox Host-Only Network」にルーティングされることは

$ netstat -rn ← 「-r ルーティング テーブルを表示します」「-n アドレスとポート番号を数値形式で表示します」
....
          0.0.0.0  0.0.0.0  192.168.100.254  192.168.100.100  25 ← デフォルトゲートウェイ
....
     192.168.56.0   255.255.255.0  リンク上  192.168.56.1    276 ← VirtualBox Host-Only Networkのルーティング設定
....

というルーティングテーブルによっても確認できます。実際

$ traceroute 192.168.56.10

$ traceroute 192.168.0.10

ではルーティングが異なることが確認できます。Unixコマンドが実行できないWindowsであれば "tracert 192.168.56.10" を実行してください。

参考情報 (その2)

再起動を繰り返していると、ある時「VirtualBox Host-Only Network」のIP設定が「192.168.56.1」ではなく「169.254.112.73」等になり、ホストPCからゲストOSへアクセスできなくなってしまうことがあります。そのような場合は「環境設定」→「ネットワーク」→「ホストオンリーネットワーク」から新規ネットワークを追加

新規作成されたネットワークの編集をクリック

ネットワーク設定を「192.168.56.1」「255.255.255.0」に設定

ipconfigで、新規ネットワークがWindowsPC側で認識されていることが確認されます。

CentOS側の「設定」→「ネットワーク」→「アダプタ2」→「名前」を先程作成したネットワークに変更してください。MACアドレス等は変更されないためeth1の設定変更は不要です。

Debian9 の場合 (参考情報)

VirtualBox で Debian9 を動作させる場合も、同様に NAT と HostOnlyAdapter を併用すると便利です。CentOS と同じアダプタを使い回して以下のように設定できます。CentOS に割り当てた固定 IP が 192.168.56.10 であったため Debian には 192.168.56.11 を割り当てています。

sudo vi /etc/network/interfaces

# NAT

allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet dhcp

# HOST ONLY

allow-hotplug enp0s8
auto enp0s8
iface enp0s8 inet static
address 192.168.56.11
network 192.168.56.0
netmask 255.255.255.0
broadcast 192.168.56.255

sudo systemctl restart networking.service
Likeボタン(off)0
詳細設定を開く/閉じる
アカウント プロフィール画像

機械系ですがコードも書きます

記事の執筆者にステッカーを贈る

有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

>>さらに詳しくステッカーを贈る
ステッカーを贈る コンセプト画像

Feedbacks

Feedbacks コンセプト画像

    ログインするとコメントを投稿できます。

    ログインする

    関連記事