Failed to start Raise network interfaces after upgrading to 16.04

Reason

The problem was caused by Predictable-Network-Interface-Names from systemd/udev.

Possible solution

According to this source you can either:

  • You disable the assignment of fixed names, so that the unpredictable kernel names are used again. For this, simply mask udev's rule file for the default policy: ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
  • You create your own manual naming scheme, for example by naming your interfaces "internet0", "dmz0" or "lan0". For that create your own .link files in /etc/systemd/network/, that choose an explicit name or a better naming scheme for one, some, or all of your interfaces. See systemd.link(5) for more information.
  • You pass the net.ifnames=0 on the kernel command line

Applied solutions

I did create a new file 10-rename-network.rules in /etc/udev/rules.d/ and added the following content to it:

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

where

  • eth0 = desired network interface name, used in /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = hardware mac address of the network device

I'd recommend rebooting after completing this to make sure the change is sticky.


Solved by changing file /etc/network/interfaces.d/setup from:

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

to:

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