70-persistent-net.rules无法自动生成,解决方法
无法自动生成70-persistent-net.rules文件的原因:
在更换linux内核前修改ifcfg-eth0文件,更换内核,使用dhclient无法动态分配IP,删掉70-persistent-net.rules文件,重启系统。
在/dev/udev/rules.d文件夹下没有自动生成70-persistent-net.rules文件。
解决方法:
手动执行/lib/udev/write_net_rules
如果提示信息为:
missing $INTERFACE
添加变量:
export
INTERFACE="
eth0"
执行:
/lib/udev/write_net_rules
如果提示信息为:
missing valid match
添加变量:
export
MATCHADDR=
"xx:xx:xx:xx:xx:xx" // MAC地址
执行:
/lib/udev/write_net_rules
这时在/etc/udev/rules.d文件夹下就生成70-persistent-net.rules文件。
注意:
write_net_rules是一个脚本,这个脚本并不是在所有系统中都有,需要自己手动安装(也可能可以使用包管理自动安装,但是我没有找到)。
安装过程如下(已在centos7验证,可正常使用):
1、下载udev源码:
https://github.com/lu-zero/udev
2、编译源码:
cd udev-master
./autogen.sh
./configure CFLAGS='-g -O1 -lrt' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64 --enable-gtk-doc --libexecdir=/usr/lib --with-systemdsystemunitdir=/usr/lib/systemd/system
// 注意,这里要加上 -lrt,不然会报:
make && make install
// 注意,这里一定要安装,不然会报错。
// 在这个过程中可能系统中会少一些东西,提前安装一下工具:
pam-devel、gtk-doc-tools/gtk-doc、libblkid-devel、kmod-devel、usbutils、libgnomeui-devel、glib2、gpref等。
3、运行write_net_rules
参考解决方法。