qcow2镜像最小化安装的centos7.6系统网卡启动报错Failed to start LSB: Bring up/down networking. ,用nmcli方式终极处理。

说明【必看】

  • 环境和系统说明
    环境是openstack,镜像是centos7.6的qcow2格式。
[root@xz-sms-2 yum.repos.d]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@xz-sms-2 yum.repos.d]# 
  • 现在有一批qocw2安装的cenots7.6的虚拟机,将dhcp网络改为none静态ip的时候,启动网卡报错了
    • 我还以为是我改静态ip的原因导致的网卡启动错误。
    • 但实际上我用新申请的虚拟机,还没动网卡文件的时候,直接重启网卡也是报错。
    • 新创建的虚拟机报错信息如下
[root@xz-sms-2 ~]# 
[root@xz-sms-2 ~]# systemctl restart network
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
[root@xz-sms-2 ~]# systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2022-05-27 09:54:50 UTC; 55s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 23535 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
   CGroup: /system.slice/network.service
           └─3585 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H xz-sms-2 eth0
  • 但又有一个神奇的问题,我们实验中应该知道,如果网络服务状态为failed的话,那么此时网络是无法使用的,但是我们这是能正常使用的,如下
    下面ip打码了。 这个问题其实挺离谱的,也颠覆了我的认知,网络服务为failed,ip能正常使用。
    在这里插入图片描述
  • 而且我把配置文件改为手动的静态ip,ip依然存在并且也能ping通网关,那么理论上不用可以处理,也不用管咯,反正ip能正常使用。
    可是,秉着严谨的工作态度,这个问题必须处理,没遇到过,就百度咯,百度了许多文章,发现都是那两三种处理方法,没啥屁用,还浪费了我不少时间百度,那么百度不行,又得根据已有的经验一步步排查咯,开搞。

报错日志

报错日志如下

[root@xz-sms-2 ~]# tail -f /var/log/messages
....
May 27 09:54:49 xz-sms-2 network: Determining IP information for eth0...dhclient(3585) is already running - exiting.
May 27 09:54:49 xz-sms-2 network: This version of ISC DHCP is based on the release available
May 27 09:54:49 xz-sms-2 network: on ftp.isc.org.  Features have been added and other changes
May 27 09:54:49 xz-sms-2 network: have been made to the base software release in order to make
May 27 09:54:49 xz-sms-2 network: it work better with this distribution.
May 27 09:54:49 xz-sms-2 network: Please report for this software via the CentOS Bugs Database:
May 27 09:54:49 xz-sms-2 network: http://bugs.centos.org/
May 27 09:54:49 xz-sms-2 network: exiting.
May 27 09:54:49 xz-sms-2 dhclient[23664]: This version of ISC DHCP is based on the release available
May 27 09:54:49 xz-sms-2 network: failed.
May 27 09:54:49 xz-sms-2 dhclient[23664]: on ftp.isc.org.  Features have been added and other changes
May 27 09:54:49 xz-sms-2 network: [FAILED]
May 27 09:54:49 xz-sms-2 dhclient[23664]: have been made to the base software release in order to make
May 27 09:54:49 xz-sms-2 dhclient[23664]: it work better with this distribution.
May 27 09:54:49 xz-sms-2 dhclient[23664]: ution.
May 27 09:54:49 xz-sms-2 dhclient[23664]: Please report for this software via the CentOS Bugs Database:
May 27 09:54:49 xz-sms-2 dhclient[23664]:    http://bugs.centos.org/
May 27 09:54:49 xz-sms-2 dhclient[23664]: centos.org/
May 27 09:54:49 xz-sms-2 dhclient[23664]: exiting.
May 27 09:54:50 xz-sms-2 network: Bringing up interface eth1:  ERROR     : [/etc/sysconfig/network-scripts/ifup-eth] Device eth1 does not seem to be present, delaying initialization.
May 27 09:54:50 xz-sms-2 /etc/sysconfig/network-scripts/ifup-eth: Device eth1 does not seem to be present, delaying initialization.
May 27 09:54:50 xz-sms-2 network: [FAILED]
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 network: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2 systemd: network.service: control process exited, code=exited status=1
May 27 09:54:50 xz-sms-2 systemd: Failed to start LSB: Bring up/down networking.
May 27 09:54:50 xz-sms-2 systemd: Unit network.service entered failed state.
May 27 09:54:50 xz-sms-2 systemd: network.service failed.
  • 虽然报错很多,但实际可用参考的就下面几行
    状态是failed
[root@xz-sms-2 ~]# systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2022-05-27 09:54:50 UTC; 55s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 23535 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
   CGroup: /system.slice/network.service
           └─3585 /sbin/dhclient -1 -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H xz-sms-2 eth0

May 27 09:54:50 xz-sms-2.novalocal network[23535]: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2.novalocal network[23535]: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2.novalocal network[23535]: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2.novalocal network[23535]: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2.novalocal network[23535]: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2.novalocal network[23535]: RTNETLINK answers: File exists
May 27 09:54:50 xz-sms-2.novalocal systemd[1]: network.service: control process exited, code=exited status=1
May 27 09:54:50 xz-sms-2.novalocal systemd[1]: Failed to start LSB: Bring up/down networking.
May 27 09:54:50 xz-sms-2.novalocal systemd[1]: Unit network.service entered failed state.
May 27 09:54:50 xz-sms-2.novalocal systemd[1]: network.service failed.
[root@xz-sms-2 ~]# 

处理Failed to start LSB: Bring up/down networking.流程

网上方法

  • 下面3个方法来自网上,如果你能直接处理最好,因为假单省事。

第一种方法:修改MAC地址

  • 这样造成的原因是配置文件中MAC与当前网卡MAC不一致,只需要修改一下配置文件即可。

  • 1、用ip addr show命令查看当前MAC地址【ifconfig和ip a都是可以的】
    在这里插入图片描述

  • 2、修改/etc/sysconfig/network-scripts/下以ifcfg开头的网络链接文件
    例如vim /etc/sysconfig/network-scripts/ifcfg-eth1
    HWADDR=”00:0c:29:7f:76:e8″改为HWADDR=”00:0c:29:5d:6f:01″

  • 3、systemctl restart network.servic重启网络成功,这样状态既可正常。

第二种方法、禁用NetworkManager

  • 1、systemctl stop NetworkManager

  • 2、systemctl disable NetworkManager

  • 重启之后,网络恢复正常

第三种方法、修改网卡文件名【警示作用】

  • 下面方法是不可取法,完全不建议这么搞,我放这是当做警示作用,我后面也会新建一个文件名,会放标准且简单的方法。
  • 装完系统后网卡默认都是有名称的,例如eno9、eno17…等等,如果你之前修改过网卡名称的话,例如修改成eth0名称的话,可以按照以下方法修改配置文件:
1、修改网卡名和配置文件

# mv /etc/sysconfig/network-scripts/ifcfg-enoeno9 /etc/sysconfig/network-scripts/ifcfg-eth0

修改配置文件里面name和device

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=d890d6e6-01f6-4063-bf70-cd4e1787d0a8
HWADDR=00:50:56:8b:57:82 #这里原文件没有,手动添加上去
DEVICE=eth0
ONBOOT=yes
IPADDR=IP

NETMASK=掩码
GATEWAY=网关

2、修改/etc/sysconfig/grub,添加net.ifnames=0 biosdevname=0

# 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 net.ifnames=0 biosdevname=0 rhgb quiet”
GRUB_DISABLE_RECOVERY=true3、手动生成70-persistent-net.rules以及其他方法

查看接口的MAC地址
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:28:ac:54 brd ff:ff:ff:ff:ff:ff
生成文件
# vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==?*, ATTR{
    
    address}==00:0c:29:28:ac:54, ATTR{
    
    type}==1, KERNEL==”eth*, NAME=”eth0″

我的方法

  • 上面方法都无效以后,来跟着我的方法来弄吧,不成功私信我,免费给处理!
  • 敢这么自信的原因是因为,当你了解所有虚机网络的东西以后,会发现网卡启动失败就这么几个原因,常规无法解决,就只剩下那么一两种可能。
  • 注:下面ip都是经过修改的。

配置yum源并安装NetworkManager

  • 如果你是公网跳过配置。
  • 我这是内网,公网不能用,所以需要先准备一个yum源,因为我直接在这个段搭建了一个http源,所以我直接用的http源,你配置本地源,不会的,去我之前文档中翻翻。
[root@xz-sms-2 ~]# cd /etc/yum.repos.d/
[root@xz-sms-2 yum.repos.d]# ls
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
[root@xz-sms-2 yum.repos.d]# mkdir bak
[root@xz-sms-2 yum.repos.d]# mv * bak
mv: cannot move ‘bak’ to a subdirectory of itself, ‘bak/bak’
[root@xz-sms-2 yum.repos.d]# ls
bak
[root@xz-sms-2 yum.repos.d]# 
# 下面ip有修改
[root@xz-sms-2 yum.repos.d]# cat http.repo 
[http]
name=http
baseurl=http://1.1.1.41/yumrepo/
gpgcheck=0
enabled=1
[root@xz-sms-2 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
http                                                                                                                                                                                                                 | 2.9 kB  00:00:00     
http/primary_db                                                                                                                                                                                                      | 3.1 MB  00:00:00     
repo id                                                                                                             repo name                                                                                                         status
http                                                                                                                http                                                                                                              4,021
repolist: 4,021
[root@xz-sms-2 yum.repos.d]# 
  • 安装NetworkManager
[root@xz-sms-2 yum.repos.d]# yum -y install NetworkManager
。。。
Installed:
  NetworkManager.x86_64 1:1.12.0-6.el7                                                                                                                                                                                                      

Dependency Installed:
  NetworkManager-libnm.x86_64 1:1.12.0-6.el7                                                                                                                                                                                                

Complete!
  • 启动服务
    可以不需要enable的
[root@xz-sms-2 yum.repos.d]# systemctl start NetworkManager
[root@xz-sms-2 yum.repos.d]# systemctl is-active NetworkManager
active
[root@xz-sms-2 yum.repos.d]# 

nmcli操作

查看

  • 先简单做个对比,下面2个命令可以看到,ip设备只有eth0,但nmcli con show中看到有2个设备名称,我这有如下问题
    • 1、System eth0的NAME名称和DEVICE名称没有对齐,需要修改为和DEVICE一致。
    • 2、多了一个System eth1,需要删除。
[root@xz-sms-2 yum.repos.d]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 1.2.3.48  netmask 255.255.255.0  broadcast 1.2.3.255
        inet6 fe80::f816:3eff:fedf:7bcf  prefixlen 64  scopeid 0x20<link>
        ether fa:16:3e:df:7b:cf  txqueuelen 1000  (Ethernet)
        RX packets 60295  bytes 10943742 (10.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4754  bytes 648523 (633.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 416 (416.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 416 (416.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@xz-sms-2 yum.repos.d]# nmcli con show
NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  --     
[root@xz-sms-2 yum.repos.d]# 

删除没有DEVICE名称的信息

  • 如我这需要删除System eth1
root@xz-sms-2 yum.repos.d]# nmcli con show
NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  --     
[root@xz-sms-2 ~]#  nmcli con del 'System eth1'
Connection 'System eth1' (9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04) successfully deleted.
[root@xz-sms-2 ~]# nmcli con show
NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
[root@xz-sms-2 ~]# 

修改NAME名称

修呢呢,就是将NAME名称修改为和DEVICE名称一致。

[root@xz-sms-2 ~]# nmcli con show
NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
[root@xz-sms-2 ~]# nmcli con modify 'System eth0' con-name eth0
[root@xz-sms-2 ~]# 
[root@xz-sms-2 ~]# nmcli con show
NAME  UUID                                  TYPE      DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
[root@xz-sms-2 ~]# 

重启网卡失败及处理【重启网卡会自动生成多余网络信息】

  • 现在有个问题,重启网卡会报错,而且每次重启后,之前删除的网卡名称都会重新生成。
    • 后面我进入到网卡配置文件,发现我删除了eth1以后,网卡配置文件并不行,所以我怀疑是这个配置文件存在的原因导致我重启网络nmcli里面会重新生成行信息并导致我重启失败。
    • 所以解决方法就是: 删除网卡文件里面的eth1文件【要确定该网卡是不存在的,ifconfig查看有没有eth1这个网卡】,移动到其他路径也可以【我就是用的这个方法】
    • 然后重新删除nmcli里面的eth1
[root@xz-sms-2 ~]# systemctl restart network
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
[root@xz-sms-2 ~]#
[root@xz-sms-2 ~]# nmcli con show
NAME         UUID                                  TYPE      DEVICE 
eth0         5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  --     
[root@xz-sms-2 ~]#
[root@xz-sms-2 ~]# cd /etc/sysconfig/network-scripts/ 
[root@xz-sms-2 network-scripts]# ls | grep ifcfg-et
ifcfg-eth0
ifcfg-eth1
[root@xz-sms-2 network-scripts]# mv ifcfg-eth1 /root
[root@xz-sms-2 network-scripts]# nmcli con show
NAME         UUID                                  TYPE      DEVICE 
eth0         5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
System eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  --     
[root@xz-sms-2 network-scripts]#  nmcli con del 'System eth1'
Connection 'System eth1' (9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04) successfully deleted.
[root@xz-sms-2 network-scripts]# nmcli con show
NAME  UUID                                  TYPE      DEVICE 
eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   

最终调整IP为静态并重启网卡

  • 改为静态呢,一般我们就只改BOOTPROTO为none或static,然后直接加上ip网关掩码3大内容即可,其他的可以不用动,然后重启网络就好了
    做了上面修改,此时重启网卡就不会报错了
[root@xz-sms-2 network-scripts]# cat ifcfg-
ifcfg-eth0  ifcfg-lo    
[root@xz-sms-2 network-scripts]# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none
DEVICE=eth0
HWADDR=FA:16:3E:DF:7B:CF
MTU=1500
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth0
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
IPADDR=1.2.3.48
NETMASK=255.255.255.0
GATEWAY=1.2.3.254
[root@xz-sms-2 network-scripts]# 
[root@xz-sms-2 network-scripts]# systemctl restart network
[root@xz-sms-2 network-scripts]# 
[root@xz-sms-2 network-scripts]# ping 1.2.3.254
PING 1.2.3.254 (1.2.3.254) 56(84) bytes of data.
64 bytes from 1.2.3.254: icmp_seq=1 ttl=254 time=1.55 ms
64 bytes from 1.2.3.254: icmp_seq=2 ttl=254 time=1.47 ms
^C
--- 1.2.3.254 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.470/1.513/1.557/0.058 ms
[root@xz-sms-2 network-scripts]#

生成网卡配置文件信息

  • 我们这是有一批机器嘛,同是centos7.6的系统同一个镜像,但是问题却不重样,真是离谱他妈给离谱开门,离谱到家了。

  • 之前第一个操作系统我只顾着处理问题,没有记录,我这篇文章内容是用的第二台来做的记录,但发现最后这个系统的配置文件又没有消失,但是上面的nmcli信息又会因为重启而自动生成,哎。

  • 反正问题就是: 重启网卡以后【没有报错】,/etc/sysconfig/network-scripts目录里面的ifcfg-eth0这个网卡配置文件没了,但是ip是有的,而且网络也能正常使用,就是单纯的配置文件没了。
    网卡信息没了呢,是不能手动vi给新建一个呢,这样会有问题,必须用命令生成,命令如下

    • 71: 创建一个名称和设备都为eth0的文件信息【eth0用你ifconfig看到的设备名称】
    • 72-74,修改网络为静态ip
    • 75-76:重启网络并测试网络
      在这里插入图片描述
  • 通过上面方式生成的配置文件如下,可以看到前面没有2行注释内容,如果是openstack自动生成的虚拟机,该文件开头是有2行注释信息的。

[root@xz-sms-1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@xz-sms-1 network-scripts]# cat ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=8b7314d9-49de-4db3-b3d8-6178e350dbf9
DEVICE=eth0
ONBOOT=yes
IPADDR=1.2.3.55
NETMASK=255.255.255.0
GATEWAY=1.2.3.254
[root@xz-sms-1 network-scripts]# 

网卡配置文件重启自动还原问题

我这没有遇到这个问题,但如果你遇到了,可以去看我之前写的这篇文章
完美解决linux网卡配置文件重启自动还原问题【如/etc/sysconfig/network-scripts/ifcfg-eth0配置文件重启后信息被还原】

猜你喜欢

转载自blog.csdn.net/cuichongxin/article/details/125008751
今日推荐