root@colibri-t30:~# systemctl status connman
● connman.service - Connection service
Loaded: loaded (/lib/systemd/system/connman.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Condition: start condition failed at Mon 2017-08-14 16:15:43 UTC; 36s ago
ConditionKernelCommandLine=!root=/dev/nfs was not met
I have a custom kernel, but I think this not the issue here.
This is done on purpose, have a look here. With connman enabled the interface over which you serve the rootfs is disconnected and then reconnected when connman starts. The boot process does not survive this.
If you really need connman for other interfaces than the one serving the rootfs you can blacklist the one interface which connman is not to touch and remove the conditional start in the systemd service file.
Well, if you boot from NFS then the Linux kernel already took care of the IP configuration and any attempt to interfere with that from user space (e.g. doing DHCP) will potentially disrupt the NFS connection to the root file system therefore leading to what you are seeing.
Normally connman takes care of resolv.conf, but since we have to disable connman that does not really work.
I guess connman (or an alternative user space DHCP client) would have to have a special NFS mode in which it does not reconfigure the interface but only takes care of DNS. At least for connman I am not aware of such a mode.
However, the kernels built-in DHCP server seems to also get the DNS server and export it via /proc/net/pnp. You can symlink /etc/resolv.conf
However, on reboot systemd-tmpfiles links the file back to the connman resolv.conf file, you have to remove/disable the entry in /etc/tmpfiles.d/connman_resolvconf.conf.