超微服務器,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文件后,即使重啟網絡,重啟系統,該路由也會自動加載,當然了,如果你沒有這樣的需要,那么這個文件就沒必要創建和配置了。