CentOS 更新、编译和删除内核
时间:2019-01-11
本文章向大家介绍CentOS 更新、编译和删除内核,主要包括CentOS 更新、编译和删除内核使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
查看当前内核版本
uname -r
3.10.0-957.1.3.el7.x86_64
安装最新发行版内核,更新仓库即可
yum -y update
安装官方内核,需要先启用ELRepo仓库
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
To install ELRepo for RHEL-7, SL-7 or CentOS-7:
pm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
To install ELRepo for RHEL-6, SL-6 or CentOS-6:
rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
查看可安装内核版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
elrepo-kernel | 2.9 kB 00:00:00
elrepo-kernel/primary_db | 1.8 MB 00:00:06
可安装的软件包
kernel-lt.x86_64 4.4.169-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 4.4.169-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 4.4.169-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 4.4.169-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 4.4.169-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 4.4.169-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 4.4.169-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 4.20.1-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
perf.x86_64 4.20.1-1.el7.elrepo elrepo-kernel
python-perf.x86_64 4.20.1-1.el7.elrepo elrepo-kerne
kernel-lt为LTS版本,kernel-ml为主线版本。
安装长期支持版
yum --enablerepo=elrepo-kernel install kernel-lt
安装主线版
yum --enablerepo=elrepo-kernel install kernel-ml
查看已安装内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.169-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-569848e1c87d4fd7bed807cbe8e3a05e) 7 (Core)
设置默认内核,0来源于上方编号
grub2-set-default 0
编译配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统
reboot
下载源码编译内核
前往https://www.kernel.org/下载需要的内核源文件
找到自己需要的版本,复制链接地址下载源码包,当然也可以自己下好拷贝到linux里
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.14.tar.xz
解压并进入该目录
tar -xvf linux-4.19.14.tar.xz
cd linux-4.19.14/
拷贝本机内核的配置文件给新内核用
cp /boot/config-4.4.169-1.el7.elrepo.x86_64 .config
修改配置文件
vim .config
用\查找‘’CONFIG_DEBUG_INFO=y‘’,用#将其注释掉,不然编译出来的内核将非常大,我第一次不懂编译出来的内核有2g多。注释掉再编译是190m
安装编译必需的包,这是我所缺少的包,也可以直接make系统提示缺什么再装什么
yum -y install gcc
yum -y install ncurses-devel
yum -y install bison
yum -y install flex
yum -y install elfutils-libelf-devel
yum -y install bc
yum -y install openssl-devel
调整配置文件,根据需要调整项目
make menuconfig
开始编译,耗时较长,需要耐心等待
make
安装内核模块
make modules_install
添加启动项
make install
查看已安装内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.169-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-569848e1c87d4fd7bed807cbe8e3a05e) 7 (Core)
设置默认内核,0来源于上方编号
grub2-set-default 0
编译配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统
reboot
删除内核
查看通过yum安装内核
rpm -qa | grep kernel
kernel-tools-3.10.0-957.1.3.el7.x86_64
kernel-tools-libs-3.10.0-957.1.3.el7.x86_64
kernel-3.10.0-957.1.3.el7.x86_64
kernel-lt-4.4.169-1.el7.elrepo.x86_64
删除不需要的内核
yum remove 内核名
删除编译安装的内核
首先从其它内核进入系统,删除/usr/lib/modules下对应的文件夹以及/boot/对应的项目。
最后清理启动项,查看已安装内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.4.169-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-569848e1c87d4fd7bed807cbe8e3a05e) 7 (Core)
设置默认内核,0来源于上方编号
grub2-set-default 0
编译配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统
reboot
- SpringMVC统一异常处理
- React Native开发之调试
- JavaWeb三大组件之Filter学习详解
- JavaWeb三大组件之Servlet学习
- Android App瘦身实战
- [先行者周末课程] 日历组件的开发思路讲解&&日历组件在实际工作中的使用方式
- Batik渲染png图片异常的bug修复
- SpringMVC支持跨域的两种姿势
- SpringMVC返回图片的几种方式
- Redis实现分布式锁相关注意事项
- React Native调用Android相机图库
- SpringMVC之请求参数的获取方式
- 糖大夫--测量流程性能监控自动化方案设计
- ReactNative调用Android原生模块
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux手动、自动更改网卡MAC地址的方法
- Centos7的Firewalld防火墙基础命令详解
- Linux下安装或升级Python 2.7的操作方法
- Linux中git用https连接时不用每次输入密码的方法
- Centos7.3 RabbitMQ分布式集群搭建示例
- Ubuntu16.04环境下搭建FTP服务器的教程
- Linux 查看空间使用情况的实例详解
- CentOS 6.8 安装vsftpd的方法步骤
- centos7下搭建ZooKeeper3.4中间件常用命令小结
- Linux性能测试 pmap命令详解
- Linux7.7设置交换分区SWAP的方法
- 在Linux里安装和启动nginx的方法
- Linux下如何对ISO文件编辑的方法示例
- Linux中创建新用户并赋予指定目录的相关权限
- Linux服务器下安装配置Nginx的教程