文章出处:http://www.slyar.com/blog/vmware-ubuntu-70-persistent-net.html

    将建立好的虚拟机文件拷贝后重新打开,系统重启后,用ifconfig -a命令查看,原先配置好的两块网卡eth0、eth1不见了,变成了eth2、eth3,在网上找到该问题的解决方法如下:

    原因是Vmware保存的硬件配置文件*.vmx里记录了网卡的MAC地址,而Ubuntu也会记录MAC地址,这样在克隆虚拟机的时候,Vmware会为Ubuntu分配一个新的eth0网卡,但是由于被之前的eth0占用,所以它会变成eth1。再因为eth0是默认的网卡,显然这个网卡不存在,所以就提示"No such device eth0"..

    Ubuntu保存MAC地址的配置文件为"/etc/udev/rules.d/70-persistent-net.rules",我装的是9.10版本,8.04以后的版本应该都是这个解决方法:

方法1:直接删除配置文件

直接删除配置文件,重启之后Ubuntu就会找到新的网卡了。

sudo rm /etc/udev/rules.d/70-persistent-net.rules

方法2:修正配置文件

修改配置文件,将原本的eth0删除,然后修改eth1的NAME="erh1"为NAME="eth0",重启之后Ubuntu就会使用新的配置文件设置网卡了。

修改前的 /etc/udev/rules.d/70-persistent-net.rules 像这样:

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:50:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:85:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

将它修改为:

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:85:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

 

PS: 测试发现,虚拟机拷贝之后再启动,会弹出提示窗口,需选择"I copied it" or "I moved it",选择"I moved it"网卡就不会发生变化了。:)

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐