在工作中,很多时候由于需要使用新的技术方案,需要较新版本的内核来支持新的功能,而CentOS系统自带的内核版本普遍都比较旧,因此我们需要对系统的内核进行升级,安装新版的内核。在此,以CentOS 7系统为例,对编译安装最新版内核的过程做如下总结:

Linux 最新版本的内核可以通过 https://www.kernel.org/ 网站获取

1、下载最新稳定版本的内核源码包到 /usr/local/src ,并解压到当前目录

2、解压内核源码包

3、从 /boot 目录将现有版本的内核编译config配置文件拷过来到放到新的内核源码解压目录内并重命名为.config的隐藏文件

cd linux-5.2.11
cp /boot/config-3.10.0-957.el7.x86_64 ./.config

从boot目录拷贝原内核的config文件过来主要是为了方便,这个文件保存了在安装系统时内核所安装的模块配置信息(否则需要重新手动指定每一个模块的编译配置)。

4、安装依赖包

安装开发工具包组

yum -y groupinstall "development tools"

安装ncurse-devel包 (make menuconfig 文本界面窗口依赖包)

yum -y install ncurses-devel

5、运行 make menuconfig,开启文本界面的编译选项菜单窗口,可以对内核加载的模块编译选项进行调整,如修改编译后的内核名称、新添加之前系统缺少的模块等。

修改内核名称:

General setup --->local version -append to kernel release

此处修改内核名称为 5.2.11-001.el7.x86_64

新添加NTFS文件系统支持模块:

File systems --->DOS/FAT/NT Filesystems --->NTFS file system support

建议选择以模块方式(M选项)编译。(*号则是以静态方式编译打包进内核文件中,如果新添加的模块较多,会导致内核文件体积增大)

6、编译内核

make -j 4

根据CPU核数开启多线程编译以加快编译速度

开始漫长的编译过程,大概需要1-2小时左右,具体视CPU硬件的性能决定。

如果编译开始提示错误,则可能需要预先安装对应的组件包,例如:

yum -y install openssh-devel elfutils-libelf-devel bc

根据对应的错误提示,yum 方式安装对应的组件包,部分组件包在epel源,所以需要预先配置好epel源仓库。

7、编译安装模块

编译完成后执行make modules_install 安装内核模块

make modules_install

8、安装内核核心文件

make install

reboot重启

如需将新版本内核设置为默认启动内核,可以使用此命令

grub2-set-default 0  

0表示 /boot/grub2/grub.cfg 文件中排在第一位的 menuentry 段

重启进入系统后,查看一下内核版本,已经是最新的5.2.11版本

uname -r

5.2.11-001.el7.x86_64

CentOS 7下源码编译安装新版本内核相关推荐

  1. centos lnmp源码安装mysql_CentOS 6.6 下源码编译安装MySQL 5.7.5

    说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具 # yum -y install gcc-c++ ncurses-devel cmake make perl \ ...

  2. Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录

    Python 3.10版本及其依赖项 Linux下源码编译 安装到指定路径/目录 安装需求 准备工作 Python及其依赖项 libffi glibc GDBM mpdecimal bz2 xz re ...

  3. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3

    原文链接:ubuntu18.04下源码编译安装最新版本Python3 截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6. ...

  4. CentOS 7.6源码编译安装gluster 6.1

    CentOS 7.6源码编译安装gluster 6.1 一.测试目的 测试使用源1. 码编译进行gluster集群的安装配置: 2. 测试使用源码编译生成RPM包进行gluster集群的安装配置: 二 ...

  5. python版本升级后编译_ubuntu18.04下源码编译安装最新版本Python3

    截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6.7,下面我们就演示一下如何在ubuntu18.04下源码编译安装Pyt ...

  6. CentOS7下源码编译安装MySQL5.6.4

    CentOS7下源码编译安装MySQL5.6.4 写这篇博客的主要原因是:请看上一篇博客:CentOS7下更改MySQL5.6.4默认的数据存储位置.对,当初通过rpm安装的mysql5.6.4,一切 ...

  7. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础 ...

  8. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

  9. Linux下源码编译安装新版libxcb

    前言 上一篇文章提到,linux 下编译Qt源码如果要用到Quick的话,那么运行时会依赖qxcb库,而编译生成qxcb库就需要先安装libxcb,并且最低要求 版本大于1.9.1 Requires ...

最新文章

  1. 6.2 sql安全性
  2. 三插头内部结构图_三方面维护硬度计才能使寿命更长久
  3. Mac OS使用技巧之九:Mission Control和DIY自己的Dashboard
  4. js数组再倒数第二个添加元素_归纳JS中数组的使用(一)元素新增和删除
  5. linux ip地址漂移,Linux 实现高可用性(HA) —之ip 漂移方法(vrrp)
  6. 机器学习真的可以起作用吗?(1)
  7. 使用jquery判断及改变checkbox选中状态
  8. 解决ubuntu不能远程连接
  9. Linux 代码美化(二)
  10. 怎么两边同时取ln_回归分析为什么要取LN值
  11. MyBatis_1_MaBatis入门
  12. Android客户端面经总结
  13. CentOS 7.2 配置Apache服务(httpd)--上篇
  14. 下一代防火墙(NGFW)如何防御APT攻击?
  15. githubDesktop的使用说明(附下载链接)
  16. JAVA程序运行流程
  17. HDOJ 2112 HDU Today (最短路 Dijkstra SPFA)
  18. Redis入门【安装,常用类型,常用命令行命令】
  19. 炫“库”行动-人大金仓有奖征文-数据库的备份及恢复
  20. 英辞流——坚若金刚与穿行无碍:物质的三态

热门文章

  1. 谈谈Tomcat连接器
  2. Spring Cloud Gateway 整合阿里 Sentinel网关限流实战!
  3. 我把负载均衡讲出了花,领导却不给我涨工资
  4. 面试被问BIO、NIO、AIO的区别,怎么破?
  5. 百度前离职员工偶遇同门百度人,轻松通过面试,直呼放水很明显!这样真的好么?...
  6. 编码编成翔的十八般兵器
  7. CPU深夜狂飙,一帮大佬都傻眼了...
  8. 10个经典又容易被人疏忽的JVM面试题
  9. 与其焦虑成疾,不如静心学习
  10. 万物生长,万物互联的时代来了