CentOS7 升級內核到 4.4 以上版本時重啓沒法進入系統

摘要: CentOS 7.3 從內核 3.10.0 升級到 4.14.40 後,重啓進不了系統,緣由是 Linux 內核 4.4.x 版本以後,dracut 命令生成的 initramfs 默認不會自動加載 mpt3sas 驅動模塊。由於沒有對應的驅動程序,因此識別不了系統盤(兩塊 SAS 系統盤接在 LSI 2308 HBA 卡上,建立 RAID 1),從而致使內核 vmlinuz 沒法加載它的 rootfs(根文件系統)spa

 

1. 現象描述

使用 CentOS-7-x86_64-DVD-1611.iso 原版 ISO 光盤安裝了 CentOS-7.3 後,默認的 Linux內核 版本是 3.10.0-514.el7.x86_64操作系統

下載並安裝如下兩個 RPM 包,將內核升級到 4.14.40code

  • kernel-4.14.40-1.x86_64.rpm
  • kernel-headers-4.14.40-1.x86_64.rpm

重啓系統,等了半天系統沒啓動成功,發現一直卡在進度條。按 ESC 鍵查看詳細信息以下:blog

既然能顯示 GRUB2 的引導菜單(都到進度條了,確定過了引導菜單),說明 MBR 和 GRUB2 沒有問題,那麼問題應該是 initramfs 中沒有系統盤的驅動程序(須要 mpt2sas),致使內核 vmlinuz 沒法加載它的 rootfs(根文件系統)。不能使用 單用戶模式,由於進不去,systemd不可能啓動起來,天然進不了單用戶模式,那隻能使用安裝光盤的 救援模式 了it

2. 問題解決
 
2.1 救援模式

咱們須要利用原版 ISO 光盤所提供的 Rescure a CentOS Linux system(救援模式)來重建 initramfsclass

插入光盤後,設置 Boot Sequence(啓動順序),選擇從光盤啓動:module

選擇 Troubleshooting(故障排除)下載

選擇 Rescure a CentOS Linux systemgrep

輸入數字 1,即選擇 1) Continue程序

按 Enter 回車鍵:

2.2 重建 initramfs
(1) chroot

df 查看目錄,執行命令:chroot /mnt/sysimage (切換根目錄)

查看已安裝的 Linux 內核版本

•使用rpm -qa kernel*或rpm -qa | grep -i kernel命令

•ps:若是前面那個命令後面不加 * 號,是查不到新安裝的內核的

查看默認啓動內核是否更改爲功

•使用grub2-editenv list命令

查詢initramfs的驅動

[root@lab103 lab103]# lsinitrd -k 3.10.0-327.el7.x86_64|grep mpt

drwxr-xr-x 2 root root 0 Apr 17 12:05 usr/lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/scsi/mpt2sas

-rw-r--r-- 1 root root 337793 Nov 20 2015 usr/lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko

能夠在4.x內核中看到能夠看到在3.10內核的時候是mpt2sas驅動

新版的內核已經把mpt2sas升級爲mpt3sas

/lib/modules/4.4.46/kernel/drivers/scsi/mpt3sas/mpt3sas.ko

查詢initramfs內的模塊

lsinitrd -k 4.14.113-1.el7.x86_64|grep mpt3

能夠看到並無輸出,說明initramfs並無把這個驅動打進去

 

(2) add kernel module

這個地方有兩種方式來解決

方法一:

修改 /etc/dracut.conf文件,增長字段

add_drivers+="mpt3sas"

從新生成initramfs,注意後面要加內核的版本號

dracut -f /boot/initramfs-4.14.113-1.el7.x86_64.img 4.14.113-1.el7.x86_64

強制加載驅動方法二:
dracut --force --add-drivers mpt3sas --kver=4.14.113-1.el7.x86_64
lsinitrd -k 4.14.113-1.el7.x86_64|grep mpt3

以上方法二選一作下驅動的集成,而後作下面的檢查

若是有輸出就是正常了的

而後重啓操做系統便可

相關文章
相關標籤/搜索