Centos7升級內核后無法啟動解決辦法:mpt[23]sas驅動問題


參考鏈接:https://www.cnblogs.com/muahao/p/7610413.html
CentOS 7.6 從內核 3.10.0 升級到 5.3.6后,重啟不了,原因是 Linux 內核 4.4.x 版本之后,dracut 命令生成的 initramfs 默認不會自動加載 mpt3sas 驅動模塊。因為沒有對應的驅動程序,所以識別不了系統盤(兩塊 SAS 系統盤接在 LSI 2308 HBA 卡上,創建 RAID 1),從而導致內核 vmlinuz 無法加載它的 rootfs(根文件系統)。用5.3.6的啟動時出現:
warning: /dev/disk/by-uuid/f0a7318c-da55-4ce4-8653-52fdae118b00 does not exist
starting Dracut Emergency Shell...
warning: /dev/disk/by-uuid/f0a7318c-da55-4ce4-8653-52fdae118b00 does not exist
Generating "/run/initramfs/rdsosreport.txt"
......................................
dracut:/#
解決過程
1. 查詢3.10.0 initramfs的驅動

[root@localhost ~]# lsinitrd -k 3.10.0-957.el7.x86_64 | grep mpt[23]sas
drwxr-xr-x 2 root root 0 Nov 12 19:24 usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/scsi/mpt3sas
-rw-r--r-- 1 root root 92972 Nov 9 2018 usr/lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/scsi/mpt3sas/mpt2sas.ko.xz
[root@localhost ~]#

可以看到在3.10內核的時候是mpt2sas驅動,可以在5.x內核中看到,新版的內核已經把mpt2sas升級為mpt3sas
[root@localhost ~]# ls /usr/lib/modules/5.3.6-1.el7.elrepo.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
/usr/lib/modules/5.3.6-1.el7.elrepo.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
[root@localhost ~]#
查詢5.3.6 initramfs的驅動, 可以看到並沒有輸出,說明initramfs並沒有把這個驅動打進去
[root@localhost ~]# lsinitrd -k 5.3.6-1.el7.elrepo.x86_64 | grep mpt[23]sas

2. 兩種解決方法:
方法1:
1). 修改 /etc/dracut.conf文件,增加字段
sed -i '/#add_drivers+=""/aadd_drivers+="mpt3sas"' /etc/dracut.conf
2)重新生成initramfs
cd /boot/
mv initramfs-5.3.6-1.el7.elrepo.x86_64.img{,.bak}
dracut -f /boot/initramfs-5.3.6-1.el7.elrepo.x86_64.img 5.3.6-1.el7.elrepo.x86_64

方法2:
強制加載驅動
dracut --force --add-drivers mpt3sas --kver=5.3.6

以上方法二選一做下驅動的集成,然后做下面的檢查
lsinitrd -k 5.3.6-1.el7.elrepo.x86_64 | grep mpt[23]sas
如果有輸出就是正常了的, 然后重啟操作系統即可






免責聲明!

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



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