GVKun编程网logo

在centos 7下升级内核(centos7.4升级内核)

9

最近很多小伙伴都在问在centos7下升级内核和centos7.4升级内核这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展CentOS6.4系统上编译升级内核、CentOS6.5升

最近很多小伙伴都在问在centos 7下升级内核centos7.4升级内核这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展CentOS 6.4系统上编译升级内核、CentOS 6.5 升级内核到 3.10.28、CentOS 6.5 升级内核教程、centos 6.x 升级内核等相关知识,下面开始了哦!

本文目录一览:

在centos 7下升级内核(centos7.4升级内核)

在centos 7下升级内核(centos7.4升级内核)

?

前言

今天读了一篇老外的文章,讲的是如何在linux环境下升级内核。比较暴力,比较简单,故做个记录。
?
文章中,作者先列出一个常识:linux是内核名,不是系统名。我们平时说的”linux系统“是错的,准确的说法是:“基于linux内核进行开发的各式操作系统”。好吧,膝盖中箭~
?
言归正传,说回怎么升级内核。

?
?

步骤

1. 查看当前内核

uname -sr

分享图片


当然,我用另一台机做测试的,这里只是截取版本号。

?

2. 使用elrepo进行内核升级,我们先安装它,通过rpm方式

[[email protected] ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[[email protected] ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

分享图片

?

3. 改变yum缓存,使用此elrepo

[[email protected] ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

分享图片


?

4. 安装最新稳定版内核,需要等几分钟

[[email protected] ~]# yum --enablerepo=elrepo-kernel install kernel-ml

分享图片


?

5.设定默认启动内核

修改/etc/default/grub,将GRUB_DEFAULT这一项置为0,意为默认从第一启动项开始启动。

分享图片


?

6. 刷新配置,使得刚才的配置生效

grub2-mkconfig -o /boot/grub2/grub.cfg

分享图片


?

7. 重启后检查版本号,如果是最新版本,说明修改成功。

分享图片


?
?
?

小结

此方法优点:傻瓜,通过yum进行升级,而没有通过编译方法
?
此方法缺点:适合自己耍着玩,生产中无法使用,无法精确升级到某特定版本 ? ? ? PS++: 我做这次升级的原因是,当时在搞装docker,而docker要求操作系统内核要高于3.10。由于我的内核版本太低,所以才会去升级的~

CentOS 6.4系统上编译升级内核

CentOS 6.4系统上编译升级内核

可能因为以下几种原因,你可能需要对Linux kernel内核进行升级操作。

想要尝试一个新的内核模块
设备驱动需要新的内核功能模块支持
旧版本的内核有新的漏洞被发现
系统经常容易崩溃
不管因为什么原因,每一个Linux用户对Linux内核进行升级,是一个很重要的维系统护工作。

下面我们来学习在CentOS6.4系统下,将Linux kernel 2.6.32升级到Linux kernel 3.2.48 LTS。

1、先检查系统的当前内核版本

$ uname -r2.6.32-358.el6.x86_64
在开始升级下,需要安装一些构建内核的必需的依赖软件包

$ sudo yum groupinstall “Development Tools”
$ sudo yum install ncurses-devel然后,安装现有的系统更新

$ sudo yum update2、开始安装内核
从kernel.org下载新的内核源码包3.2.48 LTS,然后对其进行编译安装

$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.48.tar.xz
$ sudo tar xvfvJ linux-3.2.48.tar.xz -C /usr/src
$ cd /usr/src/linux-3.2.48编译一个新的内核之前,你需要生成一个内核配置。如果你想通过图形用户界面生成一个内核配置,运行:

$ sudo make menuconfig

另外,如果你想使用相同的内核配置为当前运行的内核,运行下面的命令:

$ sudo make oldconfig如果你想使用旧内核配置,并自动接受每一个选项的默认设置,请运行以下命令:

$ sudo sh -c ‘yes “” | make oldconfig’内核设置完成后,开始编译新的内核

$ sudo make上述步骤将需要30分钟或更长时间,这取决于你的cpu速度。编译完成后,下一步安装新的内核(和所有的内核模块)如下:

$ sudo make modules_install install3.设置启动项
要在您的系统中使用新编译的内核,请在grub菜单中设置启动顺序

$ sudo vi /boot/grub/grub.conf
default=1


Linux Kernel 的下载地址:请点这里

CentOS 6.5 升级内核到 3.10.28

CentOS 6.5 升级内核到 3.10.28

本文适用于CentOS 6.4, CentOS 6.5,亲测可行,估计也适用于其他Linux发行版。
1. 准备工作
1.1 下载源码包

Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y

    r: 主版本号
    x: 次版本号,偶数表示稳定版本;奇数表示开发中版本。
    y: 修订版本号 , 表示修改的次数

去 http://www.kernel.org 首页,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.28,

wget  https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.28.tar.xz

1.2 解压

tar -xf linux-3.10.28.tar.xz

1.3 更新当前系统

sudo yum update
sudo yum upgrade

1.4 安装编译内核所需要的软件包

sudo yum groupinstall "Development Tools" # 一口气安装编译时所需的一切工具
sudo yum install ncurses-devel #必须这样才能让 make *config 这个指令正确地执行。
sudo yum install qt-devel #如果你没有 X 环境,这一条可以不用
sudo yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel #创建 CentOS-6 内核时需要它们

2 配置文件
2.1 查看当前系统内核

uname -r
2.6.32-358.11.1.el6.x86_64

2.2 将当前系统的配置文件拷贝到当前目录

cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config

2.3 使用旧内核配置,并自动接受每个新增选项的默认设置

sh -c ''yes "" | make oldconfig''

make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件,参考 http://stackoverflow.com/questions/4178526/what-does-make-oldconfig-do-exactly-linux-kernel-makefile
3 编译

sudo make -j8 bzImage #生成内核文件
sudo make -j8 modules #编译模块
sudo make -j8 modules_install #编译安装模块

要严格按照这个顺序进行编译,不能合并成一句,sudo make -j8 bzImage modules modules_install。

-j后面的数字是线程数,用于加快编译速度,一般的经验是,有多少G内存,就填写那个数字,例如有8G内存,则为-j8。
4 安装

sudo make install

如果出现了 ERROR: modinfo: could not find module xxx,数量少的话,可以忽略。
5 修改Grub引导顺序

安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。

编辑 grub.conf文件,

sudo vim /etc/grub.conf

数一下刚刚新安装的内核在哪个位置,从0开始,然后设置default为那个数字,一般新安装的内核在第一个位置,所以设置default=0。
6 重启

sudo reboot

重启后,看一下当前内核版本号,

uname -r
3.10.28

成功啦!!
7 如果失败,则重新循环

如果失败,重新开始的话,要清理上次编译的现场

make mrproper #清理上次编译的现场

然后转到第2步,重新开始。

CentOS 6.5 升级内核教程

CentOS 6.5 升级内核教程

1.下载源码包

网址:http://www.kernel.org

在首页可以看到有stable,longterm等版本,一般选择下载longterm版本,因为此版本为提供长期支持的稳定版,因此我选择3.12.16.

[root@CentOS-BinaryDev~]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.16.tar.xz

2.解压并进入目录

[root@CentOS-BinaryDev~]# tar -xf linux-3.12.16.tar.xz

[root@CentOS-BinaryDev~]# cd linux-3.12.16

3.更新当前系统

[root@CentOS-BinaryDev~]# yum update

[root@CentOS-BinaryDev~]# yum upgrade

4.安装编译内核所需要的软件包

[root@CentOS-BinaryDev~]# yum groupinstall “Development Tools”

[root@CentOS-BinaryDev~]# yum install ncurses-devel

[root@CentOS-BinaryDev~]# yum install qt-devel

[root@CentOS-BinaryDev~]# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

5.查看当前系统内核

[root@CentOS-BinaryDev~]# uname -r

2.6.32-358.11.1.el6.x86_64

6.将当前系统内核的配置文件拷贝到当前目录

[root@CentOS-BinaryDev~]#cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config

7.使用当前系统内核配置,并自动接受每个新增选项的默认设置

[root@CentOS-BinaryDev~]# sh -c ' yes “” | make oldconfig'

8.编译

[root@CentOS-BinaryDev~]# make bzImage

[root@CentOS-BinaryDev~]# make modules

[root@CentOS-BinaryDev~]# make modules_install

9.安装

[root@CentOS-BinaryDev~]# make install

如果出现少量ERROR可以忽略

10.修改Grub引导顺序

[root@CentOS-BinaryDev~]# vim /etc/grub.conf

一般新内核的位置都在第一个,所以设置default=0.

11.重启后查看内核版本号

[root@CentOS-BinaryDev~]# uname -r

3.12.16

12.如果失败,转至第5步,在重新开始之前,需要清理上次编译的现场

[root@CentOS-BinaryDev~]# make mrproper

centos 6.x 升级内核

centos 6.x 升级内核

系统准备

  • 查看本地系统版本
    cat /etc/redhat-release 

CentOS release 6.5 (Final)

  • 查看本地内核版本
    uname -r

2.6.32-431.el6.x86_64

  • 更新本地环境到最新
    yum update
    yum upgrade
yum 更新慢的可以参考 [centos配置yum源](http://my.oschina.net/2688/blog/614171)

下载

  • 编译环境工具包
    yum install wget xz gcc gcc-c++ bc ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
  • 下载内核包
    cd /usr/local/src/
    wget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.12.53.tar.xz
    
    如果下载慢可以去官网 或者 我的百度网盘下载

编译内核

    cd /usr/local/src
    tar -vxf linux-3.12.53.tar.xz
    cd linux-3.12.53
    cp /boot/config-2.6.32-431.el6.x86_64 .config  //直接用现有的内核的配置文件进行修改
    sh -c ''yes "" | make oldconfig''
make oldconfig 命令 会读取当前目录下的.config文件,然后备份.config文件为.config.old,并生成新的.config文件
    make bzImage          //生成内核文件
    make modules          //编译模块
    make modules_install  //编译安装模块

安装

    make install //会自动添加Grub引导配置文件
    vi /etc/grub.conf //编辑grub.conf文件把default改为0 (一般新增加的内核的位置都在第一个)
    reboot //重启后
    uname -r //查看内核版本号
    cd /usr/local/src/linux-3.12.53
    make mrproper //删除所有的编译生成文件和备份文件

问题集合

  • yum 更新的时候太慢 使用其他yum源,参考 centos配置yum源
  • 编译失败 尝试重新编译,编译前需要执行make mrproper

参考阅读

- [https://segmentfault.com/a/1190000000733628](https://segmentfault.com/a/1190000000733628)
- [http://cn.soulmachine.me/blog/20140123/](http://cn.soulmachine.me/blog/20140123/)
- [http://winotes.net/centos-64-upgrade-to-kernel-3x.html](http://winotes.net/centos-64-upgrade-to-kernel-3x.html)

今天的关于在centos 7下升级内核centos7.4升级内核的分享已经结束,谢谢您的关注,如果想了解更多关于CentOS 6.4系统上编译升级内核、CentOS 6.5 升级内核到 3.10.28、CentOS 6.5 升级内核教程、centos 6.x 升级内核的相关知识,请在本站进行查询。

本文标签: