nfs does not mount at boot with bridge

Bug #1876670 reported by Jonathan Van den Broeck
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
systemd (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

I am running a Ubuntu 20.04 server with lxd and kvm/qemu.
I try to connect a nfs share at boot. It is working while I do not configure any bridge with netplan. I am creating directly a systemd service for the NFS mount but I have the same problem if I edit the fstab file.

#/etc/systemd/system/mnt-nas.mount
[Unit]
Description=NAS devices
After=network.target

[Mount]
What=192.168.1.20:/volume2/media
Where=/mnt/nas
Type=nfs
Options=_netdev,auto

[Install]
WantedBy=multi-user.target

## TEST WITHOUT BRIDGE

#/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: yes

root@bowser:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether f8:75:a4:00:be:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eno1
       valid_lft 86244sec preferred_lft 86244sec
    inet6 fe80::fa75:a4ff:fe00:bead/64 scope link
       valid_lft forever preferred_lft forever
3: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 60:f2:62:38:d7:c2 brd ff:ff:ff:ff:ff:ff

root@bowser:~# journalctl -b
...
May 04 08:58:08 bowser systemd-networkd[535]: eno1: Gained carrier
May 04 08:58:08 bowser kernel: e1000e: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
May 04 08:58:08 bowser kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
May 04 08:58:08 bowser systemd[1]: systemd-rfkill.service: Succeeded.
May 04 08:58:08 bowser set-cpufreq[795]: Setting powersave scheduler for all CPUs
May 04 08:58:08 bowser systemd[1]: ondemand.service: Succeeded.
May 04 08:58:08 bowser systemd[1]: dmesg.service: Succeeded.
May 04 08:58:09 bowser systemd-networkd[535]: eno1: Gained IPv6LL
May 04 08:58:09 bowser systemd-timesyncd[757]: Network configuration changed, trying to establish connection.
May 04 08:58:10 bowser systemd-networkd[535]: eno1: DHCPv4 address 192.168.1.100/24 via 192.168.1.1
May 04 08:58:10 bowser systemd-timesyncd[757]: Network configuration changed, trying to establish connection.
May 04 08:58:10 bowser systemd-timesyncd[757]: Network configuration changed, trying to establish connection.
May 04 08:58:10 bowser systemd-timesyncd[757]: Network configuration changed, trying to establish connection.
May 04 08:58:10 bowser systemd-networkd-wait-online[611]: managing: eno1
May 04 08:58:10 bowser systemd[1]: Finished Wait for Network to be Configured.
May 04 08:58:10 bowser systemd[1]: Reached target Network is Online.
May 04 08:58:10 bowser systemd[1]: Condition check resulted in Login to default iSCSI targets being skipped.
May 04 08:58:10 bowser systemd[1]: Reached target Remote File Systems (Pre).
May 04 08:58:10 bowser systemd[1]: Mounting NAS devices...
May 04 08:58:10 bowser systemd[1]: Starting Availability of block devices...
May 04 08:58:10 bowser systemd[1]: Condition check resulted in Pollinate to seed the pseudo random number generator being skipped.
May 04 08:58:10 bowser systemd[1]: Starting OpenBSD Secure Shell server...
May 04 08:58:10 bowser systemd[1]: Finished Availability of block devices.
May 04 08:58:10 bowser kernel: FS-Cache: Loaded
May 04 08:58:10 bowser sshd[952]: Server listening on 0.0.0.0 port 22.
May 04 08:58:10 bowser sshd[952]: Server listening on :: port 22.
May 04 08:58:10 bowser systemd[1]: Started OpenBSD Secure Shell server.
May 04 08:58:10 bowser kernel: FS-Cache: Netfs 'nfs' registered for caching
May 04 08:58:10 bowser kernel: NFS: Registering the id_resolver key type
May 04 08:58:10 bowser kernel: Key type id_resolver registered
May 04 08:58:10 bowser kernel: Key type id_legacy registered
May 04 08:58:10 bowser systemd[1]: /lib/systemd/system/rpc-statd.service:16: PIDFile= references a path below legacy directory /var/run/, updating /var/run/rpc.statd.pid → /run/rpc.statd.pid; please update the unit file accordingly.
May 04 08:58:10 bowser systemd[1]: Starting Preprocess NFS configuration...
May 04 08:58:10 bowser systemd[1]: nfs-config.service: Succeeded.
May 04 08:58:10 bowser systemd[1]: Finished Preprocess NFS configuration.
May 04 08:58:10 bowser systemd[1]: Starting Notify NFS peers of a restart...
May 04 08:58:10 bowser systemd[1]: Starting NFS status monitor for NFSv2/3 locking....
May 04 08:58:10 bowser sm-notify[962]: Version 1.3.3 starting
May 04 08:58:10 bowser systemd[1]: rpc-statd-notify.service: Succeeded.
May 04 08:58:10 bowser systemd[1]: Started Notify NFS peers of a restart.
May 04 08:58:10 bowser rpc.statd[964]: Version 1.3.3 starting
May 04 08:58:10 bowser rpc.statd[964]: Flags: TI-RPC
May 04 08:58:10 bowser systemd[1]: Started NFS status monitor for NFSv2/3 locking..
May 04 08:58:10 bowser systemd[1]: Mounted NAS devices.
...

## TEST WITH BRIDGE

#/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
  bridges:
    br0:
      macaddress: f8:75:a4:00:be:ad
      dhcp4: yes
      interfaces: [eno1]

root@bowser:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether f8:75:a4:00:be:ad brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f8:75:a4:00:be:ad brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic br0
       valid_lft 85658sec preferred_lft 85658sec
    inet6 fe80::fa75:a4ff:fe00:bead/64 scope link
       valid_lft forever preferred_lft forever
4: wlp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 60:f2:62:38:d7:c2 brd ff:ff:ff:ff:ff:ff

root@bowser:~# journalctl -b
...
May 04 07:40:14 bowser systemd-networkd[538]: eno1: Gained carrier
May 04 07:40:14 bowser systemd-networkd[538]: br0: Gained carrier
May 04 07:40:14 bowser kernel: e1000e: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
May 04 07:40:14 bowser kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
May 04 07:40:14 bowser kernel: br0: port 1(eno1) entered blocking state
May 04 07:40:14 bowser kernel: br0: port 1(eno1) entered forwarding state
May 04 07:40:14 bowser kernel: IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
May 04 07:40:14 bowser systemd-networkd-wait-online[609]: managing: eno1
May 04 07:40:14 bowser systemd-networkd-wait-online[609]: managing: br0
May 04 07:40:14 bowser systemd[1]: Finished Wait for Network to be Configured.
May 04 07:40:14 bowser systemd[1]: Reached target Network is Online.
May 04 07:40:14 bowser systemd[1]: Condition check resulted in Login to default iSCSI targets being skipped.
May 04 07:40:14 bowser systemd[1]: Reached target Remote File Systems (Pre).
May 04 07:40:14 bowser systemd[1]: Mounting NAS devices...
May 04 07:40:14 bowser systemd[1]: Starting Availability of block devices...
May 04 07:40:14 bowser systemd[1]: Condition check resulted in Pollinate to seed the pseudo random number generator being skipped.
May 04 07:40:14 bowser systemd[1]: Starting OpenBSD Secure Shell server...
May 04 07:40:14 bowser systemd[1]: Finished Availability of block devices.
May 04 07:40:14 bowser kernel: FS-Cache: Loaded
May 04 07:40:14 bowser sshd[934]: Server listening on 0.0.0.0 port 22.
May 04 07:40:14 bowser sshd[934]: Server listening on :: port 22.
May 04 07:40:14 bowser systemd[1]: Started OpenBSD Secure Shell server.
May 04 07:40:14 bowser kernel: FS-Cache: Netfs 'nfs' registered for caching
May 04 07:40:14 bowser kernel: NFS: Registering the id_resolver key type
May 04 07:40:14 bowser kernel: Key type id_resolver registered
May 04 07:40:14 bowser kernel: Key type id_legacy registered
May 04 07:40:14 bowser mount[930]: mount.nfs: Network is unreachable
May 04 07:40:14 bowser systemd[1]: mnt-nas.mount: Mount process exited, code=exited, status=32/n/a
May 04 07:40:14 bowser systemd[1]: mnt-nas.mount: Failed with result 'exit-code'.
May 04 07:40:14 bowser systemd[1]: Failed to mount NAS devices.
May 04 07:40:14 bowser systemd[1]: Reached target Remote File Systems.
...

Revision history for this message
Dan Streetman (ddstreet) wrote :

> After=network.target

You want network-online.target, not network.target.

Changed in systemd (Ubuntu):
status: New → Incomplete
Revision history for this message
Jonathan Van den Broeck (filovitch) wrote :

Same probleme with the modification you suggest.

root@bowser:~# cat /etc/systemd/system/mnt-nas.mount
[Unit]
Description=NAS devices
After=network-online.target

[Mount]
What=192.168.1.20:/volume2/media
Where=/mnt/nas
Type=nfs
Options=_netdev,auto

[Install]
WantedBy=multi-user.target
root@bowser:~# systemctl status mnt-nas.mount

● mnt-nas.mount - NAS devices
     Loaded: loaded (/etc/systemd/system/mnt-nas.mount; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2020-05-06 17:35:46 CEST; 4min 59s ago
      Where: /mnt/nas
       What: 192.168.1.20:/volume2/media

May 06 17:35:45 bowser systemd[1]: Mounting NAS devices...
May 06 17:35:46 bowser mount[751]: mount.nfs: Network is unreachable
May 06 17:35:46 bowser systemd[1]: mnt-nas.mount: Mount process exited, code=exited, status=32/n/a
May 06 17:35:46 bowser systemd[1]: mnt-nas.mount: Failed with result 'exit-code'.
May 06 17:35:46 bowser systemd[1]: Failed to mount NAS devices.

I also have done some more test. I only have this problem on a bare metal installation (Lenovo M720q). If I do the same configuration on a virtual machine, I do not have the problem. I do not have the problem with a fedora server installation on bare metal.

I do not have enough knowledge to troubleshoot this problem but I am fully available if you have some commands you want me to try.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for systemd (Ubuntu) because there has been no activity for 60 days.]

Changed in systemd (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Dan Streetman (ddstreet) wrote :

> May 06 17:35:45 bowser systemd[1]: Mounting NAS devices...
> May 06 17:35:46 bowser mount[751]: mount.nfs: Network is unreachable

it looks like your network isn't actually configured when your mount tries to run. check your journalctl output to see what's going on. If you can't figure it out maybe you should just add the mount to /etc/fstab instead of crafting your own mount unit.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.