Linux系列:解决Ubuntu或Fedora虚拟机重启网络时出现的“No such device eth0”或“Job failed”错误
首先声明:下面是出现在Ubuntu和Fedora下面的问题,如果其它虚拟机也出现这样的问题,也可参看这些方法解决。
1. 错误症状
(1)Ubuntu下
用命令service
networking restart
重启网络或
ifconfig
eth0 up
重启网卡时出现下面错误:
eth0: ERROR while getting interface flags: No such device
(2)Fedora下
用命令systemctl
restart network.service
重启网络时出现下面错误:
Job failed. See system journal and ‘systemctl status‘ for details.
2. 探究原因
在本地为用VMware为Linux创建虚拟机后,可能有两个原因导致网卡启动无效,从而显示上面的错误:
(1)创建一个新的克隆镜像,将该虚拟机拷贝到别的机器上使用
(2)你本地机后来重装了主机系统(我是这种情形)
这是什么原因呢?
其实原因就在于:新克隆的或重装主机系统后的虚拟机镜像的网卡MAC地址已经变更。
打开虚拟机的.vmx文件,ethernet0.generatedAddress项记录了该虚拟机的mac地址。
(1)Ubuntu下
用ifconfig
-a
查看所有适配器信息,发现原来的eth0已经没了(有的),Ubuntu已经将新网卡重新命名为eth7(也可能命名为其它),怪不得出现“No such device eth0”错误了,eth0的确已经不在了。怎么解决?首先我们需要知道跟MAC地址相关的配置文件在哪?
a. Ubuntu保存网卡mac地址和设备名的配置文件在
/etc/udev/rules.d/70-persistent-net.rules
b. 网卡的网络配置文件大家都知道,在
/etc/network/interfaces
该配置文件中只有原来eth0的配置信息。
参考文献里给出了三种解决方案:
- 解决方案1 — 移动/删除rules文件
sudo mv /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.bak
重启后Ubuntu会创建新的rules文件,将新网卡辨认为eth0,沿用原eth0的网络配置。 如果网络配置是自动获取IP,则无需做其他修改。
- 解决方案2 — 修改rules文件
sudo vi /etc/udev/rules.d/70-persistent-net.rules
原内容如下:
# PCI device 0x1022:0x2000 (pcnet32)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:36:xx:xx", ATTR{type}=="1", NAME="eth7"
修改eth7的配置,将其改为eth0,如果原来已经有eth0,则删除eth7配置,用eth7的mac地址替代eth0的mac地址。
# PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:36:xx:xx", ATTR{type}=="1", NAME="eth0"重启后Ubuntu同样会将新网卡辨认为eth0,沿用原eth0的网络配置。 如果网络配置是自动获取IP,则无需做其他修改。
- 解决方案3 — 修改interfaces文件
sudo vi /etc/network/interfaces将所有的eth0替换为eth7。 如果是静态地址则同时修改相应设置。
(2)Fedora下
根据错误信息,我们可以看下具体的错误提示是什么?
cat /var/log/messages | grep network
从错误提示“Device eth0 has different MAC address than expected, ignoring”可以确定的确是MAC地址变更的原因。
进一步验证,发现ifconfig显示的MAC地址与ifcfg-eth0里显示的的确不一样(这次eth0没有被重命名),如下:
解决方案也很简单,就是将ifcfg-eth0里的HWADDR变量值改为ifconfig命令里显示的MAC地址即可,再重启网络就没有错误了。
参考文献:
VMWare克隆后Ubuntu的“No such device eth0”错误
Linux系列:解决Ubuntu或Fedora虚拟机重启网络时出现的“No such device eth0”或“Job failed”错误,古老的榕树,5-wow.com
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。