最近很多小伙伴都在问在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 6.4系统上编译升级内核
- CentOS 6.5 升级内核到 3.10.28
- CentOS 6.5 升级内核教程
- centos 6.x 升级内核
在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系统上编译升级内核
可能因为以下几种原因,你可能需要对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.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 升级内核教程
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 升级内核
系统准备
- 查看本地系统版本
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 升级内核的相关知识,请在本站进行查询。
本文标签: