查看当前内核版本

uname -r

启用ELRepo仓库

引入仓库

ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。
ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org (external link)
yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm (external link)

查看可用的系统内核包

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Mainline:Mainline 主线树由 Linus Torvalds 维护。这个版本的内核会引入所有新功能。新的 Mainline 内核每 2-3 个月发布一次。
Longterm:通常会提供几个“longterm maintenance”内核版本,用于修复旧版内核的 BUG。这些内核只会修复重大 BUG,并且不会频繁发布版本。

安装新内核

yum --enablerepo=elrepo-kernel install kernel-lt

--enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。

设置 grub2

查看系统上的所有可以内核

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

设置grub2

要使用新版本内核,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置

  1. 通过 grub2-set-default 0 命令设置
    其中 0 来自上一步的 awk 命令:
    grub2-set-default 0
  2. 编辑 /etc/default/grub 文件
    设置 GRUB_DEFAULT=0,表示使用上一步的 awk 命令显示的编号为 0 的内核作为默认内核:
vi /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5"
GRUB_DISABLE_RECOVERY="true"
GRUB_TERMINAL="serial console"
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

重启生效

reboot
uname -r