目录
1、使用场景
2、离线升级实现步骤说明
2.1、原始操作系统环境
2.2、系统内核下载网址
3、成果展现3.1、先查看系统环境
4、离线升级系统内核
4.1、更新yum源仓库
4.2、选择下载离线升级对应的版本,选择标准和要求如下描述
4.3、升级内核包
5、删除多余无用内核教程,释放/boot分区空间
6、参考文章
最近需要安装K8S集群环境,因为最新版本的K8S需要对操作系统内核有要求,必须升级到5.x版本,若服务器能便捷访问外网,可使用在线升级内核方式。但是我部署的服务器访问外网很是不便捷只能考虑离线升级内核方式。于是有这篇文章形成。主要记录下来,为后续操作能够可以参考。主要原因是 CentOS系统简洁稳定,但是系统内核版本低,有的软件要求的系统内核版本高,此时升级系统内核即可满足要求!
服务器版本 | 系统内核版本 | CPU架构 |
---|---|---|
CentOS Linux release 7.6.1708 (Core) | 3.10.0-693.el7.x86_64 | x86_64 |
centos 系统内核可到如下两个镜像源下载:
1.清华大学开源软件镜像站:
2.elrepo镜像站:
查看操作系统版本
[root@VM_0_8_centos ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
查看操作系统内核版本
[root@VM_0_8_centos ~]# uname -r
3.10.0-957.21.3.el7.x86_64
yum -y update
内核包下载好,kernel-ml代表主线版本,总是保持主线最新的内核,kernel-lt代表长期支持版本,支持周期更长,如果你要追求最新的版本,直接选择带ml的rpm包即可,如果你要追求稳定且更长的支持周期,直接选择lt版本即可。
我选择使用的是
kernel-lt-5.4.214-1.el7.elrepo.x86_64.rpm
kernel-lt-devel-5.4.214-1.el7.elrepo.x86_64.rpm
首先吧下载文件上传到待升级内核的机器上,然后执行升级操作
执行升级命令:rpm -ivh kernel-lt-5.4.214-1.el7.elrepo.x86_64.rpm
内核升级完毕后,需要我们修改内核的启动顺序,默认启动的顺序应该为1,升级以后内核是往前面插入为0,设置GRUB_DEFAULT=0。一般新安装的内核在第一个位置,所以设置default=0,意思是 GRUB 初始化页面的第一个内核将作为默认内核。
默认的grub文件,GRUB_DEFAULT=saved
[root@VM_0_8_centos ~]# uname -r
3.10.0-957.21.3.el7.x86_64
[root@VM_0_8_centos ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@VM_0_8_centos ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0 console=tty0 panic=5 net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"
使 GRUB_DEFAULT=0
vim /etc/default/grub
查看所有的内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
重新生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启并查看内核版本
reboot
可以看到内核升级成功
uname -r
因为目前只使用CentOS 7 x64系统,所以本教程将仅适用于CentOS 7 x64系统,不保证在CentOS 8等系统上的效果。
另外卸载系统内核属于危险操作,可能导致VPS无法启动,非必要请勿进行此项操作,也不建议在生产环境下进行此项操作。
首先分享下自动化的方法,命令少,操作少,方便快捷。
1. 执行以下命令可以自动获取当前系统中的无用内核(未使用的)并进入卸载
yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))
2. 执行上面命令后,会有卸载确认操作。确认下卸载内核列表中没有当前正在使用的内核,然后输入y
确认卸载即可。
3. 卸载完毕后,可以执行以下命令查看下/boot分区的占用情况
df -h /boot
centos7 离线升级/在线升级操作系统内核
CentOS7删除多余无用内核教程,释放/boot分区空间