[root@server-1 home]# uname -a Linux server-1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
内核版本为3.10
Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
首先导入elrepo的key
[root@server-1 home]# rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
然后安装elrepo的yum源
[root@server-1 home]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 获取http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 获取http://elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm 准备中... ################################# [100%] 正在升级/安装... 1:elrepo-release-7.0-4.el7.elrepo ################################# [100%] [root@server-1 home]#
设置好yum源后,可以查看可用的内核安装包
[root@server-1 home]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 已加载插件:fastestmirror Determining fastest mirrors * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn elrepo-kernel | 2.9 kB 00:00:00 elrepo-kernel/primary_db | 1.9 MB 00:00:01 可安装的软件包 kernel-lt.x86_64 4.4.207-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 4.4.207-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 4.4.207-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 4.4.207-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 4.4.207-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 4.4.207-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 4.4.207-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 5.4.7-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 5.4.7-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 5.4.7-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 5.4.7-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 5.4.7-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 5.4.7-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 5.4.7-1.el7.elrepo elrepo-kernel perf.x86_64 5.4.7-1.el7.elrepo elrepo-kernel python-perf.x86_64 5.4.7-1.el7.elrepo elrepo-kernel [root@server-1 home]#
关于内核版本的定义如下:
版本性质:主分支ml(mainline),稳定版(stable),长期维护版(longterm)
kernel-ml.x86_64为主线版,当前为5.4.7
kernel-lt.x86_64为长期维护版,当前为4.4.207
[root@server-1 home]# yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * elrepo: mirrors.tuna.tsinghua.edu.cn * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 dell-system-update_dependent | 2.3 kB 00:00:00 dell-system-update_independent | 2.3 kB 00:00:00 elrepo | 2.9 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/3): extras/7/x86_64/primary_db | 153 kB 00:00:00 (2/3): elrepo/primary_db | 438 kB 00:00:02 (3/3): updates/7/x86_64/primary_db | 5.9 MB 00:00:02 正在解决依赖关系 --> 正在检查事务 ---> 软件包 kernel-ml.x86_64.0.5.4.7-1.el7.elrepo 将被 安装 ---> 软件包 kernel-ml-devel.x86_64.0.5.4.7-1.el7.elrepo 将被 安装 --> 解决依赖关系完成 依赖关系解决 ============================================================================================================================ Package 架构 版本 源 大小 ============================================================================================================================ 正在安装: kernel-ml x86_64 5.4.7-1.el7.elrepo elrepo-kernel 48 M kernel-ml-devel x86_64 5.4.7-1.el7.elrepo elrepo-kernel 13 M 事务概要 ============================================================================================================================ 安装 2 软件包 总下载量:61 M 安装大小:267 M Downloading packages: (1/2): kernel-ml-devel-5.4.7-1.el7.elrepo.x86_64.rpm | 13 MB 00:00:13 (2/2): kernel-ml-5.4.7-1.el7.elrepo.x86_64.rpm | 48 MB 00:00:33 ---------------------------------------------------------------------------------------------------------------------------- 总计 1.8 MB/s | 61 MB 00:00:33 Running transaction check Running transaction test Transaction test succeeded Running transaction 警告:RPM 数据库已被非 yum 程序修改。 ** 发现 1 个已存在的 RPM 数据库问题, ‘yum check‘ 输出如下: smbios-utils-bin-2.3.3-8.el7.x86_64 有缺少的需求 libsmbios = (‘0‘, ‘2.3.3‘, ‘8.el7‘) 正在安装 : kernel-ml-devel-5.4.7-1.el7.elrepo.x86_64 1/2 正在安装 : kernel-ml-5.4.7-1.el7.elrepo.x86_64 2/2 验证中 : kernel-ml-5.4.7-1.el7.elrepo.x86_64 1/2 验证中 : kernel-ml-devel-5.4.7-1.el7.elrepo.x86_64 2/2 已安装: kernel-ml.x86_64 0:5.4.7-1.el7.elrepo kernel-ml-devel.x86_64 0:5.4.7-1.el7.elrepo 完毕! [root@server-1 home]#
对于一些无法上网的服务器,或者需要安装指定版本内核的需求,我们可以把kernel image的rpm包下载下来安装,下载地址如下:
下载指定版本 kernel: http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=kernel
下载指定版本 kernel-devel:http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=3&dl=40&search=kernel-devel
官方 Centos 6: http://elrepo.org/linux/kernel/el6/x86_64/RPMS/
官方 Centos 7: http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
将rpm包下载上传到服务器上,使用下面的命令安装即可:
# yum -y install kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
# yum -y install kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm
内核升级完毕后,目前内核还是默认的版本,如果此时直接执行reboot命令,重启后使用的内核版本还是默认的3.10,不会使用新的安装的版本,我们可以通过命令查看默认启动顺序:
[root@server-1 ~]# cat /etc/grub2.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.4.7-1.el7.elrepo.x86_64) 7 (Core)‘ --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option ‘gnulinux-3.10.0-957.el7.x86_64-advanced-382d3d45-f099-432a-8323-3b89a19e8e3c‘ { menuentry ‘CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)‘ --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option ‘gnulinux-3.10.0-957.el7.x86_64-advanced-382d3d45-f099-432a-8323-3b89a19e8e3c‘ { menuentry ‘CentOS Linux (0-rescue-06394465633042fba137279e22a218b6) 7 (Core)‘ --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option ‘gnulinux-0-rescue-06394465633042fba137279e22a218b6-advanced-382d3d45-f099-432a-8323-3b89a19e8e3c‘ { [root@server-1 ~]#
可以看到新版本内核在位置0,老版本内核在位置1,我们只需要将内核启动顺序修改为0,就可以使用新版本内核
root@server-1 ~]# vim /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed ‘s, release .*$,,g‘ /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true"
将GRUB_DEFAULT=saved修改为GRUB_DEFAULT=0
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="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true"
接下来运行命令来重新创建内核配置:
[root@server-1 ~]# grub2-mkconfig -o /boot/grub2/gurb.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.4.7-1.el7.elrepo.x86_64 Found initrd image: /boot/initramfs-5.4.7-1.el7.elrepo.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-06394465633042fba137279e22a218b6 Found initrd image: /boot/initramfs-0-rescue-06394465633042fba137279e22a218b6.img done
[root@server-1 ~]# reboot
原文:https://www.cnblogs.com/sky-cheng/p/12146054.html