星期二, 11月 02, 2010

VirtualBox network interface not found

在使用 VBoxManage clonehd <source.vdi> <dest.vdi> 來佈署多台 VM 時,碰到網路卡消失方面的問題。

在第一台 VM 上設定了兩片網卡,Host-Only(僅限主機介面) 及 NAT。
Host-Only 是用來讓 guest 互通用的。NAT 是要讓 guest 可以連外用的。

vm1 裝好 Debian 後,只能看到 eth1 及 lo,此時還未查覺到問題,因為可以連外。

使用 VBoxManage clonehd 將 vm1 的虛擬硬碟複製一份為 vm2,如下:
VBoxManage clonehd vm1.vdi vm2.vdi

新增 vm2 ,其網路介面配置同 vm1,硬碟指定 vm2.vdi。
開機後,網路介面只能看到 lo。這時才看到有問題。

在 vm2 查看
ifconfig eth0
顯示
eth0: error fetching interface information: Device not found

查看 dmesg | grep eth0
顯示
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
udev[238]: renamed network interface eth0 to eth3

查看 ifconfig eth3
顯示
eth3 的網路介面資訊

查看 ifconfig -a
顯示
eth2, eth3, lo 的網路介面資訊

所以原來是被 udev 給改名了。
回到 vm1 查看 ifconfig -a
顯示
eth0, eth1, lo 的網路介面資訊

google 到下面這兩篇
http://www.virtualbox.org/ticket/841
http://www.ducea.com/2008/09/01/remove-debian-udev-persistent-net-rules/

第二篇提到 Debian 有修改過 udev 的 rule ,使得在硬體改變或重開機後網路介面的名稱可以保持一致的名稱。

結論就是將 /etc/udev/rules.d/70-persistent-net.rules 刪除即可。

沒有留言: