对于一般情况,我们假设 eth0 的虚拟适配器已被移除并被另一个替换。要么是由于克隆,要么是最近发生了一系列 MAC 地址冲突。[是的,皮疹其中。
通常我只是简单地rm /etc/udev/rules.d/70-persistent-net-rules
检查 /etc/sysconfig/network* 中是否包含对 MAC 地址的引用,重启,但这是 Linux,必须有一种方法可以避免重新启动。
是否有一个命令可以运行来获取新的 NIC?
编辑
除了下面@dawud 的回答之外,我在测试虚拟机上遇到了一个问题,它已经在新设备就位的情况下启动,并且已命名,eth1
在这种情况下udevadm
似乎没有“释放”该设备。在这种情况下,我做了以下事情:
- 从 VSphere 获取设备的 MAC 地址。
- 使用替换 MAC 地址的
/etc/iftab
行来创建/编辑。当此文件不存在/包含目标接口的名称时似乎不喜欢它。eth0 mac ##:##:##:##:##:##
ifrename
ifrename -i eth1 -n eth0
service network restart
并且 eth0 正常启动。- [可选]
rm /etc/iftab
这样 MAC 的可用空间就少了一个。
答案1
您可以使用udevadm trigger
您仍然需要删除持久规则并重新启动网络服务。
答案2
对我来说,下面的命令序列已按预期工作。
我已经进行了一些修改,以/etc/udev/rules.d/70-persistent-net.rules
更改eth
号码并重新加载它们而无需重新启动。
/etc/init.d/networking stop
/etc/init.d/udev stop
udevadm control --reload-rules
/etc/init.d/udev start
/etc/init.d/networking start
此后,它无需重新启动机器即可成功加载。
欢迎对此提出任何建议或推荐,我通过阅读 MAN 页面自己发现了上述内容。