CentOS 7 下编译安装 4.14 内核
rpm升级
# rpm的方式升级内核
1.载入内核公钥
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2.安装内核 ELRepo
[root@localhost ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
3.载入elrepo-kernel元数据
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
4.查看可用的rpm包
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel* # 产品需求是4.14的内核,这里没有,只好去官方找安装包,进行编译升级
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: mirrors.neusoft.edu.cn
Installed Packages
kernel.x86_64 3.10.0-957.el7 @anaconda
kernel-tools.x86_64 3.10.0-957.el7 @anaconda
kernel-tools-libs.x86_64 3.10.0-957.el7 @anaconda
Available Packages
kernel-lt.x86_64 4.4.235-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.235-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.235-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.235-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.235-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.235-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.235-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 5.8.7-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.8.7-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.8.7-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.8.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.8.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.8.7-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.8.7-1.el7.elrepo elrepo-kernel
# lt:long term support,长期支持版本;
# ml:mainline,主线版本;
5.安装最新版本的kernel
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-ml.x86_64
6.删除旧版本工具包
[root@localhost ~]# yum -y remove kernel-tools-libs.x86_64 kernel-tools.x86_64
7.安装新版本工具包
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-ml-tools.x86_64
编译升级
升级前
[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
下载安装包
linux内核官网:https://www.kernel.org/
[root@localhost ~]# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.196.tar.xz
链接:https://pan.baidu.com/s/1QSc_PeVsj6olE6vIrRScYQ 提取码:w1g2 # 有百度会员的,可以用网盘下载,没有的话,只能wget了,官方的服务器下载会比较慢,文件不大,只有97MB不到
编译内核
选择配置项的方式有以下几种,选择哪种都可以。
make config (基于文本的配置界面)
make menuconfig (基于文本菜单的配置界面)
make xconfig (基于图形窗口的配置界面)
make oldconfig (基于原来内核配置的基础上修改)
以上几种:
# make xconfig 最为友好,基于窗口操作,但是需要 Xwindow 的支持,CentOS 还好,若是使用其它没有图形界面的发行版就 GG 了。
# make menuconfig 相对比较友好,又是基于文本菜单,所有的发行版都可以使用,所以这里推荐使用 make menuconfig。
使用 make menuconfig 需要 ncurses-devel 的支持,如果之前没装过,需要执行下面的命令安装一下。
[root@localhost ~]# yum -y install ncurses-devel
[root@localhost ~]# tar xf linux-4.14.196.tar.xz -C /usr/local/
[root@localhost linux-4.14.196]# yum -y install gcc make elfutils-libelf-devel openssl-devel bc # 安装编译内核所需的依赖
[root@localhost ~]# cd /usr/local/linux-4.14.196/
[root@localhost linux-4.14.196]# make menuconfig
# 执行成功后,会显示下面的界面

Linux 内核所有的配置项都在这里,内核的编译分为两个部分,核心和模块,对于核心的部分,要编译进核心,可能以后会用到的部分,尽量编译成模块。
文本菜单选择界面,使用左(←)、右(→)箭头切换底部菜单,上(↑)、下(↓)箭头切换中间的配置项,空格键 选择配置项,部分配置项右边有 —> 标识,代表有下级子项,可以使用 Enter 进去选择。
同时每一项的前面都有以下标识,可以根据需要选择。
- <*>[*] 表示编译进核心
- <M> 表示编译成模块
- 空格 表示不选中此项
如果你只是看一下整个编译过程,不想深究每一项,执行上一步 make menuconfig 之后,直接保存退出就可以了,它会使用 CentOS 内部的配置文件作为这次编译的配置文件
# 配置项选完,config 配置文件生成之后,就可以开始编译了
# 编译时间比较长,如果上面你是自定义配置项,把不需要的配置都关闭,编译会快的多。我这使用的 CentOS 内部的配置文件,CentOS 为了大多数人的使用,开的配置项比较多,所以编译的时间比较长,也和你的电脑配置有关。我make了两个小时。
[root@localhost linux-4.14.196]# make
[root@localhost linux-4.14.196]# make modules_install # 安装模块
[root@localhost linux-4.14.196]# make install # 安装核心
[root@localhost linux-4.14.196]# ll /boot/ # 安装完成后,就可以看到4.14的内核文件了
total 201364
-rw-r--r--. 1 root root 151918 Nov 9 2018 config-3.10.0-957.el7.x86_64
drwxr-xr-x. 3 root root 17 Jun 30 18:04 efi
drwxr-xr-x. 2 root root 4096 Sep 9 14:06 extlinux
drwxr-xr-x. 2 root root 27 Jun 30 18:05 grub
drwx------. 5 root root 97 Sep 9 19:07 grub2
-rw-------. 1 root root 57430086 Jun 30 18:08 initramfs-0-rescue-502ad5c8bfc847fea2cacceff257adae.img
-rw-------. 1 root root 22417877 Jun 30 18:09 initramfs-3.10.0-957.el7.x86_64.img
-rw-------. 1 root root 98006427 Sep 9 19:07 initramfs-4.14.196.img
-rw-r--r--. 1 root root 314036 Nov 9 2018 symvers-3.10.0-957.el7.x86_64.gz
lrwxrwxrwx. 1 root root 25 Sep 9 19:04 System.map -> /boot/System.map-4.14.196
-rw-------. 1 root root 3543471 Nov 9 2018 System.map-3.10.0-957.el7.x86_64
-rw-r--r--. 1 root root 3498834 Sep 9 19:04 System.map-4.14.196
lrwxrwxrwx. 1 root root 22 Sep 9 19:04 vmlinuz -> /boot/vmlinuz-4.14.196
-rwxr-xr-x. 1 root root 6639904 Jun 30 18:08 vmlinuz-0-rescue-502ad5c8bfc847fea2cacceff257adae
-rwxr-xr-x. 1 root root 6639904 Nov 9 2018 vmlinuz-3.10.0-957.el7.x86_64
-rw-r--r--. 1 root root 7517472 Sep 9 19:04 vmlinuz-4.14.196
更新启动引导
[root@localhost linux-4.14.196]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg # 查看内核插入顺序,默认新内核是从头插入
0 : CentOS Linux (4.14.196) 7 (Core)
1 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-502ad5c8bfc847fea2cacceff257adae) 7 (Core)
[root@localhost linux-4.14.196]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.196
Found initrd image: /boot/initramfs-4.14.196.img
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-502ad5c8bfc847fea2cacceff257adae
Found initrd image: /boot/initramfs-0-rescue-502ad5c8bfc847fea2cacceff257adae.img
done
修改默认启动内核
[root@localhost ~]# grub2-editenv list # 查看默认启动的内核
saved_entry=CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
[root@localhost ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg # 查看内核插入顺序
0 : CentOS Linux (4.14.196) 7 (Core)
1 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-502ad5c8bfc847fea2cacceff257adae) 7 (Core)
[root@localhost ~]# grub2-set-default 'CentOS Linux (4.14.196) 7 (Core)' # 设置默认启动的内核
[root@localhost ~]# grub2-editenv list # 查看默认启动的内核
saved_entry=CentOS Linux (4.14.196) 7 (Core)
重启之后验证
[root@localhost ~]# reboot
[root@localhost ~]# uname -r
4.14.196
CentOS 7 下编译安装 4.14 内核的更多相关文章
- CentOS 6下编译安装MySQL 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CentOS 7 下编译安装lnmp之nginx篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168 ...
- CentOS 7 下编译安装lnmp之PHP篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...
- CentOS 7 下编译安装lnmp之MySQL篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...
- 在CentOS 7下编译安装Nginx+PHP+MySQL环境
本文转载自:http://www.softeng.cn/?p=156,本文已获得作者授权,未经作者同意,不可转载. 1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或 ...
- CentOS Linux下编译安装MySQL
本文参考张宴的Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]完成.所有操作命令都在CentOS 6.4 64位操作系统下实践 ...
- centos 6 下编译安装 nginx
下载nginx源码包,可以到nginx官方的下载文件归档里 http://nginx.org/download/ 下载 下载pcre源码,并编译安装,从pcre官方下载 ftp://ftp.csx. ...
- CentOS 7下编译安装Boost_1_57_0
之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查. 现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz. 现将步骤记录如下: 1. 解 ...
- Centos 7下编译安装Nginx
一.下载源代码 百度云网盘下载地址:https://pan.baidu.com/s/19MQODvofRNnLV9hdAT-R6w 提取码:zi0u 二.安装依赖及插件 yum -y install ...
随机推荐
- 理解闭包--js面向对象编程
什么是闭包? 先看一段代码: function a(){ var n = 0; function inc() { n++; console.log(n); } inc(); inc(); } a(); ...
- GoWeb之gin框架
Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 一.快速上手 安装 go mod init go get -u ...
- vue3.0+vite项目搭建
npm init vite-app <project-name> cd <project-name> 根据控制台的提示执行: npm install / yarn npm ru ...
- 微信小程序base64图片保存到手机相册
问题:base64图片不能直接用wx.saveImageToPhotosAlbum保存到手机相册 解决: 先用fs.writeFile写入本地文件,再wx.saveImageToPhotosAlbum ...
- UVA 10815 Andy's First Dictionary (C++ STL map && set )
原题链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- windows下过安全狗
最近想着把过waf相关的整理一下,本次主要以安全狗4.0为例进行演示 准备工作 安全狗官网:http://free.safedog.cn/install_desc_website.html环境:Win ...
- x86架构应用如何向Arm架构低成本迁移
曾几何时,无论是在服务器还是个人电脑,CPU芯片领域一直是 Intel 独占鳌头,旗下的 X86_64 架构被广泛采用.然而王权没有永恒,近年来 Arm64 架构异军突起,服务器端有华为鲲鹏920高性 ...
- SQL安全执行
begin tran begin -----------执行SQL开始----------------- update Audioset Name =3 -----------执行SQL结束----- ...
- 🏆【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
背景介绍 前几篇文章介绍了Nacos配置中心服务的能力机制,接下来,我们来介绍Nacos另一个非常重要的特性就是服务注册与发现,说到服务的注册与发现相信大家应该都不陌生,在微服务盛行的今天,服务是非常 ...
- gin中HTML渲染
package main import ( "github.com/gin-gonic/gin" "net/http" ) func login(ctx *gi ...