超微服务器,centos7.2系统
接到维修后服务器,开机到设置IP的一个记录:
1. 开机后卡在了一个地方,屏幕一直循环提示如下信息:
INFO: rcu_shed detected stalls on CPUs/tasks: {} (detected by 0, t=600017 jiffies, g=18446744***442, c=***, q=0) INFO: Stall ended before state dump start
咨询之后,是因为linux kernal版本和IPMI FW版本不匹配导致的(不知道具体是神马)。解决办法如下:
在操作系统boot界面,也就是开机时选择启动哪个操作系统的界面,按TAB,然后按e键,进入grub编辑界面,如图
在箭头位置加上 "nomodeset blacklist=ast xdriver=vesa brokenmodules=ast"然后重启顺利进入登陆界面。加上的这段参数好像是禁用显卡的意思。
2. 登录系统后,第一件事就是把上面这段加到grub文件中:
centos7中是/etc/default/grub文件,加在“GRUB_CMDLINE_LINUX”项目内,然后运行grub2-mkconfig -o /boot/grub2/grub.cfg。之后再重启,就没问题了。
3. 接着就是配置ip地址,好远程登陆进行操作。
插上网卡之后遇到了两个问题:a)ifconfig内容与/etc/sysconfig/network-scripts下的文件名不匹配。b)4个千兆网口只有一个在插上网线后会亮灯(其实网口都是好的,就是配置的问题)。
主要还是a)的问题,配置对了,其他的会都正常。
先调查了一下linux网卡命名规则,网上有说修改 /etc/udev/rules.d/70-persistent-net.rules,也有说在grub文件的GRUB_CMDLINE_LINUX中加入“net.ifnames=0”项恢复原始命名规则,但是尝试之后都没成功。(linux网卡命名规则介绍参考 https://blog.csdn.net/maomao5945/article/details/79354204)
回到现实情况,在ifconfig中,4个网口的名字分别是enp59s0f0~enp59s0f3,而在network-scripts目录下则是eno1~eno4。
先查看下b)问题,
先尝试ip addr命令:结果4个网卡都是<BROADCAST,MULTICAST>,之前的经验是如果没插网线,会显示<NO-CARRIER,BROADCAST,MULTICAST>,NO-CARRIER应该表示没接网线。接上网线显示<BROADCAST,MULTICAST,UP,LOWER_UP>。
使用ethtool工具,ethtool -p enp59s0f0,网口正常的情况下,enp59s0f0对应的网卡会亮灯,结果确实也亮了灯,说明网卡网线都是正常的。
把网线接在enp59s0f0对应网口,ethool enp59s0f0查看网口信息,其中speed项显示1000Mb/s,但是Link detected项显示no。
用ifup命令也不成功,所以推测还是文件不匹配原因,回到a):
在/etc/sysconfig/network-scripts目录下,直接把ifcfg-eno1文件重命名为ifcfg-enp59s0f0,然后修改文件内容:
NAME=enp59s0f0 DEVICE=enp59s0f0 UUID=*** ("nmcli con"命令查看) HWADDR=*** (mac地址,用ifconfig或ip addr里的内容填上)
主要的项目如上,其余项目按一般规则填写。
然后尝试ifup enp59s0f0,成功启动,再ifconfig发现出现了IP地址,到这里问题解决。
补充知识:
跟网络有关的主要设置文件如下:
/etc/host.conf :决定本地主机名解析和DNS域名解析的顺序
/etc/hosts :本地主机名解析定义文件,即ip地址和其对应主机名的文件
/etc/resolv.conf :设置DNS服务器
/etc/sysconfig/network:网络全局性的设置文件,设置主机名,默认网关等信息
/etc/sysconfig/network-scripts/ifcfg-ethX:网口ethX的设置信息(默认第一个网口是eth0)
/etc/sysconfig/network-scripts/route-ethX:对应网口ethX的静态路由信息
其中配置了route-eth0文件后,即使重启网络,重启系统,该路由也会自动加载,当然了,如果你没有这样的需要,那么这个文件就没必要创建和配置了。