文章目录

CentOS 6.X是一个比较老的Linux系统了,已经不再维护了,但是目前应该还是有很多公司的服务器在使用它。查了一下国内比较常用的镜像,很多镜像都已经不再有6.X的文件了。截止目前,只有腾讯还在提供6.X的相关文件,说不定哪天也被去掉了。同时随着Docker技术的出现,CentOS 6.X的内核也已经不能满足相应的需求了,此时我们可以选择升级内核而不升级系统。

要想快速升级Linux内核,可以选择直接使用编译好的内核。 有一个ELRepo项目,参见: http://elrepo.org/,以前是支持CentOS 6.X的,但是目前已经不再被支持,所以网上很多的文章的方法为:

一、老式方法:

1、导入公钥:

1rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2、查看是否安装ELRepo项目

1yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

查看是否有可以使用的内核包, 如果出现:

1Loaded plugins: fastestmirror, ref resh-packagekit, security
2Error getting repository data for elrepo-kernel, repository not found

则说明没有安装ELRepo项目。

3、安装ELRepo项目

1rpm -Uvh elrepo-release-6-8.el6.elrepo.noarch.rpm

来安装,已经不可行了。可以在如下路径查看可以使用的版本,目前为6-12

但是即使安装了也会没有可用内核,从上图可以看到所有内核包已经被删除掉了。

二、直接下载内核安装包安装内核:

1、下载并安装

所以我们需要重新找到可使用的新内核。 笔者在网上找到了一个可用内核镜像 http://mirrors.coreix.net/elrepo-archive-archive/kernel/el6/x86_64/RPMS/ 里面有两个版本的内核,一个是lt版本,一个是ml版本:

ELRepo有两种类型的Linux内核包,kernel-lt和kernel-ml。 他们之间有什么区别? kernel-ml(ml=mainline)软件包是根据Linux Kernel Archives的主线稳定分支提供的源构建的。 内核配置基于默认的RHEL配置,并根据需要启用了添加的功能。 这些软件包有意命名为kernel-ml,以免与RHEL内核发生冲突,因此,它们可以与常规内核一起安装和更新。 kernel-lt(lt=long-term)包是从Linux Kernel Archives提供的源代码构建的,就像kernel-ml软件包一样。 不同之处在于kernel-lt基于长期支持分支,而kernel-ml基于主线稳定分支。

这里 笔者选择的是LT版本,目前最新的LT版本如图所示是: kernel-lt-4.4.210-1.el6.elrepo.x86_64.rpm

将之下载下来后,就可以进行安装了:

1rpm -ivh kernel-lt-4.4.210-1.el6.elrepo.x86_64.rpm 

如果没有导入公钥,则会报警告:

1warning: kernel-lt-4.4.210-1.el6.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
2Preparing...                ########################################### [100%]
3   1:kernel-lt              ########################################### [100%]

2、设置Grub默认启用新内核

安装完成后,为了让Grub默认启用新内核,我们需要修改grub.conf,CentOS 6的路径为:

1/etc/grub.conf

CentOS 7的路径为

1/etc/default/grub.conf

在修改之前,我们可以先备份一下:

1cp /etc/grub.conf /etc/grub.conf.bak

然后修改default为新内核的索引,索引从0开始,可以从图中看到新内核为第一个,即索引为0,所以修改为0。

重启系统:

1reboot

就可以愉快地使用新内核了。

启动后,可以使用:

1uname -a

查看到使用的内核版本

祝好!