zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    shell 学习笔记 LinuxShell脚本攻略(第2版)
    [六省联考2017]分手是祝愿
    [SDOI2010]粟粟的书架
    [CQOI2018]解锁屏幕
    [SCOI2007]最大土地面积
    CF369E Valera and Queries
    CF817F MEX Queries
    [HEOI2016/TJOI2016]求和
    [CQOI2018]九连环
    [HNOI2015]亚瑟王
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575429.html
Copyright © 2011-2022 走看看