Centos内核版本升级
💎关于内核
内核进行的是应用软件和计算机硬件的交互工作
内核进行的是应用软件和计算机硬件的交互工作在计算机科学中,内核(英语:kernel)又称核心,是一个计算机程序,用来管理软件发出的数据I/O(输入与输出)要求,将这些要求转译为数据处理的指令,交由中央处理器(CPU)及计算机中其他电子组件进行处理,是现代操作系统中最基本的部分。
它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。
1、Centos 6.x系统
1.1 安装elrepo
yum update -y
# 导入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装6版本的ELRepo
rpm -Uvh elrepo-release-6-8.el6.elrepo.noarch.rpm
# 安装新版本内核
yum --enablerepo=elrepo-kernel install kernel-lt -y
目前centos6版本中仅提供有kernel-lt 版本内核,最新内核为 4.4.17(截至20190121)
https://elrepo.org/linux/kernel/el6/x86_64/RPMS/
1.2 启用新版本内核
cp /etc/grub.conf{,.bak}
vim /etc/grub.conf
将其中的default修改为0
1.3 修改完成后重启服务器
reboot
2、Centos 7.x系统
2.1 安装elrepo
yum update -y
# 导入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装7.x版本的ELRepo
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 安装新版本内核
yum --enablerepo=elrepo-kernel install kernel-lt -y
目前为cetnos 7.x提供了ml和lt两个版本的内核,可以根据需求进行选择:
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/
2.2 修改grub文件
Centos7.x 内核升级完毕后,需要修改内核的启动顺序:
vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved #把这里的saved改成0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
接下来还需要运行grub2-mkconfig
命令来重新创建内核配置,命令是grub2-mkconfig -o /boot/grub2/grub.cfg
,如下:
grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.17.171-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.17.171-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.2.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.2.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa
Found initrd image: /boot/initramfs-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa.img
done
2.3 修改完成后重启服务器
reboot
2.4 关于两个内核版本的说明
ELRepo有两种类型的Linux内核包,kernel-lt和kernel-ml。 他们之间有什么区别?
kernel-ml软件包是根据Linux Kernel Archives的主线稳定分支提供的源构建的。 内核配置基于默认的RHEL-7配置,并根据需要启用了添加的功能。 这些软件包有意命名为kernel-ml,以免与RHEL-7内核发生冲突,因此,它们可以与常规内核一起安装和更新。
kernel-lt包是从Linux Kernel Archives提供的源代码构建的,就像kernel-ml软件包一样。 不同之处在于kernel-lt基于长期支持分支,而kernel-ml基于主线稳定分支。
安装过程中遇到问题可以参考 https://dwz.cn/vZotLbZD
3、参考文献
http://elrepo.org
https://rorschachchan.github.io/2018/08/25/centos6-5升级最新内核4-18的坑/
https://rorschachchan.github.io/2018/06/11/阿里云centos7升级内核过程/
https://www.admon.org/faqs/kernel-lt-and-kernel-ml/