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