解决过程如下:
查询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
可以看到在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
查询5.3.6 initramfs的驱动,可以看到并没有输出,说明initramfs并没有把这个驱动打进去。
[root@localhost ~]# lsinitrd -k 5.3.6-1.el7.elrepo.x86_64 | grep mpt[23]sas
解决方法如下:
方法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
如果有输出就是正常了的, 然后重启操作系统即可。