Centos7升级内核后无法启动解决办法
前言
这个问题存在有一段时间了,之前做的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 |