对于一般情况,假设 eth0 的虚拟适配器已被删除并替换为另一个。要么是由于克隆,要么是最近出现了一连串的 MAC 地址冲突。[是的,他们的皮疹。]
通常我只是简单地rm /etc/udev/rules.d/70-persistent-net-rules
检查 /etc/sysconfig/network* 中没有任何内容包含对 MAC 地址的引用并重新启动,但这是 Linux,必须有一种方法可以避免重新启动。
有没有我可以运行的命令来获取新的 NIC?
编辑
除了下面@dawud 的回答之外,我在我的测试 VM 上遇到了一个问题,它已经使用新设备启动并命名eth1
,在这种情况下udevadm
似乎不会“释放”该设备。在这种情况下,我做了以下事情:
- 从 VSphere 获取设备的 MAC 地址。
- 用MAC 地址代入
/etc/iftab
的行创建/编辑。当此文件不存在/包含目标接口的名称时,似乎不喜欢它。eth0 mac ##:##:##:##:##:##
ifrename
ifrename -i eth1 -n eth0
service network restart
eth0 正常启动。- [可选]
rm /etc/iftab
这样 MAC 就少了一个地方。
你可以使用
udevadm trigger
您仍然需要删除持久性规则并重新启动网络服务。
对我来说,下面的命令序列按预期工作。
我已经进行了修改
/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 页面自行发现了上述内容。