Blogger Information
Blog 291
fans 0
comment 0
visits 352602
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
centos7 离线升级/在线升级操作系统内核
Original
815 people have browsed it

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

一.前言

CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。

CentOS系统简洁稳定,但是系统内核版本低,有的软件要求的系统内核版本高,此时升级系统内核即可满足要求!

本文分别介绍离线升级系统内核和在线升级系统内核的方法。另外除了离线升级系统内核和在线升级系统内核,还可以从https://www.kernel.org/ 官网下载指定内核源码并进行编译升级,但是此步骤较为繁琐,在此忽略。

二.系统环境

file

三.系统内核下载网址

centos 系统内核可以去如下两个网站下载:
1.阿里云开源软件镜像站:https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/

file

2.elrepo镜像站:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/

file

四.centos7离线升级系统内核

1.先查看系统环境

查看操作系统版本

  1. [root@etcd2 ~]# cat /etc/redhat-release
  2. CentOS Linux release 7.4.1708 (Core)

查看系统内核

  1. [root@etcd2 ~]# uname -r
  2. 3.10.0-693.el7.x86_64

2.离线升级系统内核

更新yum源仓库

  1. [root@etcd2 ~]# yum -y update

启用 ELRepo 仓库,ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。

导入ELRepo仓库的公共密钥

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

安装ELRepo仓库的yum源

  1. [root@etcd2 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

从elrepo下载系统内核包,如果不导入ELRepo仓库的公共密钥和安装ELRepo仓库的yum源,是下载不了内核包的

  1. [root@etcd2 ~]# wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.160-1.el7.elrepo.x86_64.rpm

阿里云的这个镜像站可以直接下载

  1. [root@etcd2 ~]# wget https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-5.4.197-1.el7.elrepo.x86_64.rpm --no-check-certificate

内核包下载好,kernel-ml代表主线版本,总是保持主线最新的内核,kernel-lt代表长期支持版本,支持周期更长,如果你要追求最新的版本,直接选择带ml的rpm包即可,如果你要追求稳定且更长的支持周期,直接选择lt版本即可。

  1. [root@etcd2 ~]# ll -h kernel-lt-5.4.197-1.el7.elrepo.x86_64.rpm*
  2. -rw-r--r-- 1 root root 51M 6 5 19:47 kernel-lt-5.4.197-1.el7.elrepo.x86_64.rpm

安装内核包

  1. [root@etcd2 ~]# rpm -ivh kernel-lt-5.4.197-1.el7.elrepo.x86_64.rpm
  2. 警告:kernel-lt-5.4.197-1.el7.elrepo.x86_64.rpm: V4 DSA/SHA256 Signature, 密钥 ID baadae52: NOKEY
  3. 准备中... ################################# [100%]
  4. 正在升级/安装...
  5. 1:kernel-lt-5.4.197-1.el7.elrepo ################################# [100%]

内核升级完毕后,需要我们修改内核的启动顺序,默认启动的顺序应该为1,升级以后内核是往前面插入为0,设置GRUB_DEFAULT=0。一般新安装的内核在第一个位置,所以设置default=0,意思是 GRUB 初始化页面的第一个内核将作为默认内核。

默认的grub文件,GRUB_DEFAULT=saved

  1. [root@etcd2 ~]# cat /etc/default/grub
  2. GRUB_TIMEOUT=5
  3. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
  4. GRUB_DEFAULT=saved
  5. GRUB_DISABLE_SUBMENU=true
  6. GRUB_TERMINAL_OUTPUT="gfxterm"
  7. GRUB_CMDLINE_LINUX="rhgb quiet nomodeset"
  8. GRUB_DISABLE_RECOVERY="true"

使 GRUB_DEFAULT=0

  1. [root@etcd2 ~]# vim /etc/default/grub
  2. [root@etcd2 ~]# cat /etc/default/grub
  3. GRUB_TIMEOUT=5
  4. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
  5. GRUB_DEFAULT=0
  6. GRUB_DISABLE_SUBMENU=true
  7. GRUB_TERMINAL_OUTPUT="gfxterm"
  8. GRUB_CMDLINE_LINUX="rhgb quiet nomodeset"
  9. GRUB_DISABLE_RECOVERY="true"

设置默认启动内核,grub2-set-default 0和/etc/default/grub文件里的GRUB_DEFAULT=0意思一样

  1. [root@etcd2 ~]# grub2-set-default 0

查看所有的内核

  1. [root@etcd2 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
  2. 0 : CentOS Linux 7 Rescue 12667e2174a8483e915fd89a3bc359fc (5.4.197-1.el7.elrepo.x86_64)
  3. 1 : CentOS Linux (5.4.197-1.el7.elrepo.x86_64) 7 (Core)
  4. 2 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
  5. 3 : CentOS Linux (0-rescue-80c608ceab5342779ba1adc2ac29c213) 7 (Core)

重新生成grub配置文件

  1. [root@etcd2 ~]# vim /boot/grub2/grub.cfg
  2. [root@etcd2 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
  3. Generating grub configuration file ...
  4. Found linux image: /boot/vmlinuz-5.4.197-1.el7.elrepo.x86_64
  5. Found initrd image: /boot/initramfs-5.4.197-1.el7.elrepo.x86_64.img
  6. Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
  7. Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
  8. Found linux image: /boot/vmlinuz-0-rescue-12667e2174a8483e915fd89a3bc359fc
  9. Found initrd image: /boot/initramfs-0-rescue-12667e2174a8483e915fd89a3bc359fc.img
  10. Found linux image: /boot/vmlinuz-0-rescue-80c608ceab5342779ba1adc2ac29c213
  11. Found initrd image: /boot/initramfs-0-rescue-80c608ceab5342779ba1adc2ac29c213.img
  12. done

重启并查看内核版本

  1. [root@etcd2 ~]# reboot

可以看到内核升级成功

  1. [root@etcd2 ~]# uname -r
  2. 5.4.197-1.el7.elrepo.x86_64
  3. [root@etcd2 ~]# uname -rs
  4. Linux 5.4.197-1.el7.elrepo.x86_64

五.在线升级系统内核

导入ELRepo仓库的公共密钥,启用 ELRepo 仓库,ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。

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

安装ELRepo仓库的yum源

  1. [root@etcd2 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  2. 获取http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  3. 准备中... ################################# [100%]
  4. 正在升级/安装...
  5. 1:elrepo-release-7.0-3.el7.elrepo ################################# [100%]

kernel-ml代表主线版本,总是保持主线最新的内核,kernel-lt代表长期支持版本,支持周期更长,如果你要追求最新的版本,直接选择带ml的rpm包即可,如果你要追求稳定且更长的支持周期,直接选择lt版本即可。
查看可用的系统内核包

  1. [root@etcd2 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
  2. 已加载插件:fastestmirror
  3. 。。。。。。
  4. Loading mirror speeds from cached hostfile
  5. * elrepo-kernel: mirrors.aliyun.com
  6. 可安装的软件包
  7. elrepo-release.noarch 7.0-5.el7.elrepo elrepo-kernel
  8. kernel-lt-devel.x86_64 5.4.197-1.el7.elrepo elrepo-kernel
  9. kernel-lt-doc.noarch 5.4.197-1.el7.elrepo elrepo-kernel
  10. kernel-lt-headers.x86_64 5.4.197-1.el7.elrepo elrepo-kernel
  11. 。。。。。。
  12. kernel-ml-tools-libs.x86_64 5.18.2-1.el7.elrepo elrepo-kernel
  13. kernel-ml-tools-libs-devel.x86_64 5.18.2-1.el7.elrepo elrepo-kernel
  14. perf.x86_64 5.18.2-1.el7.elrepo elrepo-kernel
  15. python-perf.x86_64 5.18.2-1.el7.elrepo elrepo-kernel

刚才安装的lt版本,现在安装ml版本

安装最新版本内核,—enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。或者yum install -y kernel-lt-4.4.218-1.el7.elrepo —enablerepo=elrepo-kernel

  1. [root@etcd2 ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y
  2. 已加载插件:fastestmirror
  3. elrepo | 3.0 kB 00:00:00
  4. elrepo/primary_db | 580 kB 00:00:06
  5. Loading mirror speeds from cached hostfile
  6. * elrepo: hkg.mirror.rackspace.com
  7. * elrepo-kernel: hkg.mirror.rackspace.com
  8. 正在解决依赖关系
  9. --> 正在检查事务
  10. ---> 软件包 kernel-ml.x86_64.0.5.18.2-1.el7.elrepo 将被 安装
  11. --> 解决依赖关系完成
  12. 。。。。。。
  13. Downloading packages:
  14. kernel-ml-5.18.2-1.el7.elrepo.x86_64.rpm | 56 MB 00:00:42
  15. Running transaction check
  16. Running transaction test
  17. Transaction test succeeded
  18. Running transaction
  19. 警告:RPM 数据库已被非 yum 程序修改。
  20. 正在安装 : kernel-ml-5.18.2-1.el7.elrepo.x86_64 1/1
  21. 验证中 : kernel-ml-5.18.2-1.el7.elrepo.x86_64 1/1
  22. 已安装:
  23. kernel-ml.x86_64 0:5.18.2-1.el7.elrepo
  24. 完毕!

查看所有的内核版本

  1. [root@etcd2 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
  2. 0 : CentOS Linux (5.18.2-1.el7.elrepo.x86_64) 7 (Core)
  3. 1 : CentOS Linux (5.4.197-1.el7.elrepo.x86_64) 7 (Core)
  4. 2 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
  5. 3 : CentOS Linux (0-rescue-12667e2174a8483e915fd89a3bc359fc) 7 (Core)
  6. 4 : CentOS Linux (0-rescue-80c608ceab5342779ba1adc2ac29c213) 7 (Core)

内核升级完毕后,需要我们修改内核的启动顺序,默认启动的顺序应该为1,升级以后内核是往前面插入为0,设置GRUB_DEFAULT=0。一般新安装的内核在第一个位置,所以设置default=0,意思是 GRUB 初始化页面的第一个内核将作为默认内核。

  1. [root@etcd2 ~]# cat /etc/default/grub
  2. GRUB_TIMEOUT=5
  3. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
  4. GRUB_DEFAULT=0
  5. GRUB_DISABLE_SUBMENU=true
  6. GRUB_TERMINAL_OUTPUT="gfxterm"
  7. GRUB_CMDLINE_LINUX="rhgb quiet nomodeset"
  8. GRUB_DISABLE_RECOVERY="true"
  9. [root@etcd2 ~]# grub2-set-default 0

重新生成grub配置文件

  1. [root@etcd2 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
  2. Generating grub configuration file ...
  3. Found linux image: /boot/vmlinuz-5.18.2-1.el7.elrepo.x86_64
  4. Found initrd image: /boot/initramfs-5.18.2-1.el7.elrepo.x86_64.img
  5. Found linux image: /boot/vmlinuz-5.4.197-1.el7.elrepo.x86_64
  6. Found initrd image: /boot/initramfs-5.4.197-1.el7.elrepo.x86_64.img
  7. Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
  8. Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
  9. Found linux image: /boot/vmlinuz-0-rescue-12667e2174a8483e915fd89a3bc359fc
  10. Found initrd image: /boot/initramfs-0-rescue-12667e2174a8483e915fd89a3bc359fc.img
  11. Found linux image: /boot/vmlinuz-0-rescue-80c608ceab5342779ba1adc2ac29c213
  12. Found initrd image: /boot/initramfs-0-rescue-80c608ceab5342779ba1adc2ac29c213.img
  13. done

重启

  1. [root@etcd2 ~]# reboot

查看当前系统内核版本

  1. [root@etcd2 ~]# uname -sr
  2. Linux 5.18.2-1.el7.elrepo.x86_64
  3. [root@etcd2 ~]# uname -r
  4. 5.18.2-1.el7.elrepo.x86_64

致力于一条龙式的为您解决问题

本文转自:https://www.cnblogs.com/renshengdezheli/p/16418911.html

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post