centos7如何把虚拟网卡名称ifcfg-eno16777736改成ifcfg-eth0(无法重启网卡的终极解决方案)

写在前面:
遇到centos网络配置的问题,请先参考https://blog.csdn.net/zhuzj12345/article/details/80747862《CentOS 7下无法上网的终极解决方案》
如果试过后仍未解决,可以参考下面的做法。

问题:centos7无法重启网卡,虚拟网卡无法使用

最近帮朋友调试虚拟机遇到个问题,出现了以下问题:

#重启网卡
[root@localhost network-scripts]# service network start
Starting network (via systemctl):  Job for network.service failed. See 'systemctl status network.service' and 'journalctl -xn' for details.[FAILED]
#查看网卡状态
[root@localhost network-scripts]# systemctl status network.service
network.service - LSB: Bring up/down networking   Loaded: loaded (/etc/rc.d/init.d/network)   Active: failed (Result: exit-code) since Sat 2015-03-07 02:53:12 EST; 6s ago  Process: 8596 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Aug  24 10:03:28 localhost.localdomain network[8596]: RTNETLINK 
answers: File ...Aug  24 10:03:28 localhost.localdomain network[8596]: RTNETLINK 
answers: File ...Aug  24 10:03:28 localhost.localdomain network[8596]: RTNETLINK 
answers: File ...Aug  24 10:03:28 localhost.localdomain network[8596]: RTNETLINK 
answers: File ...Aug  24 10:03:28 localhost.localdomain network[8596]: RTNETLINK 
answers: File ...Aug  24 10:03:28 localhost.localdomain network[8596]: RTNETLINK 
answers: File ...Aug  24 10:03:28 localhost.localdomain systemd-sysctl[8913]: Overwriting earli...
Aug  24 10:03:28 localhost.localdomain systemd[1]: network.service: control pr...
Aug  24 10:03:28 localhost.localdomain systemd[1]: Failed to start LSB: Bring ...
Aug  24 10:03:28 localhost.localdomain systemd[1]: Unit network.service entere...
Hint: Some lines were ellipsized, use -l to show in full.
#查看日志
cat /var/log/messages |grep network
Aug  24 10:05:10 dg-p systemd: Starting LSB: Bring up/down networking...
Aug  24 10:05:10 dg-p network: Bringing up loopback interface:  Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Aug  24 10:05:10 dg-p network: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Aug  24 10:05:10 dg-p network: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Aug  24 10:05:10 dg-p network: Could not load file '/etc/sysconfig/network-scripts/ifcfg-lo'
Aug  24 10:05:10 dg-p network: [  OK  ]
Aug  24 10:05:11 dg-p network: Bringing up interface eno16777736:  Error: Connection activation failed: No suitable device found for this connection.
Aug  24 10:05:11 dg-p network: [FAILED]
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p network: RTNETLINK answers: File exists
Aug  24 10:05:11 dg-p systemd: network.service: control process exited, code=exited status=1
Aug  24 10:05:11 dg-p systemd: Failed to start LSB: Bring up/down networking.
Aug  24 10:05:11 dg-p systemd: Unit network.service entered failed state.
Aug  24 10:05:11 dg-p systemd: network.service failed.

于是开始排查,通过vi /etc/sysconfig/network-scripts/ifcfg-eno16777736查看网卡配置:

#查看网卡配置
[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.138.158
NETMASK=255.255.255.0
GATEWAY=192.168.138.1
DNS1=8.8.8.8
DNS2=8.8.4.4

没有问题!
然后用vi /etc/sysconfig/grub命令查看系统启动项配置

#查看系统启动项配置
[root@localhost network-scripts]# vi  /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

问题来了!内核参数手动设置”GRUB_CMDLINE_LINUX“变量添加“net.ifnames=0 biosdevname=0”,使得默认的eno16777736不可用

centos7.X版本默认的网卡名称为eno16777736

内核参数组合使用的时候,其结果如下:
默认内核参数(biosdevname=0,net.ifnames=1): 网卡名 “enp5s2”
biosdevname=1,net.ifnames=0:网卡名 “em1”
biosdevname=0,net.ifnames=0:网卡名 “eth0” (最传统的方式,eth0 eth1 )

解决方案一,保留默认的网卡名称eno16777736:

(1)删除/etc/sysconfig/grub内核参数手动设置”GRUB_CMDLINE_LINUX“中的“net.ifnames=0 biosdevname=0

#查看系统启动项配置
[root@localhost network-scripts]# vi  /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

:wq!保存

(2)清空/etc/udev/rules.d/70-persistent-net.rules里面的内容
(3)重启机器:

[root@localhost network-scripts]#  reboot

解决方案二,把网卡名称改成eth0:

(1)修改网卡名和配置文件
mv /etc/sysconfig/network-scripts/ifcfg-eno16777736 /etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost network-scripts]# mv /etc/sysconfig/network-scripts/ifcfg-eno16777736 /etc/sysconfig/network-scripts/ifcfg-eth0

(2)修改配置文件里面name和device
vi /etc/sysconfig/network-scripts/ifcfg-eth0

#查看网卡配置
[root@localhost network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.138.158
NETMASK=255.255.255.0
GATEWAY=192.168.138.1
DNS1=8.8.8.8
DNS2=8.8.4.4

(3)配置/etc/sysconfig/grub,保留net.ifnames=0 biosdevname=0
vi /etc/sysconfig/grub

#查看系统启动项配置
[root@localhost network-scripts]# vi /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

(4)手动生成70-persistent-net.rules以及其他方法
查看接口的MAC地址

# 查看接口的MAC地址
[root@localhost network-scripts]#  ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:22:9b:24 brd ff:ff:ff:ff:ff:ff

(5)重启机器:

[root@localhost network-scripts]#  reboot

网卡命名规则和linux启动项说明可参考:
参考https://blog.csdn.net/hzj_001/article/details/81587824《linux网卡命名规则》
系统启动项https://blog.csdn.net/sfslife/article/details/50935867《系统启动项(/etc/default/grub文件详解)》

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值