Centos7 内核编译升级到指定的版本

#如何编译和安装Linux Kernel 到指定的版本
#从源代码构建(编译)和安装最新Linux内核的过程如下:

#1.从kernel.org获取最新内核
#2.验证内核
#3.Untar内核tarball
#4.复制现有的Linux内核配置文件
#5.编译并构建Linux内核4.19.6
#6.安装Linux内核和模块(驱动程序)
#7. 更新Grub配置
#8.重启系统

打开https://www.kernel.org
查看你想安装的内核版本. 如果是产品部署建议用longterm版本.

在这里插入图片描述

前提条件: 已经安装好Linux 操作系统,我安装的是Redhat Centos7 1810 版本的,最小化安装.

自动执行的升级脚本如下:

#!/bin/bash
version=“4.14.89”
#编译升级Linux内核
#使用代理速度会快一点,如果你在中国境内,因为编译安装需要先把环境部署好,需要用到国外的RPM源安装,可以设置阿里的yum 源头,或设置专门的代理.

#CentOS 6
#wget -O /etc/yum.repos.d/CentOS-Base.repo #http://mirrors.aliyun.com/repo/Centos-6.repo

#CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

或者设置自己的代理
Yum 代理设置 请查看文章 https://blog.csdn.net/happyfreeangel/article/details/84998968

Yum 代理设置
在/etc/yum.conf后面添加以下内容:

如果代理不需要用户名密码认证:
proxy=http://代理服务器IP地址:端口号
如果需要认证
proxy=http://代理服务器IP地址:端口号
proxy_username=代理服务器用户名
设置wget,curl 代理,这个可以省略,之所以这样设置是因为我们内部有一台代理可以直达国外,可以提高下载速度,节省大量的时间. 如果你没有,那就需要等一会儿了。
export http_proxy=http://10.20.1.1:8118
export https_proxy=https://10.20.1.1:8118

#先安装基本工具,这些是编译内核之前的准备工作
sudo yum install -y epel-release
sudo yum group install -y “Development Tools”
sudo yum install -y bc wget xz ncurses-devel bison flex elfutils-libelf-devel openssl-devel

export kernelfile=linux-${version}.tar.xz

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.xz #longterm kernel 4.14.89

xz -d -v ${kernelfile}

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${version}.tar.sign

result= ( g p g v e r i f y l i n u x (gpg --verify linux- {version}.tar.sign | grep ‘using RSA key’)
recv_keys=""
for word in r e s u l t d o r e c v k e y s = result do recv_keys= word #最后一个才是我们要的
done

echo $recv_keys
gpg --recv-keys r e c v k e y s g p g v e r i f y l i n u x recv_keys gpg --verify linux- {version}.tar.sign

tar xvf linux-${version}.tar

cd linux- v e r s i o n c p v / b o o t / c o n f i g {version} cp -v /boot/config- (uname -r) .config

#下面的make menuconfig 需要手动 干预, 我是选择默认,直接保存退出,什么都没改。就是为了生成一个标准的.config 文件。

make menuconfig #这里要特别注意,进去后退出必须保存为.config 否则下面的运行每个都要确认.
#make xconfig # X windows (Qt) based configuration tool, works best under KDE desktop
#make gconfig #X windows (Gtk) based configuration tool, works best under Gnome Dekstop.

echo 开始编译内核linux-${version} > 1.log
date>>1.log

#使用多个线程编译,每个cpu 一个线程. 如果你是单个cpu,可以设置 make -j 2

make -j $(nproc)

sudo make modules_install

sudo make install

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-${version}

sudo reboot
date >> 1.log
echo 内核linux-${version}编译安装完成 >>1.log
date>>1.log
#重新启动之后
uname -mrs

如果旧的内核不想要了,可以执行:
yum remove kernel -y

猜你喜欢

转载自blog.csdn.net/happyfreeangel/article/details/85088706