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での仮想マシンの移行は無事に完了です。