前言
這個問題存在有一段時間了,之前做的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 |