network: override device names: suggest running update-initramfs

The initramfs-tools hook /usr/share/initramfs-tools/hooks/udev copies
link files from /etc/systemd/network to the initramfs, where they take
effect in early userspace. If the link files in the initramfs diverge
from the link files in the rootfs, this can lead to confusing
behavior, as reported in enterprise support. For instance:

- If an interface matches link files both in the initramfs and the
  rootfs, it will be renamed twice during boot.
- A leftover link file in the initramfs renaming an interface A to a
  new name X may prevent a link file in the rootfs from renaming a
  different interface B to the same name X (it will fail with "File
  exists").

To avoid this confusion, mention the link files are copied to the
initramfs, and suggest updating the initramfs after making changes to
the link files.

Suggested-by: Hannes Laimer <h.laimer@proxmox.com>
Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
This commit is contained in:
Friedrich Weber 2024-05-21 14:55:18 +02:00 committed by Thomas Lamprecht
parent 188d30f0fe
commit 0563b1e982

View File

@ -184,6 +184,13 @@ manpage] for more details.
Then, you can assign a name using the `Name` option in the `[Link]` section.
Link files are copied to the `initramfs`, so it is recommended to refresh the
`initramfs` after adding, modifying, or removing a link file:
----
# update-initramfs -u -k all
----
For example, to assign the name `enwan0` to the Ethernet device with MAC
address `aa:bb:cc:dd:ee:ff`, create a file
`/etc/systemd/network/10-enwan0.link` with the following contents:
@ -197,8 +204,9 @@ Type=ether
Name=enwan0
----
Do not forget to adjust `/etc/network/interfaces` to use the new name.
You need to reboot the node for the change to take effect.
Do not forget to adjust `/etc/network/interfaces` to use the new name, and
refresh your `initramfs` as described above. You need to reboot the node for
the change to take effect.
NOTE: It is recommended to assign a name starting with `en` or `eth` so that
{pve} recognizes the interface as a physical network device which can then be