NM-INITRD-GENERATOR(8)
πΈ NM-INITRD-GENERATOR(8) πΈ
okay so bestie, listen β nm-initrd-generator is the section 8 manual page you're looking at, and honestly she's kind of the main character of early boot. let me put you on π
β¨ SYNOPSIS β¨
nm-initrd-generator [OPTIONS...] -- [CMDLINE...]
π¦ DESCRIPTION π¦
so basically nm-initrd-generator goes through the command line, hunts down all the options that are actually about network config, and then writes out configuration files for an early instance of NetworkManager β like, the one that runs from the initial ramdisk during early boot. she's the backstage crew of your boot process, no cap π
π OPTIONS π
-c,--connections-dirpath β this is where the output connection directory lives. that's the vibe.-p,--persistent-connections-dirpath β the persistent connection directory. heads up: if this path exists,rd.neednetwill not make a default connection get generated when there are no other options hanging around. lowkey important π-i,--initrd-data-dirpath β output directory for initrd data (think stuff like hostname). cute little home for the extra bits π-d,--sysfs-dirpath β this is the sysfs mount point, mwah.-r,--run-config-dirpath β output directory for config files. yes bestie, another directory, they're all iconic in their own way β¨-s,--stdoutβ dumps the connections straight to standard output. genuinely so useful for debugging, 10/10 recommend when things are being weird π₯
π CMDLINE π
these are the options that show up on the kernel command line, and these are the ones she recognizes:
ip
rd.route
bridge
bond
team
vlan
ib.pkey
bootdev
nameserver
net.ifnames
rd.peerdns
rd.iscsi.ibft
rd.nvmf.nonbft
rd.bootif
rd.neednet
rd.ethtool
rd.net.dns
rd.net.dns-backend
rd.net.dns-resolve-mode
rd.net.timeout.dhcp
rd.net.dhcp.client-id
rd.net.dhcp.retry
rd.net.dhcp.vendor-class
rd.net.dhcp.dscp
rd.net.timeout.carrier
rd.znet
rd.znet_ifname
BOOTIF
and like β for the precise format of the values each of these supports, please go read dracut.cmdline(7). she's not gonna spell it out here, she's pointing you at the source. iykyk π«Ά
π DIFFERENCES FROM THE NETWORK-LEGACY DRACUT MODULE π
so nm-initrd-generator generates a whole set of connections, and then the NetworkManager instance running in the initrd configures them. it's giving teamwork. but there are some real behavior differences compared to the network-legacy dracut module, and you need to know them:
- when an interface is configured with a static address and a gateway, the
network-legacymodule waits for the gateway to respond to arping requests before it proceeds. NetworkManager? she does not wait. not me being impatient π network-legacyconfigures interfaces one by one, in the order udev announces them. if multiple interfaces specify a hostname (from the command line or from DHCP), the one from the last interface activated wins. with NetworkManager, hostnames from the command line have higher precedence than ones from DHCP, and the last one that appears in the command line wins. periodt.- NetworkManager supports the
ib.pkey=PARENT.PKEYargument to set up an Infiniband partition on an IPoIB parent device PARENT using the specified partition key PKEY. the partition key must be in hexadecimal notation without a leading"0x"β for example"ib.pkey=ib0.8004". don't forget the no-0xthing, fr fr. - NetworkManager supports the
rd.ethtool=INTERFACE:AUTONEG:SPEEDkernel command line option to set up ethtool NIC configuration parameters AUTONEG and SPEED. the INTERFACE being configured must be specified β that one's not optional β and the other parameters are optional and can be left blank. when SPEED is set, duplex mode is automatically set to'full'. INTERFACE accepts string values, AUTONEG accepts boolean values (trueandfalse/onoroff/0or1), and SPEED accepts positive integer values. slay π - NetworkManager supports the
rd.net.dns-backend=VALUEkernel command line option to configure the DNS processing mode. see the description of the"dns"key in the"main section"paragraph ofNetworkManager.conf(5). for example:rd.net.dns-backend=systemd-resolved,rd.net.dns-backend=dnsconfd. β¨ - NetworkManager supports the
rd.net.dns=SERVERkernel command line option to configure a global (non interface-specific) DNS server. the option can be specified multiple times to add more than one server. each server can be specified as a plain IP or as an URI according to the description in the"global-dns-domains sections"paragraph ofNetworkManager.conf(5). for example:rd.net.dns=2001:db8::1,rd.net.dns=dns+tls://192.0.2.0,rd.net.dns=dns+tls://[2001:db8::2]:5353#example.org. and on top of that, it supports configuring the"resolve-mode"key in the global DNS configuration via therd.net.dns-resolve-modecommand line option. obsessed π - NetworkManager supports the
rd.net.dhcp.dscp={CS0|CS4|CS6}kernel command line option to set a specific DSCP (TOS) value in the IP header of DHCP messages. fancy. - NetworkManager supports the
rd.net.dhcp.client-id=interface:client-idkernel command line option to set a specific DHCPv4 client identifier for the given interface. the client-id can be specified either as a sequence of bytes in hexadecimal format separated by dashes, or as the character'@'followed by a non-empty string. when you use that second format, NetworkManager prepends a zero byte to the given string, according to section 9.14 of RFC 2132. see the"ipv4.dhcp-client-id"section ofnm-settings-nmcli(5)for more details. examples:rd.net.dhcp.client-id=eth0:01-52-54-00-45-87-42,rd.net.dhcp.client-id=enp1s0:@example.com. π
β EXIT STATUS β
nm-initrd-generator exits with status 0. she ignores unrecognized options like a queen ignoring drama, and prints an error message if she encounters a malformed option. so if you see an error, bestie, something was actually wrong π
πΈ SEE ALSO πΈ
dracut.cmdline(7), NetworkManager(8), nm-settings-nmcli(5). go read them, they're all worth it π
and that's the whole page, bestie π this was NetworkManager 1.58.0 talking, signing off with the biggest kiss β mwah, go configure your initrd, you've got this ππ
π¦ where this page comes from
- centos-stream 10: NetworkManager 1:1.58.0-1.el10 Β· GPL-2.0-or-later AND LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms