克隆虚拟机后重启无法启动网络
当克隆或者重装虚拟机后,再启动系统时会发现系统下不再有eth0,而变成了eth1,当使用/etc/init.d/network重启网络时,会提示找不到设备eth0及eth1的启动脚本。
解决方法有如下2中:
方法一:
做以下改动:
将/etc/sysconfig/network-scripts/ifcfg-eth0重命名为/etc/sysconfig/network-scripts/ifcfg-eth1,
修改/etc/sysconfig/network-scripts/ifcfg-eth0中的mac地址为原来eth0网卡的物理地址,而虚拟机为eth1分配新的物理地址,故启动脚本中的信息与实际信息时不匹配的,将MAC的地址信息从脚本中删除,再次重启网络,OK!
为什么原来的eth0会变成eth1?
很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。
如何把名字改回eth0?
在Fedora 11中,udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules
打开该文件,这时你会发现,里面有eth0,eth1两个网卡的信息,但实际上你ifconfig时只能发现eth1一个网卡的信息,这时因为eth0根本就不存在。
将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,再ifconfig你看到的网卡就是eth0了,或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。
方法二:
在CentOS下面,删除这个文件/etc/udev/rules.d/70-persistent-net.rules,编辑/etc/sysconfig/network-scripts/ifcfg-eth0,删除MAC地址,然后重启init 6或者reboot,此时就应该可以正常启动eth0了!
以上内容经过本人测试均成功,若有变化,随时更新!仅作参考……若有其他疑问可共同探讨!!!