Centos7升級內核后無法啟動解決辦法


前言

這個問題存在有一段時間了,之前做的centos7的ISO,在進行內核的升級以后就存在這個問題:

  • 系統盤在板載sata口上是可以正常啟動新內核並且能識別面板硬盤
  • 系統盤插在面板口上新內核無法啟動,調試發現無法找到系統盤
  • 系統盤插在面板上默認的3.10內核可以正常啟動

暫時的解決辦法就是讓系統插在板載的sata口上,因為當時沒找到具體的解決辦法,在這個問題持續了一段時間后,最近再次搜索資料的時候,把問題定位在了initramfs內的驅動的問題,並且對問題進行了解決

解決過程

查詢initramfs的驅動

[root@lab103 lab103]# lsinitrd -k 3.10.0-327.el7.x86_64|grep mpt[23]sas
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

可以看到在3.10內核的時候是mpt2sas驅動

可以在4.x內核中看到
新版的內核已經把mpt2sas升級為mpt3sas

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

查詢initramfs內的模塊

lsinitrd -k  4.4.46|grep mpt[23]sas

可以看到並沒有輸出,說明initramfs並沒有把這個驅動打進去

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

方法一:

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

add_drivers+=" mpt3sas "

注意增加的模塊前后都要加上空格,解析的地方不加空格會解析不到模塊名稱會報錯

重新生成initramfs

dracut -f /boot/initramfs-4.4.46.img 4.4.46

方法二:

強制加載驅動

dracut --force --add-drivers mpt3sas --kver=4.4.46

以上方法二選一做下驅動的集成,然后做下面的檢查

lsinitrd -k  4.4.46|grep mpt[23]sas

如果有輸出就是正常了的

然后重啟操作系統即可

總結

目前出現這個問題的原因不清楚來自內核還是dracut生成的地方,如果遇到這個問題就按照上面的方法進行處理下即可,問題能找到解決辦法后就會發現只是小問題,沒找到的時候,完全不知道問題在哪里

變更記錄

Why Who When
創建 武漢-運維-磨渣 2017-06-01


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM