• centos 更新linux内核


        之前一直使用centos 7系统进行开发,centos 7.0 系统自带的linux内核版本为 linx 3.10,最近开发需要使用到socket的reuse port特性,该特性在linux 3.9及以上才被支持,因此需要将系统升级到linux的3.9及以上版本。

        从网上查找了升级内核的教程,发现主要有两种:

    一、使用 elrepo 的rpm包升级

    查看当前系统内核版本 uname -r 
    1. 导入key 
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
    2. 安装 elrepo 的yum源 
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 
    3. 安装内核 
    在yum的elrepo源中,有最新版本内核。直接yum安装即可。 
    yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y 
    5. 设置系统启动顺序 
    查看系统启动项: 
    cat /boot/grub2/grub.cfg |grep menuentry 

    (如果没有发现 grub.cfg 文件,则可以使用命令 grub2-mkconfig --output=/boot/grub2/grub.cfg,它会生成配置文件)


    可以发现有最新版本的内核,此时可以设置最新版本内核为默认启动: 
    grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
        此时,查看默认启动的系统版本grub2-editenv list 
    显示为'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
    6. reboot,重启之后再次查看 uname -r

    二、使用源码编译安装升级

    1 下载内核源码 
    下载网址为 https://www.kernel.org/ 
    wget xxx 
    2 解压并进入源码目录 
    3 更新系统并安装依赖软件

        #yum update
        #yum upgrade
        #yum groups install Development Tools
        #yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
    

    4 将当前内核配置文件拷贝到当前目录 
        本来是应该执行make menuconfig来自定义内核配置的,生成配置文件.config; 但是可以直接使用原来系统的内核配置,也就是拷贝/boot目录下的配置文件到当前目录。 
    cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config

    5 使用当前内核的配置

        #sh -c 'yes "" | make oldconfig' #centos 6
        #sh -c 'y "" | make oldconfig' #centos 7
    

    6 编译安装

        #make bzImage
        #make modules
        #make modules_install
        #make install
    

    7 设置系统启动顺序 
    查看系统启动项: 
    cat /boot/grub2/grub.cfg |grep menuentry 

    (如果没有发现 grub.cfg 文件,则可以使用命令 grub2-mkconfig --output=/boot/grub2/grub.cfg,它会生成配置文件)
    可以发现有最新版本的内核,此时可以设置最新版本内核为默认启动: 
    grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
        此时,查看默认启动的系统版本grub2-editenv list 
    显示为'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)' 
    8 reboot,重启之后再次查看 uname -r

  • 相关阅读:
    第一期知识点
    如何正确地停止一个线程?
    JVM知识点总览-高级Java工程师面试必备
    常见GC算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
    深入理解分布式事务,高并发下分布式事务的解决方案
    JVM中的逃逸分析
    JVM内存初学 堆、栈、方法区
    JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
    JVM的基本结构和JVM的内存结构
    一致性hash算法应用场景、详解与实现(JAVA)
  • 原文地址:https://www.cnblogs.com/gtarcoder/p/6016302.html
Copyright © 2020-2023  润新知