![如何删除 /etc/udev/rules.d/70-persistent-net.rules CentOS](https://linux22.com/image/89159/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%20%2Fetc%2Fudev%2Frules.d%2F70-persistent-net.rules%20CentOS.png)
我有一台服务器,我们正在使用 VMware Recover Point 测试延伸网络故障转移。当服务器移动到备用站点时,MAC 地址会发生变化,导致我的网络接口 (eth0) 发生变化,eth1
因为文件重新生成70-persistent-net.rules
,使用新的 MAC 地址创建了新的 eth0。
我想在启动时编写一个脚本来删除此文件,以便udev
创建新文件,但我很难知道将其放置在哪里。我尝试过/etc/rc1.d/S25_70
,它位于 之上/etc/rc1.d/S26_udev-post
,但它不起作用。
感谢您的任何帮助!
答案1
eth0
最简单的解决方案是在文件中定义两条规则70-persistent-net.rules
,每条规则对应每台服务器中的相关 MAC 地址。此版本的文件应该与两个都服务器。
当在 server1 上启动时,server1 的 MAC 地址为 eth0。
当在 server2 上启动时,server2 的 MAC 地址为 eth0。
例如
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:11:11:11:11:11", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="22:22:22:22:22:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
更改"11:11:11:11:11:11"
并"22:22:22:22:22:22"
匹配服务器中的硬件。
顺便说一句,如果使用systemd
,则 /etc/systemd/network 中有两个文件,每个文件对应一个匹配的 MAC 地址。例如
/etc/systemd/network/10-eth0-1.link:
[Match]
MACAddress=11:11:11:11:11:11
[Link]
Name=eth0
/etc/systemd/network/10-eth0-2.link:
[Match]
MACAddress=22:22:22:22:22:22
[Link]
Name=eth0
从man 5 systemd.network
:
[匹配] 部分选项
网络文件包含一个
[Match]
部分,该部分确定给定的网络文件是否可以应用于给定的设备;以及[Network]
指定如何配置设备的部分。应用与给定设备匹配的第一个(按词汇顺序)网络文件,所有后面的文件都将被忽略,即使它们也匹配。
答案2
您可以尝试修改启动脚本以在执行其他操作之前udev
删除该文件。70-persistent-net.rules
或者将自定义挂钩/脚本添加到您的 initramfs(生成)中。