1.查看自己主机linux版本,主机版本一般在3.10.0以上为好,如果版本过低,建议先升级。
[root@iz2ze82p1dogve7neb5tuoz ~]# uname -r
3.10.0-693.2.2.el7.x86_64
2.CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本
要在 CentOS 7 上启用 ELRepo 仓库,请运行
[root@iz2ze82p1dogve7neb5tuoz ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@iz2ze82p1dogve7neb5tuoz ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:elrepo-release-7.0-3.el7.elrepo ################################# [100%]
[root@iz2ze82p1dogve7neb5tuoz ~]#
3.仓库启用后,你可以使用下面的命令列出可用的内核相关包
[root@iz2ze82p1dogve7neb5tuoz ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
elrepo-kernel | 2.9 kB 00:00:00
elrepo-kernel/primary_db | 1.7 MB 00:00:03
Loading mirror speeds from cached hostfile
* elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Available Packages
kernel-lt.x86_64 4.4.126-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.126-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.126-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.126-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.126-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.126-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.126-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 4.16.0-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
perf.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
python-perf.x86_64 4.16.0-1.el7.elrepo elrepo-kernel
[root@iz2ze82p1dogve7neb5tuoz ~]#
4.安装最新的主线稳定内核
[root@iz2ze82p1dogve7neb5tuoz ~]# yum --enablerepo=elrepo-kernel install kernel-ml
Loaded plugins: fastestmirror
elrepo | 2.9 kB 00:00:00
elrepo/primary_db | 478 kB 00:00:02
Loading mirror speeds from cached hostfile
* elrepo: hkg.mirror.rackspace.com
* elrepo-kernel: hkg.mirror.rackspace.com
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:4.16.0-1.el7.elrepo will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================================================================================
Installing:
kernel-ml x86_64 4.16.0-1.el7.elrepo elrepo-kernel 44 M
Transaction Summary
=================================================================================================================================================================================================================
Install 1 Package
Total download size: 44 M
Installed size: 199 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-4.16.0-1.el7.elrepo.x86_64.rpm | 44 MB 00:00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : kernel-ml-4.16.0-1.el7.elrepo.x86_64 1/1
Verifying : kernel-ml-4.16.0-1.el7.elrepo.x86_64 1/1
Installed:
kernel-ml.x86_64 0:4.16.0-1.el7.elrepo
Complete!
[root@iz2ze82p1dogve7neb5tuoz ~]#
5.重新启动
[root@iz2ze82p1dogve7neb5tuoz ~]# reboot
6.并没有启用新的内核
[root@iz2ze82p1dogve7neb5tuoz ~]# uname -r
3.10.0-693.2.2.el7.x86_64
7.设置 GRUB 默认的内核版本
7.1查看内核版本
[root@iz2ze82p1dogve7neb5tuoz ~]# 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 (4.16.0-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.2.2.el7.x86_64-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {
menuentry 'CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.2.2.el7.x86_64-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {
menuentry 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {
menuentry 'CentOS Linux (0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {
[root@iz2ze82p1dogve7neb5tuoz ~]#
7.2设置默认启动内核
[root@iz2ze82p1dogve7neb5tuoz ~]# grub2-set-default "CentOS Linux (4.16.0-1.el7.elrepo.x86_64) 7 (Core)"
7.3查看设置好的内核
[root@iz2ze82p1dogve7neb5tuoz ~]# grub2-editenv list
saved_entry=CentOS Linux (4.16.0-1.el7.elrepo.x86_64) 7 (Core)
7.4重启查看
[root@iz2ze82p1dogve7neb5tuoz ~]# reboot
[root@iz2ze82p1dogve7neb5tuoz ~]# uname -r
4.16.0-1.el7.elrepo.x86_64
success!