Centos7升級內核后無法啟動解決辦法:mpt[23]sas驅動問題
前言
這個問題存在有一段時間了,之前做的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生成的地方,如果遇到這個問題就按照上面的方法進行處理下即可解決,問題能找到解決辦法后就會發現只是小問題,沒找到的時候,完全不知道問題在哪里