我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

Linux内核升级(两种方法:内核编译、yum更新)

Linux 内核这个概念不用多说大家都很清楚了,就是因为内核版本的不同才有了 Linux 发行版这个说法,主流的应该是 .2,内核版本是 3.10,越高级的内核版本越高,越高级的内核版本越低,而低版本的内核的 bug 就越多,所以系统需要升级内核版本来提高安全性、稳定性,增加更多的功能。

一般来说,Linux是支持多个内核版本共存的,只是系统启动时应用哪个内核版本的问题。

关于内核:

Linux内核有两种类型:官方内核(通常由内核开发者使用)和各大Linux发行版的内核(一般用户常用)。

关于Linux内核版本号:

例如:[root@ ~]# uname -r

3.10.0-1127.19.1.el7。

查询得到的版本号为:3.10.0-1127.19.1.el7。

第一组数字:3,主版本号

第二组数字:10,小版本号,当前为稳定版本。一般双数表示稳定版本,奇数表示开发版本,通常不会用于生产中。

第三组数字:0,修订编号

第四组数字:1127.19.1,表示分发版本的补丁版本

el7:这意味着我使用的内核是专用于/系列发行版的内核。

:所使用的操作系统适合64位CPU。

内核版本分类:

在官方网站上查看内核类型:Linux

升级linux内核版本_内核版本升级最简单三个步骤_内核版本升级是什么意思

内核选择:

根据上面对内核类型的介绍,我们可以知道修复了最多 Bug 的稳定内核类型是,所以在上面第二章的表格中选择一个内核类型即可。下面的实验使用的是 5.4.69 源码包。(顺便说一下,上面表格还写着下一个版本的内核将于 2020-10-02 发布)。

选择的理由是:它是一个长期稳定的版本,大多数 Bug 都已修复,主版本足够高,内核向下兼容,可以体验更多新特性。(第一个表格显示了发布者名称、发布日期以及相应版本提供的最终支持时间——那个时间之后就没人关心了)

内核升级:

通常情况下,多个内核是可以共存的,所以不建议删除旧版本内核,直接安装新版本内核,在 grub 中选择新版本内核进入系统就可以使用了。(谁也不能保证新内核一定好用,毕竟留着旧内核以后再改变主意更容易,对吧?)

第一种方法:yum升级安装方法(相对来说很简单)

步骤1:检查安装的内核版本

uname -rs 给出结果:Linux 3.10.0-1127.19.1.el7。

第 2 步:升级 7 中的内核

允许使用,这是一个可以将内核升级到最新版本的第三方存储库。

要在 7 上启用存储库,请运行以下命令:

rpm --#导入源的密钥

rpm -Uvh #启用源仓库

yum --="*" --="-" list # 检查有哪些内核版本可供安装

输出如下:

[root@ ~]# yum --="*" --="-" 列表

*-:

-. 7.0-5.el7. -

-lt. 4.4.238-1.el7。-

-lt-开发。4.4.238-1.el7。-

-lt-文档。4.4.238-1.el7。-

-lt-. 4.4.238-1.el7. -

-lt-工具。4.4.238-1.el7。-

-lt-工具-库.4.4.238-1.el7.-

-lt-工具-库-开发。4.4.238-1.el7。-

-ml-devel.5.8.13-1.el7.-

-ml-文档。5.8.13-1.el7。-

-ml-.5.8.13-1.el7.-

-ml-工具。5.8.13-1.el7。-

-ml-工具-库。5.8.13-1.el7。-

-ml-工具-libs-devel.5.8.13-1.el7.-

性能 5.8.13-1.el7。-

-性能。

开始安装:yum --=--ml-y#安装的是主线版本,比较激进,慎重选择 版本号5.8.13

yum --=- -lt-y #安装长期稳定版本,稳定可靠,版本4.4.238

两个yum命令任选一个进行安装,安装完成后重启机器,手动选择刚刚安装的新版本!!!

步骤 3:设置 GRUB 的默认内核版本

为了使新安装的内核成为默认启动选项,需要修改 GRUB 配置,如下所示:

打开并编辑/etc//grub并设置=0。这意味着GRUB初始化页面中的第一个内核将成为默认内核。

=5

=“$(sed's,.*$,,g'/etc/-)”

=saved #只需将此处的saved改为0即可,重启后,默认版本将是您上次选择的版本。

=真

=“”

="rhgb 安静"

Y="真"

执行命令:grub2--o /boot/grub2/grub.cfg

第二种方法(执行这两个命令后重启就可以了):

grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
#这个命令的输出是:
[root@centos2 ~]# grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.16.9-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.16.9-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1062.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1062.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-8526a2b32ead4d979c011ddc805a5d14
Found initrd image: /boot/initramfs-0-rescue-8526a2b32ead4d979c011ddc805a5d14.img
done
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"

第二种方法:使用官网源码包编译安装(难度可达地狱级,不过既然是实验自然简单,正常难度)

这是非常重要的事情,只有root账号才可以操作,普通用户不用考虑这个。

wget #下载这样一个xz包,解压!!

​
tar -xf  linux-5.4.69.tar.xz  
​

进入解压后的内容目录:

cd  linux-5.4.69

编译前的环境准备(安装编译依赖,升级所有软件):

yum install gcc make ncurses-devel openssl-devel flex bison  elfutils-libelf-devel  -y
yum upgrade -y

查看现有的内核配置文件(我已经用rpm方式升级过了,所以有两个内核配置文件,如果是yum -y之后的,那么应该有一个文件-3.10.0-693.el7。):

[root@master boot]# pwd
/boot
[root@master boot]# ls config-*
config-3.10.0-693.el7.x86_64  config-5.16.9-1.el7.elrepo.x86_64

cp /boot/-3.10.0-693.el7。。#把内核配置文件复制到刚才解压的目录下,这个文件是发行版自带的文件。#比如我的内核原来查询的是3.10.0-1127.19.1.el7,这是因为我用yum -y这个命令升级的,原来版本是3.10.0-693.el7。(这里注意,这个命令是复制重命名,是点号)

OK,环境准备好了,开始安装。

#make(最传统的基于文本的配置界面,不推荐)

#make(基于文本菜单的配置界面,推荐用于字符终端)

#make(基于图形窗口模式的配置界面,推荐使用)

#make(如果只想在原有内核配置基础上修改一些小地方的话,会省去很多麻烦)

下面的安装是选择使用make(上面四个命令都选择使用第二个)。

make #这个命令会调出一个简单的菜单,类似BIOS菜单,可以选择功能。具体功能太多,就不一一介绍了。偷懒的方法就用默认的吧。选择save,选择ok。

升级linux内核版本_内核版本升级最简单三个步骤_内核版本升级是什么意思

make -j `nproc` && make && make #打开内核,编译三次,大家都懂的!!

编译时间比较长,在我的四核CPU上大概一个小时。编译完成后echo $?看看是否正常,如果返回0就重启机器,如果返回其他数就根据错误信息改正。关于启动菜单顺序的问题,可以参考第一种方法最后一步处理,就不多说了。

两种方法的优缺点:

毫无疑问,第一种方法简单,这是它唯一的优点。缺点是只能选择4.4.238和5.8.13内核(只能选择源里有的,没有大神也没办法)(截至2021年9月,本网络源里只有5.14和5.4内核)。第二种方法,编译,选择空间更大,更灵活。你可以选择你需要的模块,然后编译进去。只是难度更大,需要对内核有更深的理解。

2021年9月,网络源的内核版本只有5.14和5.4

[root@hdp-1 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Determining fastest mirrors
 * elrepo-kernel: mirror.yandex.ru
https://mirror.yandex.ru/elrepo/kernel/el7/x86_64/repodata/repomd.xml: [Errno 14] curl#51 - "Unable to communicate securely with peer: requested domain name does not match the server's certificate."
Trying other mirror.
elrepo-kernel                                                                                                                                        | 3.0 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                                             | 2.0 MB  00:01:24     
Available Packages
elrepo-release.noarch                                                                 7.0-5.el7.elrepo                                                         elrepo-kernel
kernel-lt.x86_64                                                                      5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-devel.x86_64                                                                5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-doc.noarch                                                                  5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-headers.x86_64                                                              5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-tools.x86_64                                                                5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-tools-libs.x86_64                                                           5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                     5.4.144-1.el7.elrepo                                                     elrepo-kernel
kernel-ml.x86_64                                                                      5.14.1-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-devel.x86_64                                                                5.14.1-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-doc.noarch                                                                  5.14.1-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-headers.x86_64                                                              5.14.1-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-tools.x86_64                                                                5.14.1-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-tools-libs.x86_64                                                           5.14.1-1.el7.elrepo                                                      elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                     5.14.1-1.el7.elrepo                                                      elrepo-kernel
perf.x86_64                                                                           5.14.1-1.el7.elrepo                                                      elrepo-kernel
python-perf.x86_64                                                                    5.14.1-1.el7.elrepo                                                      elrepo-kernel

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4596.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线