Vmware中Clone虚拟机后提示”No such device eth0”解决
说明:Linux kernel series 2.6.xx以后很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。
Linux下的配置文件为
由/etc/udev/rules.d/75-persistent-net-generator-rules
自动生成/etc/udev/rules.d/70-persistent-net.rules
如果你克隆虚拟机,系统中已经有eth0的信息,对于VMware分配的这个新的网卡,udev会自动将其命名为eth1,已经有eth0/1/2,一直累加上去,所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。而没看到eth0,但是你的配置文件只有/etc/sysconfig/networking-scripts/ifcfg-eth0
方法1:直接删除配置文件70-persistent-net.rules
因为这个是自动生成的,所以直接删除没关系,直接删除配置文件,重启之后Linux就会找到新的网卡了。
rm -rf /etc/udev/rules.d/70-persistent-net.rules
重启后如果网卡起不来,不要慌,删除/etc/sysconfig/networking-scripts/ifcfg-eth0的如下行,或者修改为vmware分配的新MAC地址:(记住,是删除,或者修改成现有的mac地址)
HWADDR=70:E2:84:12:FC:EA
重启网卡 service network restart
方法2:修正配置文件
修改配置文件,将原本的eth0删除,然后修改eth1的NAME="eth1"
为NAME="eth0"
,重启之后Linux就会使用新的配置文件设置网卡了。也就是说,你在ifconfig下看到的eth1还是eth2,你都可以直接修改ifcfg-eth0,改成你现有的网卡名,明白么!
修改前的/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"
删除掉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="eth0"
那么我们来回顾一下如何操作最简单(三步奏):
- 删除/etc/sysconfig/network-scripts/ifcfg-eth0里面的如下几行:
DEVICE=eth0
HWADDR=52:54:00:4F:C7:FE
TYPE=Ethernet
UUID=d50b22d0-5b4d-4d2a-91ba-e6568befef04
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=DHCP - 清空70-persistent-net.rule,让他自动生成
> /etc/udev/rules.d/70-persistent-net.rules
- 重启服务器,重新获取网卡信息
活到老,学到老,认真拜读咯!
潜心学习,认真拜读!
丁酉年(鸡)九月初十 2017-10-29到此一游!