在线安装的方式升级kernel

安装最新版本的kernel

# 载入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 载入elrepo-kernel元数据
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
# 查看可用的rpm包
yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
# 安装最新版本的kernel
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64

设置grub,然后重启

查看系统上的所有可以内核

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

设置 grub2

1.通过 grub2-set-default 0 命令设置:
其中 0 来自上一步的 awk 命令:

grub2-set-default 0

2. 编辑 /etc/default/grub 文件
设置 GRUB_DEFAULT=0,表示使用上一步的 awk 命令显示的编号为 0 的内核作为默认内核:

# vi /etc/default/grub

> GRUB_TIMEOUT=5
> GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
> GRUB_DEFAULT=0
> GRUB_DISABLE_SUBMENU=true
> GRUB_TERMINAL_OUTPUT="console"

3 生成 grub 配置文件并重启
通过 gurb2-mkconfig 命令创建 grub2 的配置文件,然后重启:

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

验证

通过 uname -r 查看

更新工具包

# 删除旧版本工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
# 安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64

编译的方式升级内核

[root@docker-dev ~]#  yum groupinstall "Development Tools" -y           #安装开发工具包
[root@docker-dev ~]#  yum install -y elfutils-libelf-devel bc openssl-devel ncurses-devel wget ntpdate vim net-tools        #安装常用软件
[root@docker-dev ~]#  ntpdate -u times.aliyun.com      #同步时间,如果时间不对编译可能会出问题
[root@docker-dev ~]#  wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.39.tar.xz       #下载内核
[root@docker-dev ~]#  tar -xf linux-4.9.39.tar.xz -C /usr/src/              #解压内核
[root@docker-dev ~]#  cd /usr/src/linux-4.9.39/
[root@docker-dev linux-4.9.39]# cp /boot/config-3.10.0-514.el7.x86_64 .config
[root@docker-dev linux-4.9.39]# sh -c 'yes "" | make oldconfig'
[root@docker-dev linux-4.9.39]# make -j30 bzImage #测试机是32核,这里用30,尽可能加快编译速度
[root@docker-dev linux-4.9.39]# make -j30 modules
[root@docker-dev linux-4.9.39]# make -j30 modules_install
[root@docker-dev linux-4.9.39]# make install
[root@docker-dev linux-4.9.39]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
[root@docker-dev linux-4.9.39]# grub2-set-default 0 && init 6
[root@docker-dev ~]# uname -a
Linux docker-dev 4.9.39 #1 SMP Mon Jul 24 11:28:25 CST 2017 x86_64 x86_64 x86_64 GNU/Linux

参考资料

内核官网:https://www.kernel.org/

相关术语

  • kernel-ml kernel-ml 中的ml是英文mainline stable的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
  • kernel-lt kernel-lt 中的lt是英文long term support的缩写,elrepo-kernel中罗列出来的长期支持版本。
Copyright © suredandan 2018 all right reserved,powered by GitbookUpdateTime: 2020-04-09 16:42:03

results matching ""

    No results matching ""