initrd: can't disable NICs during boot
If I have two NICs and I want one to come up and the other one to not attempt any network bringup in the past I specified something like:
rd.neednet=1
ip=192.168.122.111::192.168.122.1:255.255.255.0:initrdhost:ens2:none:192.168.122.1
ip=ens3:off
However this doesn't work as expected now. The system has to timeout the ens3
connection in the initramfs before it comes up.
[ 3.745612] systemd[1]: Finished OSTree Prepare OS/.
[ OK ] Finished OSTree Prepare OS/. [ 35.055649] NetworkManager[506]: <info> [1600806916.5903] device (ens3): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
[ 35.058245] NetworkManager[506]: <warn> [1600806916.5907] device (ens3): Activation: failed for connection 'ens3'
[ 35.060150] NetworkManager[506]: <info> [1600806916.5907] device (ens3): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed') [ 35.062328] NetworkManager[506]: <info> [1600806916.5932] policy: auto-activating connection 'ens3' (78d56e48-e9dd-4dba-9cf4-cf2c920171d6)
[ 35.063986] NetworkManager[506]: <info> [1600806916.5934] device (ens3): Activation: starting connection 'ens3' (78d56e48-e9dd-4dba-9cf4-cf2c920171d6)
[ 35.065408] NetworkManager[506]: <info> [1600806916.5934] device (ens3): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
[ 35.066822] NetworkManager[506]: <info> [1600806916.5934] device (ens3): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
[ 35.068163] NetworkManager[506]: <info> [1600806916.5938] device (ens3): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed') [ 67.057202] NetworkManager[506]: <info> [1600806948.5928] device (ens3): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
[ 67.060343] NetworkManager[506]: <warn> [1600806948.5932] device (ens3): Activation: failed for connection 'ens3'
[ 67.062429] NetworkManager[506]: <info> [1600806948.5933] device (ens3): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed') [ 67.063960] NetworkManager[506]: <info> [1600806948.5959] policy: auto-activating connection 'ens3' (78d56e48-e9dd-4dba-9cf4-cf2c920171d6)
[ 67.065272] NetworkManager[506]: <info> [1600806948.5963] device (ens3): Activation: starting connection 'ens3' (78d56e48-e9dd-4dba-9cf4-cf2c920171d6) [ 67.067812] NetworkManager[506]: <info> [1600806948.5963] device (ens3): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
[ 67.069165] NetworkManager[506]: <info> [1600806948.5964] device (ens3): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
[ 67.070557] NetworkManager[506]: <info> [1600806948.5973] device (ens3): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
[ 99.057895] NetworkManager[506]: <info> [1600806980.5934] device (ens3): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
[ 99.061082] NetworkManager[506]: <warn> [1600806980.5939] device (ens3): Activation: failed for connection 'ens3'
[ 99.062330] NetworkManager[506]: <info> [1600806980.5939] device (ens3): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
[ 99.063752] NetworkManager[506]: <info> [1600806980.5973] policy: auto-activating connection 'ens3' (78d56e48-e9dd-4dba-9cf4-cf2c920171d6)
[ 99.064920] NetworkManager[506]: <info> [1600806980.5974] device (ens3): Activation: starting connection 'ens3' (78d56e48-e9dd-4dba-9cf4-cf2c920171d6) [ 99.066160] NetworkManager[506]: <info> [1600806980.5974] device (ens3): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
[ 99.067918] NetworkManager[506]: <info> [1600806980.5975] device (ens3): state change: prepare -> config (reason 'none', sys-iface-state: 'managed') [ 99.069495] NetworkManager[506]: <info> [1600806980.5979] device (ens3): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
[ 131.057851] NetworkManager[506]: <info> [1600807012.5934] device (ens3): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
[ 131.061092] NetworkManager[506]: <warn> [1600807012.5938] device (ens3): Activation: failed for connection 'ens3' [ 131.062379] NetworkManager[506]: <info> [1600807012.5938] device (ens3): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
[ 131.063977] NetworkManager[506]: <info> [1600807012.5966] manager: startup complete
[ 131.064990] NetworkManager[506]: <info> [1600807012.5966] quitting now that startup is complete
[ 131.066145] NetworkManager[506]: <info> [1600807012.5968] manager: NetworkManager state is now CONNECTED_SITE [ 131.067417] NetworkManager[506]: <info> [1600807012.5969] exiting (success)
As you can see it takes up the time from 3 seconds to 131 seconds after boot. This may be due to some or all of 52af5e90 f114e16f 440a0b40.
Here is the difference in the generated connection from Fedora 32 (NetworkManager-1.22.16-1.fc32.x86_64) to Fedora 33 (NetworkManager-1.26.2-1.fc33.1.x86_64).
[dustymabe@media ~]$ diff -u /tmp/f32.txt /tmp/f33.txt
--- /tmp/f32.txt 2020-09-22 15:47:34.914571689 -0400
+++ /tmp/f33.txt 2020-09-22 15:47:35.742582763 -0400
@@ -4,11 +4,12 @@
[connection]
id=ens3
-uuid=5b7776b7-6dd1-4072-8c16-30eff06689f4
+uuid=c8f1ddd0-015f-40ed-9deb-64e8776b55c2
type=ethernet
interface-name=ens3
multi-connect=1
permissions=
+wait-device-timeout=60000
[ethernet]
mac-address-blacklist=
@@ -20,7 +21,7 @@
[ipv6]
addr-gen-mode=eui64
dns-search=
-method=disabled
+method=auto
[proxy]
@@ -28,11 +29,12 @@
[connection]
id=ens2
-uuid=8e754f6d-df3a-4abd-a1f0-8ab9b8a4e384
+uuid=02f923d0-0172-420e-89b6-a00ff7f14447
type=ethernet
interface-name=ens2
multi-connect=1
permissions=
+wait-device-timeout=60000
[ethernet]
mac-address-blacklist=
@@ -49,6 +51,8 @@
addr-gen-mode=eui64
dhcp-hostname=initrdhost
dns-search=
-method=disabled
+method=auto
[proxy]
+
+*** Hostname 'initrdhost' ***
The outputs were generated by running:
/usr/libexec/nm-initrd-generator -S -- rd.neednet=1 ip=ens3:off ip=192.168.122.111::192.168.122.1:255.255.255.0:initrdhost:ens2:none:192.168.122.1