我已将eth1
界面名称更改为eth0
. udev
现在如何要求重新读取配置?
service udev restart
Run Code Online (Sandbox Code Playgroud)
和
udevadm control --reload-rules
Run Code Online (Sandbox Code Playgroud)
不要帮忙。那么除了重新启动之外还有其他有效的方法吗?(是的,重启有助于解决这个问题)
是的,我知道我应该在命令前面加上sudo
,但是我上面发布的任何一个都不会改变ifconfig -a
输出:我仍然看到eth1
,而不是eth0
。
我刚刚更改了NAME
udev-rule 行的属性。不知道有什么原因使这无效。
执行我上面发布的两个命令都没有任何错误,但它们只是不会更改ifconfig -a
输出中的实际接口名称。如果我执行重新启动 - 则接口名称会按预期更改。
出于开发目的,我编写了一些脚本来克隆虚拟机(VirtualBox 驱动)并以某种方式预先设置它们。
所以我执行一个命令来克隆 VM,启动它,只要网络接口 MAC 发生变化 -udev
将第二个规则添加到网络持久性规则中。机器第一次启动后,有两条规则:
eth0
,不存在,只要存在于原始VM镜像MAC中eth1
,它存在,但所有文件中的所有配置都指向eth0
,所以对我来说不是那么好所以我sed
删除了行eth0
(它在克隆图像中已经过时且无用)并替换eth1
为eth0
. 所以目前我有有效的持久规则,但仍然eth1
存在/dev
.
问题:我不想重新启动机器(这需要另外的时间,这在构建虚拟机阶段不是一件好事),只想/dev
用一些命令重建我的机器,这样我就有了随时可用的虚拟机没有任何重启。
aka*_*ola 34
我不知道这是否有助于重新加载网络配置,但是当我修改/etc/udev/rules.d/70-persistent-cd.rules
以更正 DVD 设备链接从/dev/dvd1
到 时/dev/dvd
,我不得不运行
sudo udevadm trigger
Run Code Online (Sandbox Code Playgroud)
以创建新链接。
小智 22
您必须以正确的顺序组合此处给出的所有建议:
service networking stop
lspci -v
并查找“正在使用的内核驱动程序:”modprobe -r <driver module>
udevadm control --reload-rules
udevadm trigger
modprobe <driver module>
service networking start
iptables
在eth
接口启动之前重新运行任何引用接口名称的脚本。我怀疑第 4 步或第 5 步并不是真正需要的,但这些步骤对我有用。您可以在步骤 4 和步骤 2.1 之后检查触发器命令是否已经执行了步骤 5,如果这样做,请编辑此答案以反映您的发现。
我有一个类似的问题。因为我不想花时间重新启动,所以我使用 Chris Wesseling 的建议运行了一个班轮。
/etc/init.d/networking stop && modprobe -r tg3 && udevadm control --reload-rules && udevadm trigger && modprobe tg3 && /etc/init.d/networking start
这对我使用 Ubuntu 12.04.02 服务器有效。我的网卡使用的是 tg3 内核模块驱动程序,因此将 tg3 更改为您的接口正在使用的模块。我找到了我的用于/etc/udev/rules.d/70-persistent-net.rules
:
PCI 设备 0x14e4:/sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.1 (tg3) <-nic 内核模块驱动程序
我遇到的一个问题是一条糟糕的路由,我用一个简单的路由添加命令修复了它。感谢克里斯的帮助!
小智 5
这对我有用(无需重新启动)
udevadm control --reload-rules ; udevadm trigger
Run Code Online (Sandbox Code Playgroud)
感谢此页面的作者:http : //memoryfail.wordpress.com/2013/04/02/renaming-network-device-names/
归档时间: |
|
查看次数: |
163608 次 |
最近记录: |