[root@zabbix ~]# uname -r
3.10.0-1160.el7.x86_64
[root@zabbix ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
RPM升级
[root@zabbix ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@zabbix ~]# yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
##查看相关可用内核包
[root@zabbix ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: mirror.rackspace.com
elrepo-kernel | 3.0 kB 00:00:00
elrepo-kernel/primary_db | 2.0 MB 00:00:07
Available Packages
kernel-lt.x86_64 5.4.111-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.111-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.111-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.111-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.111-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.111-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.111-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.11.13-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
perf.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.11.13-1.el7.elrepo elrepo-kernel
##安装内核
[root@zabbix ~]# yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64
##查看内核启动顺序,可以看到新内核的顺序是0
[root@zabbix ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.11.13-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b22f92e877fd489bbb31458530a3e8c0) 7 (Core)
##修改内核启动顺序为0
[root@zabbix ~]# vi /etc/default/grub
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
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 spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
##创建内核配置
[root@zabbix ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.11.13-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.11.13-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-b22f92e877fd489bbb31458530a3e8c0
Found initrd image: /boot/initramfs-0-rescue-b22f92e877fd489bbb31458530a3e8c0.img
done
##重启查看变化
[root@zabbix ~]# uname -r
5.11.13-1.el7.elrepo.x86_64
[root@zabbix ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
编译升级
[root@zabbix ~]# yum groupinstall "Development tools"
[root@zabbix ~]# yum install ncurses-devel
[root@zabbix ~]# yum install qt-devel -y
[root@zabbix ~]# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
[root@zabbix src]# wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.13.tar.xz
[root@zabbix src]# xz -d linux-5.11.13.tar.xz
[root@zabbix src]# tar xvf linux-5.11.13.tar
[root@zabbix src]# cd linux-5.11.13
[root@zabbix linux-5.11.13]# make mrproper
[root@zabbix linux-5.11.13]# make clean
[root@zabbix linux-5.11.13]# cp /boot/config-3.10.0-1160.el7.x86_64 .config
[root@zabbix linux-5.11.13]# sh -c 'yes "" | make oldconfig'
[root@zabbix linux-5.11.13]# make bzImage 生成内核文件
报错1:
scripts/sign-file.c:25:30: warning: openssl/opensslv.h: No such file or directory
处理方法:
[root@zabbix linux-5.11.13]# yum install openssl-devel -y
报错2:
CC scripts/mod/empty.o
cc1: error: -Werror=date-time: No option -Wdate-time
make[2]: *** [scripts/mod/empty.o] Error 1
make[1]: *** [prepare0] Error 2
make: *** [__sub-make] Error 2
处理方法:
系统自身gcc版本过低,编译升级新版本(最好是最新的稳定版本)
[root@zabbix linux-5.11.13]# make modules 编译模块
[root@zabbix linux-5.11.13]# make modules_install 安装模块
[root@zabbix linux-5.11.13]# make install 安装
查看系统可用内核
[root@zabbix linux-5.11.13]# cat /boot/grub2/grub.cfg | grep menuentry
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry '
CentOS Linux (5.11.13) 7 (Core)
' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.el7.x86_64-advanced-87575371-746c-4a38-b5f9-ec529a90b9db' {
menuentry 'CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.el7.x86_64-advanced-87575371-746c-4a38-b5f9-ec529a90b9db' {
menuentry 'CentOS Linux (0-rescue-b22f92e877fd489bbb31458530a3e8c0) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-b22f92e877fd489bbb31458530a3e8c0-advanced-87575371-746c-4a38-b5f9-ec529a90b9db' {
修改开机默认使用的内核
[root@zabbix linux-5.11.13]# grub2-set-default 'CentOS Linux (5.11.13) 7 (Core)'
重启查看变化
[root@zabbix ~]# uname -r
5.11.13