最近的测试,需要使用4.x及以上版本的Linux内核,而服务器上的CentOS 7.9还停留在3.x时代。因此,有必要升级下内核版本。本文总结了通过源码安装Linux内核的全过程。
在升级Linux内核前,查看下当前的内核版本
1 | [root@hgs ~]# uname -r |
1.下载内核。从官网下载需要的longterm内核版本:
1 | wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.87.tar.xz |
2.解压缩
1 | tar -xf linux-5.10.87.tar.xz |
3.进入源码目录
1 | cd linux-5.10.87/ |
4.拷贝一份现有的配置到源码目录下
- 确认当前使用的内核项:
1 | [root@hgs linux-5.10.87]# grub2-editenv list |
- 复制对应的配置到源码目录,新的文件名为
.config
1 | cp /boot/config-3.10.0-1160.49.1.el7.x86_64 .config |
5.配置内核
- 安装配置依赖
1 | yum install -y flex bison |
- 配置内核:配置项很多,一直按
Enter
键就好
1 | make oldconfig |
6.安装编译依赖
1 | yum install -y elfutils-libelf-devel openssl-devel |
7.编译
1 | make -j40 |
8.安装模块:把编译好的模块拷贝到系统目录/lib/modules
下
1 | make modules_install |
9.安装内核
1 | make install |
待安装完毕后,在/boot
下生成了对应的内核文件:
1 | [root@hgs linux-5.10.87]# ls /boot | grep 5.10.87 |
此外,在grub的配置文件中,出现了新安装的内核信息:
1 | [root@hgs linux-5.10.87]# cat /boot/grub2/grub.cfg | grep Core |
设置开机默认内核:
1 | grub2-set-default [OPTION] MENU_ENTRY |
其中,MENU_ENTRY
可以是数字、菜单项的标题或者ID。
1 | [root@hgs ~]# awk -F "'" '$1 == "menuentry " {print i++ " : " $2}' /etc/grub2.cfg |
设置启动项:
1 | grub2-set-default 0 |
10.重启系统
1 | reboot |
11.查看内核版本
1 | [root@hgs ~]# uname -r |