随着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