关闭

嵌入式 Vmware中安装Linux虚拟机出现没有eth0的解决方案No-such-device-eth0

786人阅读 评论(0) 收藏 举报
分类:
Vmware中Clone虚拟机后提示"No such device eth0"解决
 
Linux kernelseries 2.6.xx以后很多Linuxdistribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。 www.2cto.com  
 
而对于新的虚拟机,VMware会自动为虚拟机的网卡生成新的MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。
 
如果做了多网卡,那么网卡名会依次累加,比如eth0-->eth1,eth1-->eth2....
 
Linux下的配置文件为"/etc/udev/rules.d/70-persistent-net.rules",是根据/etc/udev/rules.d/75-persistent-net-generator-rules自动生成的。
 
方法1:直接删除配置文件    www.2cto.com 
 
直接删除配置文件,重启之后Linux就会找到新的网卡了。
 
sudo rm /etc/udev/rules.d/70-persistent-net.rules
 
重启后如果网卡起不来,删除/etc/sysconfig/networking-scripts/ifcfg-eth0的如下行,或者修改为vmware分配的新MAC地址:
HWADDR="XX:XX:XX:XX:XX:XX"
 
重启网卡 service network restart
 
方法2:修正配置文件
 
修改配置文件,将原本的eth0删除,然后修改eth1的NAME="eth1"为NAME="eth0",重启之后Linux就会使用新的配置文件设置网卡了。
 
修改前的 /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"
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:982359次
    • 积分:17661
    • 等级:
    • 排名:第540名
    • 原创:741篇
    • 转载:522篇
    • 译文:0篇
    • 评论:105条
    最新评论