centos系统升级内核后无法启动怎么办

解决过程如下:

查询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

(推荐教程:centos使用教程)

查询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

如果有输出就是正常了的, 然后重启操作系统即可。

相关视频教程推荐:linux视频教程