1 个不稳定版本
0.2.0 | 2022年11月16日 |
---|
#12 在 #udev
33KB
810 代码行
prefixdevname |
简单的udevhel utility工具,允许您定义用于NIC命名的自己的前缀。
许可证
MIT
从源码构建
prefixdevname是一个Rust项目,因此我们使用cargo作为我们的构建工具,但是该项目还包括Makefile以简化一些常见任务。例如,单元测试使用libumockdev在非特权用户命名空间中模拟sysfs,这需要手动配置,由make的check目标处理。
make
make check
sudo make install
贡献
如果您在prefixdevname中发现问题,请在Github上提交一个问题。当然,您也可以提交PR。
安装和使用
Prefixdevname(名称灵感来自Dell的biosdevname)需要非常少的设置。最终用户需要安装该软件包,并在内核命令行上指定用于NIC命名的所需前缀。例如,以下是Fedora的设置步骤:
dnf install prefixdevname
grubby --update-kernel=$(grubby --default-kernel) --args="net.ifnames.prefix=net"
reboot
每次出现新的网络硬件时,prefixdevname都会启动,并尝试确定下一个可能的设备名称,同时尊重我们的枚举。我们以“<PREFIX><INDEX>”的形式分配设备名称,例如在net0和net1已存在的情况下为net2。然后,工具在/etc/systemd/network目录中生成新的.link文件,将名称应用于刚刚出现的MAC地址的接口。因此,配置在重新启动后是持久的(否则意义不大)。
限制
重新启动后,计算机将使用“net”前缀命名所有以太网网络设备,例如net0。如果对已部署的系统进行重命名,必须确保您的网络配置工具知道新的命名方案(例如,在Fedora中,必须相应地调整ifcfg文件)。如果命名方案在系统安装时已经使用,并且使用基于前缀的名称生成网络配置,则这不是问题。
用户定义的前缀必须是符合以下正则表达式的ASCII字符串,[[:alpha:]]+,且长度必须小于15个字符。
另一个限制是您的前缀不能与Linux上用于网络接口命名的任何已知名前缀冲突。具体来说,您不能使用以下任何前缀:
- eth
- eno
- ens
- em
在添加新网络硬件并被重命名后,强烈建议运行 "dracut -f",以确保新生成的.link配置文件也被包含在initramfs镜像中。此存储库还包含处理将.link文件包含到initramfs镜像中的非常基础的dracut模块。
依赖项
~4–13MB
~126K SLoC