Centos 7 启动时未加载最新内核

Centos 7 启动时未加载最新内核

默认情况下,centos 7 附带的内核版本为 3.10.x。安装centos 7后,我已将内核升级到4.6.x,这是最新的稳定版本。我的系统是远程的。首先,每次内核更新/升级时重新启动对我来说非常昂贵。有什么解决办法吗?其次,如果我重新启动,仍然会加载 3.10.x 版本。哪里有问题 ?

我使用以下命令进行升级

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    yum install http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml
    reboot

答案1

您需要编辑并重建 grub 配置:

sudo grub2-set-default 0
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot

这将确保 grub 从最新安装的内核启动。

答案2

这似乎是最新内核模块更新的常见问题。

CentOS 软件包维护者似乎遗漏或修改了构建步骤初始化文件系统安装新内核后。您将面临无法启动的系统。

解决此问题的步骤是:

  1. 引导至先前的内核版本(在救援模式下)。

  2. 重新运行dracut较新的内核(此步骤会重建初始化文件系统)。

    awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg   # <-- version list
    dracut -f initramfs-{specific version here}.x86_64
    dracut -f initramfs-2.6.32-71.el6.x86_64.img 2.6.32-71.el6.x86_64 # <-- example
    
  3. 重新运行grub2-mkconfig,或者手动编辑grub(此步骤指定初始化文件系统将用于新内核的图像)。

    awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
    grub2-set-default {number} # <-- choose your preferred kernel to startup (0, 1, 2, etc.)
    grub2-set-default 0 # <-- example
    grub2-set-default 1 # <-- example
    
  4. 重启。

找到更详细的说明这里这里

相关内容