Fork me on GitHub

CentOS内核升级

随着Linux内核不断的更新,原有服务器默认内核版本比较低。业务的不断发展,也不太满足业务的需要了。这就需要我们对服务器的内核进行升级,以下就针对常用的CentOS进行操作

导入public key

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

yum源更新

访问ELRepo.org查看与自己系统匹配的yum源然后安装

RHEL-7, SL-7 or CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

RHEL-6, SL-6 or CentOS-6:

rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm    

安装内核

列出可用的内核相关包:

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

备注:mt为短期支持,lt是长期支持

ml内核(mainline,安装的是最新版的内核),安装命令:

yum --enablerepo=elrepo-kernel install kernel-ml -y 

kernel-lt(lt=long-term),安装命令:

yum --enablerepo=elrepo-kernel install kernel-lt -y

安装头文件

查找头文件版本:

rpm -qa kernel-headers

例如:

[root@localhost ~]# rpm -qa kernel-headers
kernel-headers-3.10.0-693.21.1.el7.x86_64    

卸载老版本的headers,防止冲突

yum -y remove kernel-headers-3.10.0-693.21.1.el7.x86_64

然后安装新的头文件:

yum --enablerepo=elrepo-kernel install kernel-lt-headers -y

设置GRUB默认的内核版本

打开并编辑/etc/default/grub,设置GRUB_DEFAULT=0。意思是GRUB初始化页面的第一个内核将作为默认内核

#默认启动项,按menuentry顺序,从0开始;若要默认从第3个菜单项启动,数字改为2;若改为saved,则默认上次启动项
GRUB_DEFAULT=0
#设置进入默认启动项的等候时间,默认值5秒;若为-1则一直等待
GRUB_TIMEOUT=5
#菜单中的描述名称
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DISABLE_SUBMENU=true
#设置是否使用图形界面。前面有#注释则使用图形界面,无则使用控制台终端
GRUB_TERMINAL_OUTPUT="console"
#手动添加内核启动参数
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
#设定是否创建修复模式菜单项,前面有#注释则建立修复模式,无则不建立修复模式
GRUB_DISABLE_RECOVERY="true"

低版本的centos,需要编辑/etc/grub.conf文件

重新编译内核启动文件:

grub2-mkconfig -o /boot/grub2/grub.cfg

重启之后查看内核

uname -a

删除旧版本的内核

旧内核建议保留一段时间,以防止发生异常。待新内核稳定运行一段时间时候,可以删除。

列出已安装的内核:

rpm -qa | grep kernel

例如:

[root@localhost ~]#  rpm -qa | grep kernel
kernel-lt-4.4.121-1.el7.elrepo.x86_64
kernel-headers-3.10.0-693.21.1.el7.x86_64
kernel-lt-4.4.174-1.el7.elrepo.x86_64

删除内核:

rpm -e kernel-headers-3.10.0-693.21.1.el7.x86_64 kernel-lt-4.4.121-1.el7.elrepo.x86_64
或
yum remove kernel-headers-3.10.0-693.21.1.el7.x86_64 kernel-lt-4.4.121-1.el7.elrepo.x86_64       

备注:
1、导入key时,出现curl: (60) Peer’s Certificate has expired问题

解决方案有两种:
1)更新证书

update-ca-trust

2)更新证书后问题没有解决,查看是否是系统时间过期引起的问题
查看系统时间:

date

同步系统时间:

ntpdate time.apple.com
轻轻的我走了,正如我轻轻的来