提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、查看当前Linux内核版本
- 二、升级前的准备——更新仓库
- 三、启用 ELRepo 仓库:
- 四、查看可用的系统内核包
- 五、我们选择安装最新内核
- 六、设置 grub2
- 查看系统上的所有可以内核
- 设置 grub2
- 七、生成 grub 配置文件并重启
- 八、重启后检验升级情况
- 九、删除旧的Linux内核(可选)
- 十、总结
前言
由于低版本的Linux内核可能与一些比较新的根据不兼容,所以需要升级。
以下是升级Linux内核的步骤,使用的虚拟机是centos7,仅供参考!
一、查看当前Linux内核版本
uname -r
参数:
-a, –all: 按照下面的顺序打印所有信息,如果 -p 和 -i 未知时排除掉。
-s, –kernel-name: 打印内核名字,一般就是 Linux。
-n, –nodename: 打印网络节点的主机名。
-r, –kernel-release: 打印内核发行版的版本。常用。3.10.0-514.26.2.el7.x86_64
-v, –kernel-version: 打印内核的版本。#1 SMP Tue Jul 4 15:04:05 UTC 2017
-m, –machine: 打印机器硬件名。
-p, –processor: 打印处理器名字或“unknown”。
-i, –hardware-platform: 打印硬件平台或“unknown”。
-o, –operating-system: 打印操作系统。
–help: 显示这个帮助并退出。
–version: 显示这版本信息并退出。
二、升级前的准备——更新仓库
yum -y update
-y:默认选yes,减少重复操作。
三、启用 ELRepo 仓库:
ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。
ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@localhost ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:elrepo-release-7.0-4.el7.elrepo ################################# [100%]
四、查看可用的系统内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
可以发现,有5.4版本和6.3版本,可供选择:
[root@localhost ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
elrepo-kernel | 3.0 kB 00:00:00
elrepo-kernel/primary_db | 2.1 MB 00:00:00
Available Packages
elrepo-release.noarch 7.0-6.el7.elrepo elrepo-kernel
kernel-lt.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.242-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 6.3.1-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 6.3.1-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 6.3.1-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 6.3.1-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 6.3.1-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 6.3.1-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 6.3.1-1.el7.elrepo elrepo-kernel
perf.x86_64 5.4.242-1.el7.elrepo elrepo-kernel
python-perf.x86_64
五、我们选择安装最新内核
yum --enablerepo=elrepo-kernel install kernel-ml
–enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo ,这里用 elrepo-kernel 替换。
ps:安装过程中出现选项,默认选yes即可。
安装完成:
六、设置 grub2
内核安装好后,需要设置为默认启动选项并重启后才会生效
查看系统上的所有可以内核
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
设置 grub2
机器上存在 4 个内核,我们要使用 6.3.1 这个版本,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置。
[root@localhost ~]# sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (6.3.1-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.90.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-8de58ed1c51640c69d645d424c2c9945) 7 (Core)
[root@localhost ~]#
通过 grub2-set-default 0 命令设置
其中 0 来自上一步的 awk 命令
sudo grub2-set-default 0
七、生成 grub 配置文件并重启
通过 gurb2-mkconfig 命令创建 grub2 的配置文件,然后重启
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
运行结果
[root@localhost ~]# sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.3.1-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-6.3.1-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.90.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.90.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-8de58ed1c51640c69d645d424c2c9945
Found initrd image: /boot/initramfs-0-rescue-8de58ed1c51640c69d645d424c2c9945.img
done
八、重启后检验升级情况
[root@localhost ~]# uname -r
6.3.1-1.el7.elrepo.x86_64
ps: 我第一次重启是不成功的,再重启一次就正常启动了,不过启动速度慢一些。
九、删除旧的Linux内核(可选)
通过 yum remove
命令
[root@localhost ~]# rpm -qa | grep kernel
kernel-ml-6.3.1-1.el7.elrepo.x86_64
kernel-3.10.0-327.el7.x86_64
kernel-headers-3.10.0-1160.90.1.el7.x86_64
kernel-3.10.0-1160.90.1.el7.x86_64
kernel-tools-3.10.0-1160.90.1.el7.x86_64
kernel-devel-3.10.0-327.el7.x86_64
kernel-tools-libs-3.10.0-1160.90.1.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-devel-3.10.0-1160.90.1.el7.x86_64
十、总结
希望有所帮助,节省学习时间!