CentOS7 升级内核到 4.4 以上版本时重启无法进入系统

摘要: CentOS 7.3 从内核 3.10.0 升级到 4.14.40 后,重启进不了系统,原因是 Linux 内核 4.4.x 版本之后,dracut 命令生成的 initramfs 默认不会自动加载 mpt3sas 驱动模块。因为没有对应的驱动程序,所以识别不了系统盘(两块 SAS 系统盘接在 LSI 2308 HBA 卡上,创建 RAID 1),从而导致内核 vmlinuz 无法加载它的 rootfs(根文件系统)

 

1. 现象描述

使用 CentOS-7-x86_64-DVD-1611.iso 原版 ISO 光盘安装了 CentOS-7.3 后,默认的 Linux内核 版本是 3.10.0-514.el7.x86_64

下载并安装以下两个 RPM 包,将内核升级到 4.14.40

  • kernel-4.14.40-1.x86_64.rpm
  • kernel-headers-4.14.40-1.x86_64.rpm

重启系统,等了半天系统没启动成功,发现一直卡在进度条。按 ESC 键查看详细信息如下:

既然能显示 GRUB2 的引导菜单(都到进度条了,肯定过了引导菜单),说明 MBR 和 GRUB2 没有问题,那么问题应该是 initramfs 中没有系统盘的驱动程序(需要 mpt2sas),导致内核 vmlinuz 无法加载它的 rootfs(根文件系统)。不能使用 单用户模式,因为进不去,systemd不可能启动起来,自然进不了单用户模式,那只能使用安装光盘的 救援模式 了

2. 问题解决
 
2.1 救援模式

我们需要利用原版 ISO 光盘所提供的 Rescure a CentOS Linux system(救援模式)来重建 initramfs

插入光盘后,设置 Boot Sequence(启动顺序),选择从光盘启动:

选择 Troubleshooting(故障排除)

选择 Rescure a CentOS Linux system

输入数字 1,即选择 1) Continue

按 Enter 回车键:

2.2 重建 initramfs
(1) chroot

df 查看目录,执行命令:chroot /mnt/sysimage (切换根目录)

查看已安装的 Linux 内核版本

•使用rpm -qa kernel*或rpm -qa | grep -i kernel命令

•ps:如果前面那个命令后面不加 * 号,是查不到新安装的内核的

查看默认启动内核是否更改成功

•使用grub2-editenv list命令

查询initramfs的驱动

[root@lab103 lab103]# lsinitrd -k 3.10.0-327.el7.x86_64|grep mpt

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

可以在4.x内核中看到可以看到在3.10内核的时候是mpt2sas驱动

新版的内核已经把mpt2sas升级为mpt3sas

/lib/modules/4.4.46/kernel/drivers/scsi/mpt3sas/mpt3sas.ko

查询initramfs内的模块

lsinitrd -k 4.14.113-1.el7.x86_64|grep mpt3

可以看到并没有输出,说明initramfs并没有把这个驱动打进去

 

(2) add kernel module

这个地方有两种方式来解决

方法一:

修改 /etc/dracut.conf文件,增加字段

add_drivers+="mpt3sas"

重新生成initramfs,注意后面要加内核的版本号

dracut -f /boot/initramfs-4.14.113-1.el7.x86_64.img 4.14.113-1.el7.x86_64

强制加载驱动方法二:
dracut --force --add-drivers mpt3sas --kver=4.14.113-1.el7.x86_64
lsinitrd -k 4.14.113-1.el7.x86_64|grep mpt3

以上方法二选一做下驱动的集成,然后做下面的检查

如果有输出就是正常了的

然后重启操作系统即可

原文地址:https://www.cnblogs.com/xzy186/p/15135919.html