Network-scripts deprecation in Rocky Linux 9 affecting ifcfg persistence
0 reputation · 08 May 2026, 07:06 UTC
0 reputation · 08 May 2026, 07:06 UTC
Rocky Linux 9 removes legacy network-scripts by default, shifting primary interface management to NetworkManager. In previous versions, manual edits to files in /etc/sysconfig/network-scripts/ were often sufficient to define static IP configurations that persisted across reboots via the network service.
When migrating environments to Rocky Linux 9, there is a risk that static configurations defined in ifcfg files are not automatically recognized by the NetworkManager daemon. This creates a discrepancy between the disk‑based configuration and the active runtime state if the profiles are not explicitly loaded into the manager.
What is the documented behavior for NetworkManager when encountering legacy ifcfg files without an associated active profile? Does nmcli connection reload guarantee the synchronization of all legacy script parameters into the current runtime state?
On Rocky Linux 9, legacy ifcfg files in /etc/sysconfig/network-scripts/ are not read at all by default. The network-scripts package and the initscripts-based network service were removed in the EL9 generation, and NetworkManager ships configured to use only the keyfile plugin. Profiles live as .nmconnection files in /etc/NetworkManager/system-connections/. So the documented behavior is: an ifcfg file with no corresponding NetworkManager profile is inert — nothing creates a connection from it, at boot or otherwise.
And no, nmcli connection reload does not synchronize legacy script parameters into runtime state. It only re-reads on-disk profiles from plugins that are actually loaded. With a keyfile-only configuration there is nothing to read in /etc/sysconfig/network-scripts/, so the reload is a no-op for your ifcfg files.
Confirmed: Rocky 9 has no network-scripts package, no ifup/ifdown via initscripts, and NetworkManager is the sole supported configuration path. Likely explanation for your symptom: the system was either freshly installed (ifcfg files were never imported) or upgraded from Rocky 8, leaving ifcfg files on disk that the keyfile-only NetworkManager ignores. You can confirm which plugin set is active with:
NetworkManager --print-config | grep -A2 '\[main\]'
If the plugins line shows only keyfile (the default), ifcfg files are definitively not being consumed.
Convert each legacy file into a native keyfile profile rather than trying to keep the old format alive:
nmcli connection import type ifcfg file /etc/sysconfig/network-scripts/ifcfg-eth0
nmcli connection show
nmcli connection up <profile-name>
The import writes a .nmconnection file under /etc/NetworkManager/system-connections/. Verify persistence with a reboot or nmcli connection down/up cycle, and confirm the profile appears in nmcli -f NAME,UUID,TYPE,DEVICE connection show.
600; NetworkManager silently refuses to load world-readable profiles./etc/cloud/cloud.cfg.d/ before assuming your edits persist.network-scripts from EL8 repositories; it is unsupported on EL9 and conflicts with NetworkManager.nmcli, nmtui, or nmstate. Hand-editing keyfiles is fine, but requires nmcli connection reload followed by re-activating the profile — reload alone does not apply changes to a live interface.One detail worth checking if the import behaves unexpectedly: whether the ifcfg file uses directives with no keyfile equivalent (some legacy scripting hooks like ifup-local don't translate). If nmcli connection import reports dropped keys, share that output and the original file's non-standard lines before assuming the migration is complete.
Use comments to ask for clarification. Post a solution as an answer.
29,775 reputation · 08 May 2026, 09:58 UTC
Even if you install the network-scripts from the Rocky Linux 9 repositories, the legacy ifcfg-* files are not automatically used by NetworkManager. The network-scripts provides the old ifup/ifdown scripts and the network service, but that service is masked and disabled by default. To make the system read the ifcfg files you must:
dnf install network-scriptssystemctl enable --now networkNM_CONTROLLED=no in the ifcfg file or add unmanaged-devices=interface-name:eth0 to /etc/NetworkManager/NetworkManager.conf).If the legacy service is not enabled, NetworkManager remains configured with only the keyfile plugin and ignores any ifcfg files, making nmcli connection reload a no‑op for those files.