步骤 1:检查已安装的内核版本
让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:
1 2
| Linux 3.10.0-862.2.3.el7.x86_64
|
步骤 2:在 CentOS 7 中升级内核
大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。
但是,这只会升级内核到仓库中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。
与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。
要在 CentOS 7 上启用 ELRepo 仓库,请运行:
1 2
| [root@localhost ~] [root@localhost ~]
|
另一篇上说用这个:
需要确认,但是我用上面一个是OK的。
仓库启用后,你可以使用下面的命令列出可用的内核相关包:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [root@localhost ~] 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * elrepo-kernel: hkg.mirror.rackspace.com 可安装的软件包 kernel-lt.x86_64 4.4.174-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 4.4.174-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 4.4.174-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 4.4.174-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 4.4.174-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 4.4.174-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 4.4.174-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 4.20.10-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 4.20.10-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 4.20.10-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 4.20.10-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 4.20.10-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 4.20.10-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 4.20.10-1.el7.elrepo elrepo-kernel perf.x86_64 4.20.10-1.el7.elrepo elrepo-kernel python-perf.x86_64 4.20.10-1.el7.elrepo elrepo-kernel
|
- lt : long term support
- ml : mainline stable
主线稳定版本:
1
| kernel-ml.x86_64 4.20.10-1.el7.elrepo elrepo-kernel
|
接下来,安装最新的主线稳定内核:
最后,重启机器并应用最新内核,接着运行下面的命令检查最新内核版本:
1 2
| [root@localhost ~] Linux 4.20.10-1.el7.elrepo.x86_64
|
步骤 3:设置 GRUB 默认的内核版本
为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:
打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。
意思是 GRUB 初始化页面的第一个内核将作为默认内核。
1 2 3 4 5 6 7
| 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 rhgb quiet nouveau.modeset=0" GRUB_DISABLE_RECOVERY="true"
|
接下来运行下面的命令来重新创建内核配置。
- 普通MBR引导模式
- UEFI引导模式
重启并验证最新的内核已作为默认内核。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| [root@localhost ~] Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * elrepo: elrepo.org * elrepo-kernel: elrepo.org * epel: ftp.jaist.ac.jp * epel-debuginfo: ftp.tsukuba.wide.ad.jp * epel-source: ftp.jaist.ac.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Resolving Dependencies --> Running transaction check ---> Package kernel-headers.x86_64 0:3.10.0-693.17.1.el7 will be erased ---> Package kernel-ml-headers.x86_64 0:4.20.10-1.el7.elrepo will be installed --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel-ml-headers x86_64 4.20.10-1.el7.elrepo elrepo-kernel 1.2 M Removing: kernel-headers x86_64 3.10.0-693.17.1.el7 @updates 3.5 M
Transaction Summary ================================================================================ Install 1 Package Remove 1 Package
Total download size: 1.2 M Downloading packages: kernel-ml-headers-4.20.10-1.el7.elrepo.x86_64.rpm | 1.2 MB 00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : kernel-ml-headers-4.20.10-1.el7.elrepo.x86_64 1/2 Erasing : kernel-headers-3.10.0-693.17.1.el7.x86_64 2/2 Verifying : kernel-ml-headers-4.20.10-1.el7.elrepo.x86_64 1/2 Verifying : kernel-headers-3.10.0-693.17.1.el7.x86_64 2/2
Removed: kernel-headers.x86_64 0:3.10.0-693.17.1.el7
Installed: kernel-ml-headers.x86_64 0:4.20.10-1.el7.elrepo
Complete!
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| [root@localhost ~]
Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * elrepo: elrepo.org * elrepo-kernel: elrepo.org * epel: ftp.jaist.ac.jp * epel-debuginfo: ftp.tsukuba.wide.ad.jp * epel-source: ftp.jaist.ac.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Resolving Dependencies --> Running transaction check ---> Package kernel-ml-tools-libs.x86_64 0:4.20.10-1.el7.elrepo will be installed ---> Package kernel-tools-libs.x86_64 0:3.10.0-693.17.1.el7 will be erased --> Processing Dependency: kernel-tools-libs = 3.10.0-693.17.1.el7 for package: kernel-tools-3.10.0-693.17.1.el7.x86_64 --> Running transaction check ---> Package kernel-tools.x86_64 0:3.10.0-693.17.1.el7 will be erased --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel-ml-tools-libs x86_64 4.20.10-1.el7.elrepo elrepo-kernel 58 k Removing: kernel-tools-libs x86_64 3.10.0-693.17.1.el7 @updates 18 k Removing for dependencies: kernel-tools x86_64 3.10.0-693.17.1.el7 @updates 259 k
Transaction Summary ================================================================================ Install 1 Package Remove 1 Package (+1 Dependent package)
Total download size: 58 k Downloading packages: kernel-ml-tools-libs-4.20.10-1.el7.elrepo.x86_64.rpm | 58 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : kernel-ml-tools-libs-4.20.10-1.el7.elrepo.x86_64 1/3 Erasing : kernel-tools-3.10.0-693.17.1.el7.x86_64 2/3 Erasing : kernel-tools-libs-3.10.0-693.17.1.el7.x86_64 3/3 Verifying : kernel-ml-tools-libs-4.20.10-1.el7.elrepo.x86_64 1/3 Verifying : kernel-tools-libs-3.10.0-693.17.1.el7.x86_64 2/3 Verifying : kernel-tools-3.10.0-693.17.1.el7.x86_64 3/3
Removed: kernel-tools-libs.x86_64 0:3.10.0-693.17.1.el7
Dependency Removed: kernel-tools.x86_64 0:3.10.0-693.17.1.el7
Installed: kernel-ml-tools-libs.x86_64 0:4.20.10-1.el7.elrepo
Complete!
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| [root@localhost ~] Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * elrepo: elrepo.org * elrepo-kernel: elrepo.org * epel: ftp.jaist.ac.jp * epel-debuginfo: ftp.tsukuba.wide.ad.jp * epel-source: ftp.jaist.ac.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Resolving Dependencies --> Running transaction check ---> Package kernel-ml-tools.x86_64 0:4.20.10-1.el7.elrepo will be installed --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel-ml-tools x86_64 4.20.10-1.el7.elrepo elrepo-kernel 152 k
Transaction Summary ================================================================================ Install 1 Package
Total download size: 152 k Installed size: 350 k Downloading packages: kernel-ml-tools-4.20.10-1.el7.elrepo.x86_64.rpm | 152 kB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : kernel-ml-tools-4.20.10-1.el7.elrepo.x86_64 1/1 Verifying : kernel-ml-tools-4.20.10-1.el7.elrepo.x86_64 1/1
Installed: kernel-ml-tools.x86_64 0:4.20.10-1.el7.elrepo
Complete!
|
步骤7:交换老旧版本kernel-devel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| [root@localhost ~] Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * elrepo: elrepo.org * elrepo-kernel: elrepo.org * epel: ftp.jaist.ac.jp * epel-debuginfo: ftp.tsukuba.wide.ad.jp * epel-source: ftp.jaist.ac.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp Resolving Dependencies --> Running transaction check ---> Package kernel-devel.x86_64 0:3.10.0-693.17.1.el7 will be erased ---> Package kernel-ml-devel.x86_64 0:4.20.10-1.el7.elrepo will be installed --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel-ml-devel x86_64 4.20.10-1.el7.elrepo elrepo-kernel 12 M Removing: kernel-devel x86_64 3.10.0-693.17.1.el7 @updates 36 M
Transaction Summary ================================================================================ Install 1 Package Remove 1 Package
Total download size: 12 M Downloading packages: kernel-ml-devel-4.20.10-1.el7.elrepo.x86_64.rpm | 12 MB 00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : kernel-ml-devel-4.20.10-1.el7.elrepo.x86_64 1/2 Erasing : kernel-devel-3.10.0-693.17.1.el7.x86_64 2/2 Verifying : kernel-ml-devel-4.20.10-1.el7.elrepo.x86_64 1/2 Verifying : kernel-devel-3.10.0-693.17.1.el7.x86_64 2/2
Removed: kernel-devel.x86_64 0:3.10.0-693.17.1.el7
Installed: kernel-ml-devel.x86_64 0:4.20.10-1.el7.elrepo
Complete!
|
步骤8:删除老版本kernel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| [root@localhost ~]
Loaded plugins: fastestmirror, langpacks Resolving Dependencies --> Running transaction check ---> Package kernel.x86_64 0:3.10.0-693.17.1.el7 will be erased --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Removing: kernel x86_64 3.10.0-693.17.1.el7 @updates 59 M
Transaction Summary ================================================================================ Remove 1 Package
Installed size: 59 M Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : kernel-3.10.0-693.17.1.el7.x86_64 1/1 Verifying : kernel-3.10.0-693.17.1.el7.x86_64 1/1
Removed: kernel.x86_64 0:3.10.0-693.17.1.el7
Complete!
|
至此,内核和相关的文件基本上都升级完成。
参考
- 如何在 CentOS 7 中安装或升级最新的内核
- How to install kernel 4.x on CentOS 7.x