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(根文件系统)spa

 

1. 现象描述

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

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

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

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

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

2. 问题解决
 
2.1 救援模式

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

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

选择 Troubleshooting(故障排除)下载

选择 Rescure a CentOS Linux systemgrep

输入数字 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

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

若是有输出就是正常了的

而后重启操做系统便可

相关文章
相关标签/搜索