新装机的centos7.*的系统网卡名字为enxxxxxx 想要改为以往的ethxxxx,操作
cd /etc/udev/rules.d/
创建 70-persistent-net.rules
对网卡进行名称绑定
echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$(ifconfig eth0|grep ether|awk '{print $2}')\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth0\"" >/etc/udev/rules.d/70-persistent-net.rules
echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$(ifconfig eth1|grep ether|awk '{print $2}')\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth1\"" >>/etc/udev/rules.d/70-persistent-net.rules
echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$(ifconfig eth2|grep ether|awk '{print $2}')\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth2\"" >>/etc/udev/rules.d/70-persistent-net.rules
echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$(ifconfig eth3|grep ether|awk '{print $2}')\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth3\"" >>/etc/udev/rules.d/70-persistent-net.rules
相对应的进入/etc/sysconfig/network-scripts 对网卡配置文件编辑,将DEVICE该为绑定后的设备名称。
如果机器接入的是万兆网卡,那么建议对千兆网卡驱动进行禁用,操作如下
此处以intel 千兆网卡为例
echo "blacklist igb" >> /etc/modprobe.d/blacklist.conf
sed -i '/GRUB_CMDLINE_LINUX/{s/"$//g;s/$/rdblacklist=igb"/}' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg;
centos7的坑还是有很多,网卡并行启动 导致网卡启动在udev绑定之前,这样会导致机器网卡启动失败 建议网卡启动sleep五秒左右,具体操作如下
#!/bin/bash
#关闭network开机自启动
chkconfig network off
#添加sa-network服务延迟5秒重启network服务
echo '#!/bin/bash' >> /etc/init.d/sa-network
echo '#chkconfig:2345 90 05' >> /etc/init.d/sa-network
echo 'sleep 5' >> /etc/init.d/misa-network
echo 'service network restart' >> /etc/init.d/sa-network
chmod +x /etc/init.d/sa-network
chkconfig --add sa-network
chkconfig sa-network on
这样对centos7.0的网卡问题能解决的差不多。
如果使用万兆光模块环境进行pxe批量装机可以在初始化脚本中加入
# disable igb add houzhibo
udev_eth0_mac=`cat /etc/udev/rules.d/70-persistent-net.rules | grep -i eth0| awk -F '"' '{print $8}'`
ip_add_eth0_mac=`ip add | grep -A2 eth0 |grep -i 'ether' | awk '{print $2}'`
speed=`ethtool eth0 | grep -i 'Speed' |awk -F [:] '{print $2}'`
network_name=`ip add |grep -iB1 $udev_eth0_mac | grep -i eth|awk '{print $2}'| grep -i eth| awk -F : '{print $1}'`
if [ $udev_eth0_mac = $ip_add_eth0_mac ] && [ $speed = "10000Mb/s" ] ;then
echo "blacklist igb" >> /etc/modprobe.d/blacklist.conf
sed -i '/GRUB_CMDLINE_LINUX/{s/"$//g;s/$/rdblacklist=igb"/}' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg;
echo '默认万兆网卡,已禁用千兆igb驱动。'
elif [ $udev_eth0_mac != $ip_add_eth0_mac ] ;then
echo "blacklist igb" >> /etc/modprobe.d/blacklist.conf
sed -i '/GRUB_CMDLINE_LINUX/{s/"$//g;s/$/rdblacklist=igb"/}' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
echo 'udev绑定网卡不匹配ip add网卡名称,已禁用千兆igb驱动,重启生效。'
elif [ $udev_eth0_mac = $ip_add_eth0_mac ] && [ $speed = "1000Mb/s" ] ;then
echo '默认千兆网卡,啥都不做。退出。'
fi
针对7.2和7.3测试通过 7.0有一些小问题,ps:7.0哪怕你做完udev绑定 它还是有几率识别为eth*~~~~~~,还有以上请针对自己的实际情况使用,不要死套用。
不过在此还是建议大家使用centos7.2 7.3版本 相对会稳定很多。7.0毕竟是个过渡版本。
感谢工作中麒麟大佬和新哥的指点。