升级到16.04后无法启动Raise网络接口


28

我刚刚将虚拟14.04服务器计算机升级到16.04。重新启动VM后,我看到以下错误:

[FAILED] Failed to start Raise network interfaces.
 See 'systemctl status networking.service' for details

登录后,我可以运行上述命令并获得以下输出(图像,因为我无法连接):

在此处输入图片说明

中的配置/etc/network/interfaces看起来不错-具有手动配置的eth0(此处不使用dhcp)

我不知道的是,ifconfig -a清单

  • ens160

我期望的地方

  • eth0

尝试通过以下方式启动eth0设备

sudo ifup -v eth0 

输出:

...
Cannot find device "eth0"
Failed to bring up eth0.

虚拟有线网络设备本身仍像以前一样在VM本身中配置。

ip link节目以及loens160-其中ens160具有在vmware配置用于所述单个配置虚拟网络设备的MAC地址。

更新

如果我将eth0的所有引用更改/etc/network/interfaces为ens160,则能够解决此问题。

但是 -我觉得这有误,原因如下:

  1. 我想了解这个问题
  2. 我想坚持eth0而不是ens160

因此,请有人可以解释一下此更改,同一服务器上的其他几台14.04计算机都没有发生此更改,我也将其升级到了16.04。



修复程序的类似描述在这里:askubuntu.com/a/830163/543586
theINtoy

Answers:


15

原因

该问题是由systemd / udev中的Predictable-Network-Interface-Names引起的。

可能的解决方案

根据此消息来源,您可以:

  • 您禁用固定名称的分配,以便再次使用不可预测的内核名称。为此,只需为默认策略屏蔽udev的规则文件:ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • 您可以创建自己的手动命名方案,例如,通过将接口命名为“ internet0”,“ dmz0”或“ lan0”。为此,在/ etc / systemd / network /中创建您自己的.link文件,这些文件为一个,某些或所有接口选择一个显式名称或更好的命名方案。有关更多信息,请参见systemd.link(5)。
  • 您在内核命令行上传递net.ifnames = 0

应用解决方案

我确实在其中创建了一个新文件10-rename-network.rules/etc/udev/rules.d/并向其中添加了以下内容:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

哪里

  • eth0 =所需的网络接口名称,用于 /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff =网络设备的硬件mac地址

我建议完成此操作后重新启动,以确保所做的更改具有粘性。


我发现我必须设法update-initramfs -u让我的更改生效
Aneel

在我的Debian系统上,文件为'/etc/udev/rules.d/70-persistent-net.rules'–
jeremiah

6

通过将文件/etc/network/interfaces.d/setup从以下位置更改来解决:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

至:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp

1

就我而言,这个问题与试图架起我的桥有关br0。我忘记这样做了:

sudo apt-get install bridge-utils

之前,所以我的适配器无法启动。


2
这不同于OP的问题。我不确定该答案是否属于这个问题!
Zanna

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.