之前一直使用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

centos 更新linux内核的更多相关文章

  1. centos 升级linux内核

    =============================================== 2018/1/14_第1次修改                       ccb_warlock == ...

  2. 更新Linux内核

    说明:为了安装Docker,当前虚拟机不满足要求,版本如下: [root@localhost116 ~]# uname -r -.el6.x86_64 [root@localhost116 ~]# c ...

  3. 云服务器-Ubuntu更新系统版本-更新Linux内核-服务器安全配置优化-防反弹shell

    购入了一台阿里云的ESC服务器,以前都用CentOS感觉Yum不怎么方便,这次选的Ubuntu16.04.7 搭好服务之后做安全检查,发现Ubuntu16.04版本漏洞众多:虽然也没有涉及到16.04 ...

  4. centos的linux内核源码下载方法

    http://vault.centos.org/ http://blog.csdn.net/xiongzhizhu/article/details/51816243

  5. 十天学Linux内核之第六天---调度和内核同步

    原文:十天学Linux内核之第六天---调度和内核同步 心情大好,昨晚我们实验室老大和我们聊了好久,作为已经在实验室待了快两年的大三工科男来说,老师让我们不要成为那种技术狗,代码工,说多了都是泪啊,, ...

  6. 重新编译Linux内核必要性及其准备工作

    内核简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性. Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/u ...

  7. 24小时学通Linux内核之调度和内核同步

    心情大好,昨晚我们实验室老大和我们聊了好久,作为已经在实验室待了快两年的大三工科男来说,老师让我们不要成为那种技术狗,代码工,说多了都是泪啊,,不过我们的激情依旧不变,老师帮我们组好了队伍,着手参加明 ...

  8. Linux内核卸载和禁止更新

    注意:对于可以用好几条命令实现的,第一条命令已经验证,其他的命令参考自网上,没有进行验证. 查看Linux系统内核的命令有下面几条 dpkg --get-selections | grep linux ...

  9. 从头开始构建LINUX[内核更新和资料]

    了解了LFS的内容后,至于内核的更新就一目了然了 http://www.cnblogs.com/2018/p/3979305.html http://www.cnblogs.com/2018/p/39 ...

随机推荐

  1. FRM-40400:事务完成:已应用和保存X条记录"消息框不显示处理方法

    oldmesl := :system.message_level; :system.message_level :;--不显示长度超过25的信息 do_key('COMMIT_FORM'); :sys ...

  2. CSS中的overflow属性

    导读:overflow属性一般用来隐藏超过div范围的元素,包括不隐藏(visible),直接隐藏(hidden),用滚动条隐藏(scroll),自动(aotu)这四个属性.当然overflow的用法 ...

  3. LigerUI 表单和表格中的combobox如何初始化值

    摘要: 在修改基础信息的时候,通常会遇到需要修改值为选择值的时候,这时候,数据库存的一般是value,而不是显示的text值,但页面显示的时候如果显示成数字型的值,通常会给人不够直观的感觉.因此,要求 ...

  4. 如何申请国际版Office365和Azure的试用账号

    关键字:国际版.Office365.Azure.试用账号.1美元.信用卡 待续

  5. Hadoop:操作 Hadoop Cluster

    启动Hadoop 当完成所有的必要配置后,将HADOOP_CONF_DIR目录中的所有配置文件复制到所有机器,建议将HDFS和YARN后台进程一不同的用户身份运行,比如运行HDFS进程们的用户为hdf ...

  6. java第二次作业

    这次通过学习,我掌握了下拉菜单和单选按钮的使用下拉菜单构造方法:JComboBox() 创建具有默认数据模型的 JComboBox.JComboBox(ComboBoxModel aModel) 创建 ...

  7. 赶时髦过了一遍Swift 语言....

    Swift 语言 2014年6月3日发布,替代OBJECT-C Swift is a new programming language for creating iOS and OS X apps. ...

  8. C#中常用的转义字符及@符号的一些作用

    转义符指的就是一个'\'+一个特殊的字符,组成了一个具有特殊意义的字符. \n:表示换行.  /b表示一个退格键.放到字符串两边没有效果. \t:表示tab键的空格 \":表示一个英文半角的 ...

  9. centos7 卸载openJDK 安装jdk7

    [root@cms02 root]# rpm -qa | grep jdk java--openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64 java--ope ...

  10. android 时间 格式

    http://blog.csdn.net/yudajun/article/details/7939552