制作完镜像,加载PCI的网卡和WIFI后,发现名称不是ehx或wlanx,而是ensxxx和wlxxx的一堆符号,根据需求修改为原规则
前言
查了一下,linux系统的命名规则有三种,内核、udev的rulers文件和systemd network的link文件。通常是由 udev 和 systemd-networkd 共同管理,但它们的应用顺序和优先级有所不同
一、应用顺序
1.内核命名:
首先内核会在设备被检测到时分配一个默认的名称(例如 eth0, wlan0)。如果内核支持可预测的命名(Predictable Network Interface Names),它会根据硬件位置、MAC 地址等信息分配一个固定的名称(例如 enp0s3)。
2.udev rulers文件规则:
udev 规则文件通常位于 /etc/udev/rules.d/ 目录下,并且可以覆盖内核分配的名称。udev 规则在设备被检测到时立即应用。udev 会根据规则文件中的匹配条件来重命名设备。
2.systemd .link 文件规则:
.link 文件通常位于 /etc/systemd/network/ 目录下,并且可以在 udev 规则之后进一步修改设备名称。systemd-networkd 在启动时或设备被添加时读取 .link 文件。.link 文件中的 NamePolicy 可以指定多种命名策略,并按顺序尝试,直到找到一个成功的策略为止。
二、优先级
内核规则:系统启动时,内核加载时会优先命名
udev 规则:通常具有较高的优先级,在设备被检测到时立即应用。
.link 文件:在 udev 规则之后应用,因此如果 udev 规则已经设置了设备名称,.link 文件中的命名策略可能不会生效。
三、应用
在我的rk3568中,由于我想要在加载系统后获得原始的命名,所以在搜索一番后,找到的是link命名文件,将文件删除后重启,名称恢复正常