title: centos Linux内核 升级
date: 2020-03-30 17:46:50
tags: [linux,centos,safe]
category: 运维
简介
软件安全、系统安全大部分通过设计缺陷或公开漏洞进行攻击。
linux kernel 2019年就有296个漏洞,这仅仅是对外公开的,甚至还有不少漏洞未进行公开。
尤其是对外公开的服务器,不打补丁你还认为安全嘛?(云服务器这一类都会进屏蔽)
升级
分为以下几个步骤,个人建议使用root操作以免出现不一致。所有操作必须使用root权限,否则会没有权限进行升级。
本次升级为rpm包方式,减少出错概率。顺便提供脚本一键升级。
- 更新系统软件包
- 下载新版本linux kernel
- 安装新版本内核
- 修改grub
- 检查
1. 更新系统
不建议直接在生产环境操作,请先进行测试。特殊情况下会出现,软件于内核发生冲突,从而导致无法正常引导、开机、软件无法使用。
sudo yum -y install yum-plugin-fastestmirror #这是yum的镜像加速插件,会自动选择速度最快的站点。
sudo yum -y update #更新所有软件包
2. 下载新版本linux kernel
建议使用repo仓库,也可以单独下载rpm文件进行安装。
建议使用稳定版,linux 内核分为三个大版本。
- mainline(主线),简称ml。有新特性,会先增加在此版本内。
- stable(稳定版),在仓库内简称也是ml,稳定版。
- logterm(长期支持),简称lt,长期支持,长期进行维护,具体什么时间不维护,得看官网定义。
这里选择清华大学镜像站 。
PS,清华大学镜像站会默认使用mainline版本,原因是stable的rpm包也叫kernel-ml,yum安装默认最新版本的rpm包。
但是这个问题我看了看kernel官网,mainline也被称之为stable!!!
新增kernel仓库源
baseurl=https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/
cat > /etc/yum.repos.d/kernel.repo << EOF
[kernel]
name=Linux Kernel
baseurl=$baseurl
enabled=1
gpgcheck=0
EOF
cat /etc/yum.repos.d/kernel.repo
3. 安装新版本内核
yum --disablerepo=* --enablerepo=kernel install kernel-ml -y #禁用其他源,只使用kernel源。以免出错
4.修改grub
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg #使用awk命令检查Grub2中所有可用的内核版本。
sudo grub2-set-default 0 #将编号0的内核版本设置为开机默认
sudo grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成grub2 配置
sudo init 6 # 重启
sudo uname -r #重启完成后查看
5.清理旧的内核(可选)
sudo yum install -y yum-utils
sudo package-cleanup --oldkernels