运维服务小笔记

If not now,when?If not me,who?

八月 25th, 2015

阿里云ECS编译升级VM内核到4.x

762 views, linux, Server, by 川望.

今天没事通过编译的方法,测试了一下centos7.x系统下降3.x内核升级到4.x,记录一下。以前阿里云的ECS是不可以升级内核的,实际阿里云centos5.8以上的系统,就支持yum升级内核了。只是内核升级是一件有风险的事情,特别是在定制的非标准硬件的云环境下,所以阿里云ECS购买须知也明确提醒,不要轻易升级内核。
操作有风险,请做好快照备份。下面是操作过程:

查看当前系统版本centos7.0;内核版本:3.10.0;

[root@iZ28yx1yevuZ ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.0.1406 (Core)
Release:        7.0.1406
Codename:       Core
[root@iZ28yx1yevuZ ~]# uname -r
3.10.0-123.9.3.el7.x86_64

1
前往kernel.org下载目前最新的内核版本:

[root@iZ28yx1yevuZ ~]#wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.1.6.tar.xz;mv linux-4.1.6.tar.xz /usr/src
[root@iZ28yx1yevuZ ~]#cd /usr/src;tar -xf linux-4.1.6.tar.xz
解压压缩包,并通过make menuconfig方式编译,如下,出现报错:
2

这是因为menuconfig需要ncurses-devel 支持,下面安装ncurses-devel后重新编译就可以了

root@iZ28yx1yevuZ ~]# yum install ncurses-devel -y
3
由于阿里云目前大部分机器还是xen环境的,所以阿里云环境下编译和普通系统相比,需要增加xen guest support,如下(menuconfig下如果找不到配置,可以个vi一样,通过”/”方式搜索):
注意:这些模块需要built-in,也就是复选框内需要是*,而不是M
Processor type and features->Linux guest support->Xen guest support
4
 Device Drivers  —> Block devices  —> Xen virtual block device support
Device Drivers  —> Block devices  —>  Xen block-device backend driver
 5
Device Drivers  —>Xen driver support  把下面的选项建议都选上
6
 网络方面的驱动:

Device Drivers  —> Network device support  —> Xen network device frontend driver
Device Drivers  —> Network device support  —>  Xen backend network device

7

完成后开始编译,这里使用vzImage编译后的核心是压缩的。

[root@iZ28yx1yevuZ ~]#make -j 16 bzImage

(这个过程会非常的漫长,为了防止终端意外断开导致前功尽弃,这里建议在screen下执行操作。我测试服务器是16核,所以这里制定了16个job加速编译)

8
可以看到16core都是跑满状态9
完成后依次编译模块,安装
[root@iZ28yx1yevuZ ~]#make -j16 modules
[root@iZ28yx1yevuZ ~]#make -j16 modules_install
[root@iZ28yx1yevuZ ~]#make -j16 install
10
 完成后看一下grub文件,目前有三个引导项目:
root@iZ28yx1yevuZ ~]#cat /etc/grub2.cfg |egrep ^menuentry
 11
看一下目前的默认引导项是3.10.0内核
root@iZ28yx1yevuZ linux-4.1.6]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-123.9.3.el7.x86_64) 7 (Core)
将默认引导内核改为我们刚安装的4.1.6版本

[root@iZ28yx1yevuZ linux-4.1.6]# grub2-set-default "CentOS Linux (4.1.6) 7 (Core)"
目前默认引导项是最新的内核了,这时候重启测试
root@iZ28yx1yevuZ linux-4.1.6]# grub2-editenv list
saved_entry=CentOS Linux (4.1.6) 7 (Core)
[root@iZ28yx1yevuZ linux-4.1.6]# reboot
默认选择的是4.1.6内核
12
正常启动后测试,内核已经是最新的版本了。
13

 



Back Top

发表评论

电子邮件地址不会被公开。 必填项已用*标注

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量