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

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

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

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

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

1 [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
2 [root@iZ28yx1yevuZ ~]#cd /usr/src;tar -xf linux-4.1.6.tar.xz
解压压缩包,并通过make menuconfig方式编译,如下,出现报错:
2

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

1 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编译后的核心是压缩的。

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

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

8
可以看到16core都是跑满状态 9
完成后依次编译模块,安装
1 [root@iZ28yx1yevuZ ~]#make -j16 modules
2 [root@iZ28yx1yevuZ ~]#make -j16 modules_install
3 [root@iZ28yx1yevuZ ~]#make -j16 install
10
 完成后看一下grub文件,目前有三个引导项目:
1 root@iZ28yx1yevuZ ~]#cat /etc/grub2.cfg |egrep ^menuentry
  11
看一下目前的默认引导项是3.10.0内核
1 root@iZ28yx1yevuZ linux-4.1.6]# grub2-editenv list
2 saved_entry=CentOS Linux (3.10.0-123.9.3.el7.x86_64) 7 (Core)
将默认引导内核改为我们刚安装的4.1.6版本
1 [root@iZ28yx1yevuZ linux-4.1.6]# grub2-set-default "CentOS Linux (4.1.6) 7 (Core)"
目前默认引导项是最新的内核了,这时候重启测试
1 root@iZ28yx1yevuZ linux-4.1.6]# grub2-editenv list
2 saved_entry=CentOS Linux (4.1.6) 7 (Core)
3 [root@iZ28yx1yevuZ linux-4.1.6]# reboot
默认选择的是4.1.6内核
12
正常启动后测试,内核已经是最新的版本了。
13

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/24157

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。