Linux 升级到指定内核(Centos7 yum升级内核、centos系统中kernel-devel)

一、Linux 升级内核

Centos7 yum/rpm升级到最新内核

Centos7升级内核
参考URL: https://www.cnblogs.com/mgsudu/p/14741297.html
如何在 CentOS 7 中安装或升级最新的内核
参考URL: https://linux.cn/article-8310-1.html

具体,推荐查看原文。

检查已安装的内核版本

[root@localhost ~]# uname -sr
Linux 3.10.0-1160.el7.x86_64

大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。

但是,这只会升级内核到仓库中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。
http://elrepo.org/tiki/HomePage

Centos 7 rpm升级到指定内核

rpm 去
https://pkgs.org/download/kernel(list_del) 找 kernel-xxx.rpm
https://pkgs.org/download/kernel-devel 找 kernel-devel-xxxx.rpm

下载指定版本用rpm -Uvh安装或者用yum安装:

yum -y install kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
yum -y install kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm

centos7亲测:rpm安装的内核,reboot后貌似就自动切换好了。

关于Linux依赖包资源下载

教你怎么解决Linux依赖包第一篇:pkgs.org资源网下载
参考URL: https://blog.csdn.net/qq_36154886/article/details/106853048

  1. pkgs.org
    在pkgs网站上几乎收集了所有对外发布的Linux服务包,无论是Debian系,红帽系,arrch系都有,一个字:齐全
    https://pkgs.org/

  2. rpm.pbone.net
    http://rpm.pbone.net/index.php3

二、Linux内核源码的编译及安装

下载Linux内核的源代码 (Download the source code of Linux kernel)
从[ https://www.kernel.org/]下载。

三、设置 grub2 切换内核

查看系统上的所有可用内核:

$ awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

0 : CentOS Linux (5.12.1-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.25.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-16ba4d58b7b74338bfd60f5ddb0c8483) 7 (Core)

设置新的内核为grub2的默认版本

服务器上存在4 个内核,我们要使用 5.12.1这个版本,可以通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置

方法1、通过 grub2-set-default 0 命令设置
其中 0 是上面查询出来的可用内核
grub2-set-default 0

方法2、编辑 /etc/default/grub 文件
设置 GRUB_DEFAULT=0,通过上面查询显示的编号为 0 的内核作为默认内核:

$ vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=" ( s e d ′ s , r e l e a s e . ∗ (sed 's, release .* (seds,release.,g’ /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=“console”
GRUB_CMDLINE_LINUX=“crashkernel=auto rd.lvm.lv=cl/root rhgb quiet”
GRUB_DISABLE_RECOVERY=“true”

方法3: 推荐
查看所有内核启动 grub2

# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 
0 : CentOS Linux (5.2.4-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-327.28.3.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-327.13.1.el7.x86_64) 7 (Core)
4 : CentOS Linux, with Linux 0-rescue-cd8c4444947b4b0b818457f51ded6591

修改为最新的内核启动
grub2-set-default ‘CentOS Linux (5.2.4-1.el7.elrepo.x86_64) 7 (Core)’

然后reboot

经过测试 centos7 rpm安装完成,重启,自动就换成你安装的内核了。

四、centos系统中kernel-devel

1. LINUX中的kernel-devel工具是干什么的?

如果某个程序需要内核提供的一些功能,它就需要内核的 C header 来编译程序,这个时候 linux-devel 里面的东西就用上了。

kernel-devel 不光是 C Header 文件,它还有内核的配置文件,以及其他的开发用的资料。

区别:kernel-devel包只包含用于内核开发环境所需的内核头文件以及Makefile,而kernel-souce包含所有内核源代码。

如果仅仅是用于你自己编写的模块开发的话,因为只需引用相应的内核头文件,所以只有devel包即可,如果你要修改现有的内核源代码并重新编译,那必须是kernel-souce。

kernel-souce在RH某些版本之后不再附带在发行版中了,必须自己通过kernel-XXX.src.rpm做出来。

kernel-devel是用做内核一般开发的,比如编写内核模块,原则上,可以不需要内核的原代码。
kernel则是专指内核本身的开发,因此需要内核的原代码。

rpm 去
https://pkgs.org/download/kernel(list_del) 找 kernel-xxx.rpm
https://pkgs.org/download/kernel-devel 找 kernel-devel-xxxx.rpm

2. 安装标配内核 kernel-devel

找到linux的安装盘,将其挂载到当前系统中,然后去Packages目录执行安装命令。

mkdir -p /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

cd /mnt/cdrom

cd Packages

rpm -Uvh kernel-devel*.rpm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值