RPM Install Kernel

过旧的内核可能已不再维护或有安全漏洞等问题,并且部署环境/程序也有不兼容的情况

PS:更新内核是有风险的,在操作之前慎重,严谨在生产环境上操作

1)到 ELREPO 下载自身需要的 RPM 包

实际生产环境一般需要指定内核版本,并且无法联网安装,这时需提前下载 RPM 包 进行安装

$ wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-6.1.11-1.el7.elrepo.x86_64.rpm
$ wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.1.11-1.el7.elrepo.x86_64.rpm

如上述下载较慢可选择 清华大学 rpm 源 下载所需的内核升级 rpm 包,一般下载 kernel-ml 和 kernel-ml-devel 即可

$ wget https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-6.1.11-1.el7.elrepo.x86_64.rpm --no-check-certificate
$ wget https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.1.11-1.el7.elrepo.x86_64.rpm --no-check-certificate

2)下载后直接加载安装

$ ls -al
-rw-r--r--.  1 root root 62903796 Feb  9 20:05 kernel-ml-6.1.11-1.el7.elrepo.x86_64.rpm
-rw-r--r--.  1 root root 15052848 Feb  9 20:05 kernel-ml-devel-6.1.11-1.el7.elrepo.x86_64.rpm

$ rpm -ivh kernel-ml-6.1.11-1.el7.elrepo.x86_64.rpm kernel-ml-devel-6.1.11-1.el7.elrepo.x86_64.rpm --nodeps --force
warning: kernel-ml-6.1.11-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA256 Signature, key ID baadae52: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:kernel-ml-devel-6.1.11-1.el7.elre################################# [ 50%]
   2:kernel-ml-6.1.11-1.el7.elrepo    ################################# [100%]

3)配置内核,查看现有内核版本

1
2
3
4
$ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (6.1.11-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-5ad1beefc86b458a8e9b19dd5a4cbca9) 7 (Core)

如果提示如下错误可执行下面语句进行修复,没则请跳过

1
2
3
awk: fatal: cannot open file `/etc/grub2.cfg' for reading (No such file or directory)
# 执行下述语句进行修复
$ grub2-mkconfig -o /boot/grub2/grub.cfg

4)将序号 0 的设置为密码的启动项并重新加载、重启服务器

$ grub2-set-default 0
$ grub2-mkconfig -o /boot/grub2/grub.cfg && reboot now

5)卸载旧内核,非必要,可自行选择

$ rpm -qa | grep kernel
$ yum -y remove $(rpm -qa | grep kernel | grep '3')

内核相关包说明

  • kernel-lt [The Linux kernel. (The core of any Linux-based operating system.)]
  • 最核心的包,所有Linux系统的基础
  • kernel-lt-devel [Development package for building kernel modules to match the kernel.]
  • 内核开发包,更多是提供给内核开发人员开发内核的一些功能模块
  • kernel-lt-doc [Various bits of documentation found in the kernel sources.]
  • 内核包的指引文档
  • kernel-lt-headers [Header files of the kernel, for use by glibc.]
  • 内核的头文件,一般其他应用需要调用内核能力就要引入这些头文件
  • kernel-lt-tools [Assortment of tools for the kernel.]
  • 内核级别的一些工具
  • kernel-lt-tools-libs [Libraries for the kernel tools.]
  • 内核级别工具所依赖的包
  • kernel-lt-tools-libs-devel [Development package for the kernel tools libraries.]
  • 内核级别工具开发所需的依赖包