VirtualBox にて CentOS6.4 の vdi ファイルをつかって、仮想マシンを立ち上げ(複製)ました。
とりあえず、ifconfig してみても、ちゃんとIPがふられず、当然 ping をwww.google.comとか外に打っても、通らないという状況になりました。
VirtualBoxのネットワーク設定をいじっても状況は変わりませんでした。
対応
eth0 の存在確認
$ /sbin/ifconfig -a
これを打って、eth0 に関する表示が出てくるか確認。
=> 出てこないと思います。つまり eth0 が存在していないということ。
複製元の旧設定を変更
MACアドレスの確認
VirtualBoxマネージャー > ネットワーク > アダプター1 > 高度 > MACアドレス
ここに表示されている文字列をメモ。
これが新たに複製する仮想マシンのMACアドレスになります。
MACアドレスの修正
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR欄の文字列が先ほどメモしたものと違うものになっているかと思います。
複製元のMACアドレスなので、先ほどメモしたものに書き換えます。
再起動
$ service network restart
おそらくエラーが発生するはずです。
device eth0 does not seem to be present, delaying initialization
要するに eth0 なんてないですよーって言ってるわけです。
なので、その辺を修正します。
ネットワークデバイス名などの設定変更
$ vim /etc/udev/rules.d/70-persistent-net.rules
----
# PCI device 0x8086:0x100e (e1000) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="zz:zz:zz:zz:zz:zz", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
----
同じ PIC device 0x8086:0x100e (e100) が2つ存在しているかと思います。
ATTR{address}の値を見ると、上のほうが複製元の古いMACアドレスになっていて、下のほうが複製後の新しいMACアドレスになっているかと思います。
なので、 上の行を削除します。
次に、 下の行のNAME="eth1"をNAME="eth0"に変更します。
また、もしMACアドレスが現在のものと違っていたら、 ATTR{address}=の値を現在のMACアドレスに書き換えます。
そして、 再起動します。
$ reboot
すると、ifconfig でちゃんとアドレスが割り当てられている表示がされ、pingも疎通するようになります。
参考
http://edo.blog.jp/archives/1534719.html
http://qiita.com/circled9/items/5d9ba21e21e4ddd33bac
http://www.linuxmaster.jp/linux_blog/2011/09/vmwaredevice-eth0-does-not-seem-to-be-present-delaying-initialization.html