zoukankan      html  css  js  c++  java
  • Centos 7升级内核

     

    最近在学习 Docker,想在服务器上实践一下.Docker 需要安装在 CentOS 7 64 位的平台,并且内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于 CentOS 7 内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定.需要升级到最新的 CentOS 版本,并且内核也更新到最新的稳定版本.这是我对升级 CentOS 系统版本及内核的记录,方便以后查阅,也分享给大家.

    注意:这篇文章只在 CentOS 7.× 系列版本上验证过,其他 CentOS 版本请谨慎使用.

    检查当前 CentOS 系统版本

    # cat /etc/redhat-release
    
    > CentOS Linux release 7.0.1503 (Core)
    

    检查当前 CentOS 系统内核版本

    # uname -sr
    
    > Linux 3.10.0-327.10.1.e17.x86_64
    

    可以看出当前系统为 CentOS 7.4,系统内核版本为 3.10.

    运行 yum 命令升级

    CentOS 中 update 命令可以一次性更新所有软件到最新版本。

    # yum clean all
    
    # yum update
    

    期间会有确认提示,直接回车确认即可.

    重启系统

    # reboot
    

    检查当前 CentOS 系统版本

    # cat /etc/redhat-release
    
    > CentOS Linux release 7.4.1611 (Core)
    

    检查当前 CentOS 系统内核版本

    # uname -sr
    
    > Linux 3.10.0-327.10.1.e17.x86_64
    

    可以看到当前系统为 CentOS 7.3 已经升级成功了,但系统内核版本依旧为 3.10 并没有升级,这是因为 CentOS 为了安全和稳定并不会把系统内核升级到最新的版本,所以 yum update 命令只会升级系统版本和更新软件.接下来我们就来升级系统内核.

    升级 CentOS 7.× 内核,启用 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
    

    仓库启用后,你可以使用下面的命令列出可用的系统内核相关包:

    # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

    The difference is that kernel-lt is based on a "long term support" branch and kernel-ml is based on the "mainline stable" branch

    接下来,安装最新的lt内核: (ml 版安装后有问题)

    # yum --enablerepo=elrepo-kernel install kernel-lt
    

    由于网络原因,以上操作可能需要不少时间.

    重启机器,检查当前 CentOS 系统内核版本

    # uname -sr
    
    > Linux 4.4.0-1.el7.elrepo.x86_64
    

    可以看到系统内核已经升级到最新的主线稳定内核.

    设置 GRUB 默认的内核版本

    为了让新安装的内核成为默认启动选项

    # grub2-set-default 0

    查看设置

    # grub2-editenv list

    重启机器,查看系统当前内核版本,验证最新的内核已作为默认内核

    # uname -rs
    
    >Linux 4.4.7-1.el7.elrepo.x86_64

    删除 CentOS 更新后的旧内核

    查看系统中全部的内核 RPM 包:

    # rpm -qa | grep kernel
    
    > kernel-tools-3.10.0-514.26.2.el7.x86_64
    > kernel-devel-3.10.0-514.10.2.el7.x86_64
    > kernel-3.10.0-514.26.2.el7.x86_64
    > kernel-3.10.0-327.el7.x86_64
    > kernel-lt-4.4.0-1.el7.elrepo.x86_64
    > kernel-headers-3.10.0-514.26.2.el7.x86_64
    > kernel-devel-3.10.0-514.26.2.el7.x86_64
    > kernel-tools-libs-3.10.0-514.26.2.el7.x86_64
    

    删除旧内核的 RPM 包

    yum remove kernel-tools-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.10.2.el7.x86_64 kernel-3.10.0-514.26.2.el7.x86_64 kernel-3.10.0-327.el7.x86_64 kernel-headers-3.10.0-514.26.2.el7.x86_64 kernel-devel-3.10.0-514.26.2.el7.x86_64 kernel-tools-libs-3.10.0-514.26.2.el7.x86_64
    

    重启系统

    # reboot

    ref http://www.jianshu.com/p/fdf6bb6c5b9c
    http://elrepo.org/tiki/tiki-index.php
  • 相关阅读:
    【转载】使用缓存的9个误区(上)
    .NET开发者必备的工具箱(转载)
    Java基础之反射(一)
    【干货转载】.NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
    CKEditor配置详解
    ASP.NET中IsPostBack的理解
    三层架构与设计模式思想部署企业级数据库业务系统开发
    AppDomain 详解(转)
    字符串基础总结
    访问数据库的时候报错 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
  • 原文地址:https://www.cnblogs.com/zhangeamon/p/8057152.html
Copyright © 2011-2022 走看看