Oracle VM VirtualBoxではまった

Oracle VM VirtualBoxを業務(旧システムのテスト環境用)で使用していて、CentOS 6を仮想マシンとして稼働させているのですが、別のPCに移す必要があり、移行作業を行っていました。

仮想マシンの移行作業

VMwareは環境の構築をやってますし、別のPCに用意したVMware環境へ、仮想マシンを移行させることも経験していますが、VirtualBoxでは初めてです。

いや、本当のことを言うと、以前、試してみて失敗(ディスクイメージが壊れてOSが起動しない)して、その調査の時間も取れずに、「無かった」ことになってます。

今回は、「仮想アプライアンスのエクスポート」→「インポート」でやってみます。

移行元での作業

移行元の仮想マシンを終了させた状態から「仮想アプライアンスのエクスポート」を実施。

手順としては、VirtualBoxマネージャーから、[ファイル]→[仮想アプライアンスのエクスポート]と選んで、エクスポートする仮想マシンの選択、フォーマット、ファイル名(ovaファイルの出力先)等々を設定します。

MACアドレスのポリシーは「NATネットワークアダプターのMACアドレスだけを含む」としました。

移行先での作業

移行元での操作はそれくらいです。生成されたovaファイルを、VirtualBoxマネージャーをインストールした移行先のPCに移します。

移行先のVirtualBoxマネージャーから[ファイル]→[仮想アプライアンスのインポート]と進んで、ovaファイルの選択。設定は特に触らずに「インポート」。

これだけです。

生成された仮想マシンを「起動」。OSの起動が完了しました。

前回はOSが正常に起動しなかったので、これで完了した気になってしまったんですが、ネットワーク系がボロボロでした。

# ifconfig

では、lo しか見えず(eth0 / eth1が見えない)、

# ip a

では、eth2 / eth3 なるものが存在しています(もちろん、eth0 / eth1 は無し)。

移行元とハードウェアも違うわけですし、全くのノータッチで瓜二つのものができるとは思いませんが、解決法に慣れていないので、悩んでしまいました。

いくつかのサイトを参考にさせて頂きながら、次に通りに実施し、解決に至りました。

ネットワークの設定変更

「仮想マシン」の「設定」から、「ネットワーク」を選択し、「アダプター1」と「アダプター2」のMACアドレスを控えます。

/etc/sysconfig/network-scriptis/ifcfg-eth0 と、同ディレクトリの ifcfg-eth1 のMACアドレスを、それぞれ先ほど控えた「アダプター1」と「アダプター2」に書かれていたMACアドレスに書き換えます。

次に、 /etc/udev/rules.d/70-persistent-net.rules を編集。

NAME="eth0″ NAME="eth1″ を含む行をバッサリと削除します。

それから、NAME="eth2″ NAME="eth3″ を、それぞれ NAME="eth0″ NAME="eth1″ に書き換えます。

で、仮想マシンを再起動。

OSが起動するのは前回通り。

ネットワークも元環境と同じように動作しているようです。

ネットワーク上の端末から仮想マシンにpingを打つと、応答がありました。

ifcfg-eth0 や ifcfg-eth1 のUUIDが元のままなので大丈夫なのかと思ったんですが、そこは問題ないんですね。

最後の砦

やった、完了。

と思えば、さにあらず。

この仮想マシンはWebサーバの機能があるんですが、閉じたネットワーク上のPCから、仮想マシンに設定したIPアドレスにアクセスしても「接続できない」、となりました。pingは通ってるんですけどね。

で、仮想マシンを動かしているWindowsPC上で、ブラウザを開いて仮想マシンのIPに接続したら表示されます。

ご察しの通り、ですね。

仮想マシンを動かしているWindowsPCに乗っているセキュリティソフトのファイアウォール機能が、ネットワーク経由のHTTP通信を拒否してたんですね。

というわけで、セキュリティソフトの対応をして、VirtualBoxでの仮想マシンの移行は無事に完了です。