Linux系统之升级内核版本方法

一、检查本地系统环境

1.检查系统版本

[root@jeven ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"


2.检查系统内核版本

[root@jeven ~]# uname -r 
3.10.0-957.el7.x86_64


二、小版本升级内核

1.列出yum仓库的内核包版本

确保yum仓库的正常,本次实践用的是阿里的镜像源。

[root@jeven yum.repos.d]# yum list kernel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * epel: mirrors.bfsu.edu.cn
Installed Packages
kernel.x86_64                                                              3.10.0-957.el7                                                                    @anaconda
Available Packages
kernel.x86_64                                                              3.10.0-1160.81.1.el7                                                              updates

2.升级内核

直接更新内核版本,此方法适用于更新内核补丁。

[root@jeven yum.repos.d]# yum update -y kernel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                                           | 8.5 kB  00:00:00     
 * epel: mirrors.bfsu.edu.cn
base                                                                                                                                           | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                                               | 3.5 kB  00:00:00     
epel                                                                                                                                           | 4.7 kB  00:00:00     
extras                                                                                                                                         | 2.9 kB  00:00:00     
updates                                                                                                                                        | 2.9 kB  00:00:00     
(1/3): epel/x86_64/updateinfo                                                                                                                  | 1.0 MB  00:00:00     
(2/3): epel/x86_64/primary_db                                                                                                                  | 7.0 MB  00:00:01     
(3/3): updates/7/x86_64/primary_db                                                                                                             |  19 MB  00:00:09     
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-1160.83.1.el7 will be installed
--> Processing Dependency: linux-firmware >= 20190429-72 for package: kernel-3.10.0-1160.83.1.el7.x86_64
--> Running transaction check
---> Package linux-firmware.noarch 0:20180911-69.git85c5d90.el7 will be updated
---> Package linux-firmware.noarch 0:20200421-80.git78c0348.el7_9 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                                 Arch                            Version                                               Repository                        Size
======================================================================================================================================================================
Installing:
 kernel                                  x86_64                          3.10.0-1160.83.1.el7                                  updates                           52 M
Updating for dependencies:
 linux-firmware                          noarch                          20200421-80.git78c0348.el7_9                          updates                           80 M

Transaction Summary
======================================================================================================================================================================
Install  1 Package
Upgrade             ( 1 Dependent package)

Total download size: 132 M
Downloading packages:
No Presto metadata available for updates
(1/2): kernel-3.10.0-1160.83.1.el7.x86_64.rpm                                                                                                  |  52 MB  00:00:31     
(2/2): linux-firmware-20200421-80.git78c0348.el7_9.noarch.rpm                                                                                  |  80 MB  00:00:48     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                 2.7 MB/s | 132 MB  00:00:48     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : linux-firmware-20200421-80.git78c0348.el7_9.noarch                                                                                                 1/3 
  Installing : kernel-3.10.0-1160.83.1.el7.x86_64                                                                                                                 2/3 
  Cleanup    : linux-firmware-20180911-69.git85c5d90.el7.noarch                                                                                                   3/3 
  Verifying  : kernel-3.10.0-1160.83.1.el7.x86_64                                                                                                                 1/3 
  Verifying  : linux-firmware-20200421-80.git78c0348.el7_9.noarch                                                                                                 2/3 
  Verifying  : linux-firmware-20180911-69.git85c5d90.el7.noarch                                                                                                   3/3 

Installed:
  kernel.x86_64 0:3.10.0-1160.83.1.el7                                                                                                                                

Dependency Updated:
  linux-firmware.noarch 0:20200421-80.git78c0348.el7_9                                                                                                                

Complete!



3.重启并检查内核版本

  • 重启服务器
reboot
  • 检查内核版本

重启完成,发现内核版本已经升级为【3.10.0-1160.83.1.el7.x86_64】

[root@jeven ~]# uname -r 
3.10.0-1160.83.1.el7.x86_64


三、大版本升级内核

1.导入公钥

ELRepo是一个为Linux提供驱动程序和内核映像的存储库,这里的内核大版本升级方案就是采用ELRepo提供的内核通道。

[root@jeven ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@jeven ~]#

2.下载并安装elrepo仓库

ELRepo内核下载地址:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/,如果服务器不能联网,可离线下载。

[root@jeven ~]# yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
Loaded plugins: fastestmirror, langpacks
elrepo-release-7.el7.elrepo.noarch.rpm                                                                                                         | 8.7 kB  00:00:00     
Examining /var/tmp/yum-root-RRC6Uo/elrepo-release-7.el7.elrepo.noarch.rpm: elrepo-release-7.0-6.el7.elrepo.noarch
Marking /var/tmp/yum-root-RRC6Uo/elrepo-release-7.el7.elrepo.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package elrepo-release.noarch 0:7.0-6.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                             Arch                        Version                               Repository                                                Size
======================================================================================================================================================================
Installing:
 elrepo-release                      noarch                      7.0-6.el7.elrepo                      /elrepo-release-7.el7.elrepo.noarch                      5.0 k

Transaction Summary
======================================================================================================================================================================
Install  1 Package

Total size: 5.0 k
Installed size: 5.0 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : elrepo-release-7.0-6.el7.elrepo.noarch                                                                                                             1/1 
  Verifying  : elrepo-release-7.0-6.el7.elrepo.noarch                                                                                                             1/1 

Installed:
  elrepo-release.noarch 0:7.0-6.el7.elrepo                                                                                                                            

Complete!

3.载入elrepo-kernel元数据

[root@jeven ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel                                                                                                                                  | 3.0 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                                       | 2.1 MB  00:00:00     
repo id                                                 repo name                                                                                               status
elrepo-kernel                                           ELRepo.org Community Enterprise Linux Kernel Repository - el7                                           34
repolist: 34


4.列出rpm包

列出elrepo-kernel的rpm包

[root@jeven ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Installed Packages
kernel.x86_64                                                                      3.10.0-957.el7                                                        @anaconda    
kernel.x86_64                                                                      3.10.0-1160.83.1.el7                                                  @updates     
kernel-tools.x86_64                                                                3.10.0-957.el7                                                        @anaconda    
kernel-tools-libs.x86_64                                                           3.10.0-957.el7                                                        @anaconda    
Available Packages
kernel-lt.x86_64                                                                   5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-lt-devel.x86_64                                                             5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-lt-doc.noarch                                                               5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-lt-headers.x86_64                                                           5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-lt-tools.x86_64                                                             5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-lt-tools-libs.x86_64                                                        5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                  5.4.230-1.el7.elrepo                                                  elrepo-kernel
kernel-ml.x86_64                                                                   6.1.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-devel.x86_64                                                             6.1.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-doc.noarch                                                               6.1.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-headers.x86_64                                                           6.1.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-tools.x86_64                                                             6.1.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-tools-libs.x86_64                                                        6.1.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                  6.1.8-1.el7.elrepo                                                    elrepo-kerne

5.安装最新版本kernel

[root@jeven ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:6.1.8-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                              Arch                              Version                                        Repository                                Size
======================================================================================================================================================================
Installing:
 kernel-ml                            x86_64                            6.1.8-1.el7.elrepo                             elrepo-kernel                             60 M

Transaction Summary
======================================================================================================================================================================
Install  1 Package

Total download size: 60 M
Installed size: 284 M
Downloading packages:
kernel-ml-6.1.8-1.el7.elrepo.x86_64.rpm                                                                                                        |  60 MB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-6.1.8-1.el7.elrepo.x86_64                                                                                                                1/1 
  Verifying  : kernel-ml-6.1.8-1.el7.elrepo.x86_64                                                                                                                1/1 

Installed:
  kernel-ml.x86_64 0:6.1.8-1.el7.elrepo                                                                                                                               

Complete!


6.查看内核是否载入到grub2

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

[root@jeven ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (6.1.8-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.83.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-626024fee7b34ca3acd67183d6f1ca99) 7 (Core)


7.设置新的内核为grub2的默认版本

  • 通过 grub2-set-default命令设置默认启动版本

[root@jeven ~]# grub2-set-default 0
[root@jeven ~]# 

  • 通过编辑 /etc/default/grub 文件设置默认启动版本
[root@jeven ~]# cat /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"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"


  • 生成 grub 配置文件并重启
[root@jeven ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.1.8-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-6.1.8-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.83.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.83.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-626024fee7b34ca3acd67183d6f1ca99
Found initrd image: /boot/initramfs-0-rescue-626024fee7b34ca3acd67183d6f1ca99.img
done

  • 重启
reboot

8.检查重启后的系统内核版本

重启系统后,发现系统内核已经成功升级。

[root@jeven ~]# uname -r 
6.1.8-1.el7.elrepo.x86_64
  • 17
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 要升级Linux内核版本,可以按照以下步骤进行: 1. 首先确认当前的内核版本。可以在终端中输入以下命令查看: ``` uname -r ``` 2. 然后,在官方网站或其他可靠来源中下载新的内核版本。下载后将其解压缩。 3. 进入解压后的内核源代码目录,运行以下命令: ``` sudo make menuconfig ``` 在这个界面中,可以对内核进行各种配置,如添加或删除模块、启用或禁用功能等。完成配置后,保存并退出。 4. 接下来,在终端中运行以下命令编译内核: ``` sudo make ``` 这个过程可能需要一段时间,视计算机性能而定。 5. 然后,运行以下命令安装内核: ``` sudo make install ``` 6. 最后,更新系统引导程序。如果使用的是GRUB引导程序,可以运行以下命令: ``` sudo update-grub ``` 如果使用的是LILO引导程序,可以运行以下命令: ``` sudo /sbin/lilo -v ``` 完成以上步骤后,重启计算机即可使用新的内核版本。 ### 回答2: Linux操作系统升级内核版本可以有效提高系统性能,增强系统安全性,解决一些系统问题等。以下是升级Linux内核版本的步骤及注意事项。 一、备份数据 升级内核版本前,首先要备份重要数据文件,以防操作过程中出现意外,导致数据损失。 二、下载内核源码 可以从Linux内核官网(https://www.kernel.org/)下载适合当前系统内核源代码,也可以使用包管理器安装相应的内核版本。 三、解压源码 将下载的内核源码文件解压到合适的位置。 四、编译内核 执行make menuconfig命令,进入内核的配置界面,根据实际需求选择或关闭不同的选项。配置完成后,执行make命令编译内核。 五、安装内核 执行make install命令,将编译好的内核安装到系统中。 六、更新引导 内核安装完成后,需要更新系统的引导程序,以便能够启动新内核。可以使用grub2-mkconfig命令重新生成grub.cfg文件,或者手动编辑grub.cfg文件添加新内核的引导项。 七、重启系统 重启系统后,在grub引导界面选择新内核启动即可。 注意事项: 1.升级内核前,要确认系统中已经安装了必要的编译工具和库文件,如gcc、glibc-devel、kernel-devel等。 2.升级内核需谨慎,特别是在生产环境中,应进行充分测试,确保新内核的稳定性和兼容性。 3.在升级内核过程中,要牢记备份重要数据文件,避免操作不当导致数据丢失。 4.升级内核完成后,要及时更新系统中已经安装的驱动程序,以免出现兼容性问题。 总之,升级Linux内核版本需要认真操作,按照步骤进行,并注意以上几点注意事项,才能实现升级的成功。 ### 回答3: 对于Linux系统来说,升级内核版本是非常重要的,因为内核作为操作系统的核心部分,它对系统的性能和稳定性有着至关重要的影响。同时,新版内核也会加入新的功能和修复已知的漏洞,可以提升系统的使用体验和安全性。下面将详细介绍如何在Linux升级内核版本。 1. 查看当前内核版本 在终端中输入以下命令,可以查看当前系统正在使用的内核版本。 uname -r 2. 查看可用内核版本 在终端中输入以下命令,可以查看系统中可用的内核版本。 apt-cache search linux-image 3. 更新软件包列表 在终端中输入以下命令,可以更新软件包列表。 sudo apt-get update 4. 安装新的内核版本 在终端中输入以下命令,可以安装新的内核版本。 sudo apt-get install linux-image-版本号 例如: sudo apt-get install linux-image-4.15.0-71-generic 5. 重启系统 安装成功后,需要重启系统,使新的内核生效。 sudo reboot 6. 验证新的内核版本 重启后,再次输入以下命令,可以查看当前正在使用的内核版本是否已经更新为新的版本。 uname -r 需要注意的是,在升级内核版本之前,需要备份重要的文件和数据,以免出现意外情况导致数据丢失。另外,也要确保新的内核版本系统中其他软件和驱动程序兼容,否则可能会导致系统出现异常或无法启动等问题。因此,建议仔细阅读官方文档或咨询专业人士,再进行内核升级操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值