A start job is running for sys-subsystem-net-devices

This can happen when you install a new network device in your machine, which may cause other network devices to change their names. In my case, for instance, my wired card's name changed from enp3s0 to enp4s0, which caused a start job for sys-subsystem-net-devices-enp3s0.device to delay the boot sequence.

As the OP suggests, go to /etc/systemd/system/multi-user.target.wants and look for the offending device name. It can be in the filename, or in a file's contents. Use

grep enp3s0 *

To search in every file's contents. Edit the file in question and correct the device's name. Reboot and enjoy.


In recent Ubuntu, it uses Netplan to configure network interface. You can see it in the netplan config file, such as /etc/netplan/50-cloud-init.yaml.

If one of the interfaces specified there has optional: false, then boot process will wait until that interface is available. And if the interface is no longer available, it will wait until it times out.

Specifically, this happened to me on a Raspberry PI where I disabled WiFi, but forgot to remove the config from netplan (it was set to optional: false), so the boot was waiting to time out.