Centos 发行版及内核升级
1. 前言
在实际工作中,时常会遇到换机器或者单纯由于软件对内核版本的要求,需要升级服务器的系统。笔者工作中最常用的Linux发行版是CentOS,所以有时会遇到需要自己升级系统的情况。网上搜到的升级方式比较杂,笔者在这里简单总结一下,可以作为参考。实际操作过程基本是一致的,中间有些涉及到内核中的文件,可能需要对应到自己实际的机器。
2. CentOS发行版升级
这里以centos 7.4 升级到 centos 7.6为例,
2.1 选择镜像站点
打开国内的一个centos镜像站点,点击它站点内的centos目录,然后查看是否有7.6.1810这样一个目录。如下面图中所示(笔者这里采用的是清华开源软件镜像站),
确认存在图中目录后,再点到里面去,确认目录中所有的包已经更新完毕。在CentOS7.6刚发布出来的时候,有的站点点进去,会发现7.6.1810目录创建了,但是里面没有内容。这样的话是没法更新的。像上图就是正常更新的。
2.2 编辑基础源包文件
确认无误后,回到需要升级的主机上,以root身份登陆以后,切换到/etc/yum.repos.d目录下,编辑系统的基础源包文件CentOS-Base.repo,命令是:
1 |
如图,
进去后,笔者的机器上显示如图,
若其中有mirrorlist,注释掉mirrorlist,笔者这里并没有,所以不用注释;然后对baseurl进行修改,改为安装源对应的os目录,接着再将之前设置为不启用的enabled=0改为enabled=1,修改完成后如下图中所示:
2.3 更新
全部修改完成后,保存退出,然后执行更新命令:
1 |
2.4 重启验证
我们耐心等待它下载更新完毕,等所有的包都更新好以后,我们重启系统。等待系统重启完毕后,我们执行命令
1 |
可以看到,Linux发行版已经更新为CentOS 7.6。
3. CentOS 内核升级
Linux 只表示内核。各大 Linux 发行版(RedHat、Ubuntu、CentOS 等)在内核基础上集成了其他的一系列软件,按照各自的版本规则发布。例如 CentOS 7.5 中,通过 uname -r 查看内核版本时,会看到 3.10.0-957.el7.x86_64,表示对应的 Linux 内核版本是 3.10。
3.1 更新仓库
1 | # yum -y update |
-y 选项可以在每次需要确认时,自动使用 yes,节省时间。
3.2 启用ELRepo仓库
ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。
启用 ELRepo 仓库(可能需要root权限):
1 |
3.3 查看可用内核
1 |
笔者运行上述命令,结果如图,
可以看到,有 4.4 和 5.0 两个版本可以使用。
3.4 安装指定内核
1 |
(若要安装5.0,可以选项kernel-ml)
–enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。
3.5 修改内核启动顺序
我们知道,centos 6.x是通过/etc/grub.conf就行内核启动顺序修改的,而且比较直观查看。但centos 7的系统和6就不一样了,是通过grub2为引导程序。下边简单说下centos 7的内核启动顺序如何修改。
3.5.1 查看当前系统有几个内核
1 |
|
3.5.2 设置默认的启动内核
比如我们选择上边中的CentOS Linux (4.4.176-1.el7.elrepo.x86_64) 7 (Core)
1 | # grub2-set-default "CentOS Linux (4.4.176-1.el7.elrepo.x86_64) 7 (Core)" |
3.5.3 验证是否修改成功
1 | # grub2-editenv list |
3.6 重启验证
重启机器后,使用uname -r命令查看内核是否已修改。