Linux 内核升级

目录

Linux内核版本信息

内核升级检查

一、离线升级

  1. CentOS
  2. Ubuntu

二、在线升级

  1. CentOS
  2. Ubuntu

 

 

 


Linux 内核版本:

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

下载官方链接:https://cdn.kernel.org/pub/linux/kernel/

ELREPO官方链接:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 

版本分类:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm)

版本命名格式:

数字 A 是内核版本号:版本号只有在代码和内核的概念有重大改变的时候才会改变
数字 B 是内核主版本号:主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版
数字 C 是内核次版本号:次版本号是无论在内核增加安全补丁、修复bug、实现新的特性或者驱动时都会改变

2021年--1-23发布的最新稳定版本是5.10.10  , 下载地址: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.10.tar.xz

我们在对系统内核升级前,可以通过官网或者系统联网的情况下,通过命令行进行检查最新的内核版本是多少。

  • 查看当前系统内核版本

    uname -r        -----》3.10.0-1062.el7.x86_64
  • 查看最新的可用内核版本

    • 联网升级内核需要先导入elrepo的key,然后安装elrepo的yum源:

      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
      yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
      
      -----------------------------------------------------------------------------------
      [root@cent7 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
      Loaded plugins: fastestmirror
      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.0 MB  00:00:01
      Available Packages
      elrepo-release.noarch                                    7.0-5.el7.elrepo                             elrepo-kernel
      kernel-lt.x86_64                                         5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-lt-devel.x86_64                                   5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-lt-doc.noarch                                     5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-lt-headers.x86_64                                 5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-lt-tools.x86_64                                   5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-lt-tools-libs.x86_64                              5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-lt-tools-libs-devel.x86_64                        5.4.92-1.el7.elrepo                          elrepo-kernel
      kernel-ml.x86_64                                         5.10.10-1.el7.elrepo                         elrepo-kernel
      kernel-ml-devel.x86_64                                   5.10.10-1.el7.elrepo                         elrepo-kernel
      kernel-ml-doc.noarch                                     5.10.10-1.el7.elrepo                         elrepo-kernel
      kernel-ml-headers.x86_64                                 5.10.10-1.el7.elrepo                         elrepo-kernel
      kernel-ml-tools.x86_64                                   5.10.10-1.el7.elrepo                         elrepo-kernel
      kernel-ml-tools-libs.x86_64                              5.10.10-1.el7.elrepo                         elrepo-kernel
      kernel-ml-tools-libs-devel.x86_64                        5.10.10-1.el7.elrepo                         elrepo-kernel
      perf.x86_64                                              5.10.10-1.el7.elrepo                         elrepo-kernel
      python-perf.x86_64                                       5.10.10-1.el7.elrepo                         elrepo-kernel
      ----------------------------------------------------------------------------------

  一、离线升级

  1. CentOS
    1. 下载最新稳定版本的内核源码包。(https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.10.tar.xz)   
    2.  复制源码包到 升级的服务器文件夹(/usr/local/src)。
    3.  解压内核源码包 : tar -zxf  linux-5.10.10.tar.xz
    4.  复制备份原内核配置文件,并拷贝到最新的内核解压的文件夹。: cp  /boot/config-3.10.0-1062.el7.x86_64    /boot/config-3.10.0-1062.el7.x86_64.bak    &&  cp  /boot/config-3.10.0-1062.el7.x86_64     /usr/local/src/5.10.10/.config
    5. 安装依赖包: yum -y groupinstall "development tools"    && yum -y install ncurses-devel
    6.  开启文本界面的编译选项菜单窗口: make menuconfig
    7. 修改最新内核名称: General setup --->local version -append to kernel release
    8. 可以选择支持NTFS 文件格式:File systems --->DOS/FAT/NT Filesystems --->NTFS file system support
    9. 建议选择以模块方式(M选项)编译。(*号则是以静态方式编译打包进内核文件中,如果新添加的模块较多,会导致内核文件体积增大)
    10. 执行编译: make all
    11. 此处省略xxxx字 (如果报错,缺什么包;就安装那个)
    12. 编译安装模块: make modules_install
    13. 安装Kernel 文件: make install
    14. 重启前设置最新内核版本为默认启动内核: grub2-set-default 0       -------------->0表示 /boot/grub2/grub.cfg 文件中排在第一位的 menuentry 段
    15. 重启: shutdown -r 0    或者 reboot
    16. 检查升级的内核版本及修改过后的启动内核顺序: uname -r     && awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
    17. 最后,如果确定新内核运行稳定,就可以删除旧版本的内核: rpm -qa|grep kernel|grep 3.10     &&  rpm -qa|grep kernel|grep 3.10|xargs yum remove -y
    18. 安装新内核支持的工具包: yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
  2. Ubuntu
    • 下载最新稳定版本的内核源码包。(https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.10/)   
    • wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.5/i386/linux-headers-5.10.5-051005-generic_5.10.5-051005.202101061537_i386.deb
      wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.5/i386/linux-headers-5.10.5-051005-lowlatency_5.10.5-051005.202101061537_i386.deb
      wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.5/i386/linux-image-5.10.5-051005-lowlatency_5.10.5-051005.202101061537_i386.deb
      wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.5/i386/linux-image-5.10.5-051005-generic_5.10.5-051005.202101061537_i386.deb
      wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.5/i386/linux-modules-5.10.5-051005-generic_5.10.5-051005.202101061537_i386.deb
      https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.5/i386/linux-modules-5.10.5-051005-lowlatency_5.10.5-051005.202101061537_i386.deb
      

       

    •  复制源码包到 升级的服务器文件夹(/usr/local/src)。
    •  解压内核源码包 : tar -zxf  *.deb
    • 安装依赖包: sudo dpkg -i *.deb
    •  此处省略xxxx字 (如果报错,缺什么包;就安装那个)
    • 重启: shutdown -r 0    或者 reboot
    • 检查升级的内核版本及修改过后的启动内核顺序: uname -r     

二、在线升级

  1. CentOS
    1. CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

      要在 CentOS 7 上启用 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
    2. 仓库启用后: 
      # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
    3. 安装最新的主线稳定版本:
      # yum --enablerepo=elrepo-kernel install kernel-ml
    4. 设置系统GRUB默认内核版本:grub2-set-default 0 
    5. 重新创建内核启动配置:
      # grub2-mkconfig -o /boot/grub2/grub.cfg
    6. 重启系统:reboot
    7. 检查默认内核版本: uname -r
    8. 最后,如果确定新内核运行稳定,就可以删除旧版本的内核: rpm -qa|grep kernel|grep 3.10     
    9.   rpm -qa|grep kernel|grep 3.10|xargs yum remove -y
    10. 安装新内核支持的工具包: yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
  2. Ubuntu
    1. apt-get install linux-headers-$(uname -r)
    2. apt-get update

    3. apt-get upgrade

    4. apt-get dis-upgrade

 

<think>根据用户的问题,用户在使用阿里云镜像源查找特定内核版本(5.17.1-1.el7.elrepo.x86_64)的RPM文件时发现缺失,意图可能是寻找替代下载方式或确认文件是否存在。结合之前的对话历史,用户之前尝试离线升级内核到该版本,但阿里云镜像中可能没有这个特定版本。 分析原因: 1. ELRepo仓库可能不再保留某些旧版本的内核包,尤其是当有更新的版本发布后。 2. 阿里云镜像可能只同步了ELRepo仓库中当前活跃的版本,而5.17.1-1.el7.elrepo.x86_64可能已被移除。 解决方案: 1. 检查ELRepo官方仓库:确认该版本是否在ELRepo官方仓库中存在,如果官方也没有,则说明该版本已被移除。 2. 使用其他镜像源:尝试其他公共镜像源,如ELRepo主仓库、清华大学镜像站等。 3. 下载相近版本:如果确实需要5.17.x系列,可以下载同一系列的其他版本(如5.17.4-1.el7.elrepo.x86_64,在引用[1]中提到过)。 4. 从第三方存档站点下载:如archive.kernel.org等。 5. 自行编译内核:如果以上方法都不可行,则考虑下载内核源码自行编译。 步骤详解: 步骤1:检查ELRepo官方仓库 访问ELRepo官方网站的仓库地址:http://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 查看是否有5.17.1-1.el7.elrepo.x86_64.rpm文件。如果官方没有,则说明该版本已被移除。 步骤2:使用其他镜像源 如果阿里云镜像没有,可以尝试以下镜像站: - 清华大学镜像站:https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/ - 中国科技大学镜像站:https://mirrors.ustc.edu.cn/elrepo/kernel/el7/x86_64/RPMS/ - ELRepo主仓库:https://fedora.mirror.constant.com/elrepo/kernel/el7/x86_64/RPMS/ (注意:这个地址可能较慢) 步骤3:下载相近版本 在引用[1]中提到,用户使用的内核版本是5.17.4-1.el7.elrepo.x86_64,说明5.17.4版本是存在的。如果用户不需要特定的小版本,可以下载5.17.4版本。在阿里云镜像中查找: https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-5.17.4-1.el7.elrepo.x86_64.rpm https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-devel-5.17.4-1.el7.elrepo.x86_64.rpm 步骤4:从kernel.org的存档站点下载 如果确实需要5.17.1版本,可以尝试kernel.org的存档站点: https://archive.kernel.org/ 但注意这里可能存放的是源码包,而RPM包可能没有。 步骤5:自行编译内核(不推荐,除非必要) 如果以上方法都找不到,可以考虑从源码编译。步骤如下: 1)下载内核源码:https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.17.1.tar.xz 2)解压并配置内核 3)编译并打包成RPM(需要安装rpm-build等工具) 但这种方法比较复杂,且需要解决依赖问题,不推荐作为首选。 建议: 鉴于用户之前提到在K8s环境安装(引用[1])中使用了5.17.4版本,建议使用5.17.4版本代替。因为5.17.4是5.17系列的一个版本,修复了一些问题,且阿里云镜像中容易获取。 具体操作(如果选择5.17.4版本): 1. 下载以下两个文件(在阿里云镜像中存在): - kernel-5.17.4-1.el7.elrepo.x86_64.rpm - kernel-devel-5.17.4-1.el7.elrepo.x86_64.rpm 2. 按照之前提供的离线升级步骤进行安装。 验证阿里云镜像中5.17.4版本的存在: 访问:https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/ 在页面中搜索“5.17.4”,可以找到对应的文件。 如果用户坚持需要5.17.1版本,那么可能需要寻找其他非官方来源(不推荐,因为安全性无法保证)或者自行编译。 总结:由于ELRepo仓库会定期清理旧版本,建议使用同一系列中可用的最新小版本(如5.17.4)代替。 相关问题: 1. 如何查看 ELRepo 仓库中可用的内核版本列表? 2. 在 CentOS 7 上安装多个版本的内核如何管理? 3. 如何安全地移除旧内核版本? 4. 使用非官方源的内核是否存在安全风险? 5. 升级内核后系统无法启动如何回退?</think>### 阿里云 ELRepo 镜像中找不到特定内核 RPM 文件的解决方案 当阿里云镜像站(`https://mirrors.aliyun.com/elrepo/kernel/`)缺少特定内核版本(如 `5.17.1-1.el7.elrepo.x86_64`)时,可通过以下方法解决: --- #### 1. **确认版本可用性** - 访问 ELRepo 官方仓库列表验证版本是否存在: ```bash curl -s https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ | grep '5.17.1-1' ``` 若无输出,说明该版本已被官方移除(ELRepo 通常只保留最新版本)[^1][^2]。 --- #### 2. **替代方案:安装相近版本** - 使用同一系列的可用版本(如 `5.17.4-1.el7.elrepo.x86_64`): ```bash # 从阿里云下载可用版本 wget https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-5.17.4-1.el7.elrepo.x86_64.rpm wget https://mirrors.aliyun.com/elrepo/kernel/el7/x86_64/RPMS/kernel-devel-5.17.4-1.el7.elrepo.x86_64.rpm # 安装 rpm -ivh kernel-*.rpm ``` --- #### 3. **从其他镜像源获取** - **清华大学镜像站**(同步频率更高): ```bash wget https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/kernel-5.17.1-1.el7.elrepo.x86_64.rpm ``` - **ELRepo 主仓库**: ```bash wget https://fedora.mirror.constant.com/elrepo/kernel/el7/x86_64/RPMS/kernel-5.17.1-1.el7.elrepo.x86_64.rpm ``` --- #### 4. **手动编译安装(终极方案)** 若所有镜像均缺失,需从源码编译: ```bash # 安装依赖 yum groupinstall "Development Tools" yum install ncurses-devel bc openssl-devel elfutils-libelf-devel # 下载内核源码 wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.1.tar.xz tar xvf linux-5.17.1.tar.xz cd linux-5.17.1 # 编译并打包成 RPM make olddefconfig # 使用当前配置 make rpm-pkg # 生成 RPM 包 rpm -ivh ~/rpmbuild/RPMS/x86_64/kernel-5.17.1-1.x86_64.rpm ``` --- #### 5. **验证安装** ```bash # 更新 GRUB 并重启 grub2-mkconfig -o /boot/grub2/grub.cfg reboot # 检查内核版本 uname -r # 应输出 5.17.1-1.el7.elrepo.x86_64 ``` > **关键提示**: > - ELRepo 会定期清理旧版本内核,建议优先使用同一系列的最新版本(如 `5.17.4`)[^1] > - 生产环境推荐测试后再升级,避免兼容性问题 --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值