]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
network-manager: set kernel hostname from the command line
authorBeniamino Galvani <bgalvani@redhat.com>
Thu, 7 May 2020 05:48:12 +0000 (07:48 +0200)
committerHarald Hoyer <harald@hoyer.xyz>
Fri, 29 May 2020 12:42:42 +0000 (14:42 +0200)
Since commit ff70adf873ef ("initrd: save hostname to a file in /run"),
the initrd generator of NetworkManager parses the hostname from 'ip='
options of the kernel command line and writes it to
/run/NetworkManager/initrd/hostname.

When that file exists, set the kernel hostname.

In presence of multiple hostnames in the command line, the last one
wins. Hostnames from command line always have precedence over ones
received through DHCP. This is a bit different from the legacy network
module that gives higher precedence to the hostname (from DHCP or
command line) of the last interface that is brought up, which depends
on the udev order.

modules.d/35network-manager/nm-run.sh

index fc5280a137904455ad89285d863444c2d6060923..61752384e77e57898791f6c95e268ac0777098b8 100755 (executable)
@@ -10,6 +10,10 @@ for i in /usr/lib/NetworkManager/system-connections/* \
   else
       /usr/sbin/NetworkManager --configure-and-quit=initrd --no-daemon
   fi
+
+  if [ -s /run/NetworkManager/initrd/hostname ]; then
+      cat /run/NetworkManager/initrd/hostname > /proc/sys/kernel/hostname
+  fi
   break
 done