有没有办法找到 udev 重命名接口的原始网络接口名称?

有没有办法找到 udev 重命名接口的原始网络接口名称?

当我运行时ip addr show,这将显示一个被命名enp3s0f0或类似的接口。

这个名字是由 分配的udev

安装/驱动器后会发生这种情况。

因此,它发生在luks文件加密之后。

我想通过在 initramfs 中安装 ssh 服务器 dropbear 来使密码提示可以通过网络进行解密。这样做需要告诉 dropbear 要侦听哪个网络接口,并dhcp在 initramfs 中启用。为此,我需要网络接口名称。

令我惊讶的是,我找不到一种方法可以轻松地看到它的原始名称enp3s0f0是什么。如果我的主机有很多端口并且启动速度很慢,则尝试和错误可能会很麻烦,每次尝试都需要重新启动两次。

在重命名完成后,我可以运行一些命令来快速找出答案吗?

答案1

您可以尝试使用系统日志查看重命名历史

journalctl -b 0 -g "renamed from"

答案2

我不然而有OP发布的问题的答案,但有一个工具,dracut-sshd,它是专门为 OP 正在处理的任务而编写的(通过 ssh 接收密钥以解密加密卷,可能是根和其他数据文件系统 - 而不是在启动控制台输入解密密码)。

当我找到一种好方法来自动从新接口名称到 initramfs 运行时已知的原始接口名称进行反向查找时,我将更新此答案。我有类似的需求 - 可能我必须将接口重命名推送到 initramfs 中,然后再尝试启动网络接口并按照 ip= 命令行 arg 的指示设置地址,如中所述内核文档 - nfsroot.txt

笔记:接口重命名后,udevadm info -q property /sys/class/net/<ifname>任何属性中均不显示原始名称。在重命名之前记录原始名称可能是一种策略(如果在重命名时有一个方便的位置来存储它 - 也许/运行?)。这不是一种涉及标准工具的技术 - 这是一种“自己动手”的方法。

相关内容