+86 189 8218 1436Mon. - Fri. 10:00-22:00

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

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

经济实惠的服务器代维费用及报价,让中小企业都能用上专业的服务器代维服务!

服务器代维外包服务 让您省心又放心 小程序HTTPS配置 一键ssl全站配置 正版EV OV_SSL证书 顶级证书长期享用 DDOS/CC攻击防御 有针对性的攻击防御
木马病毒清除 彻底的清除专家 网站中毒处理 快速网站故障处理专家 服务器故障处理 一站式解决服务器问题 数据找回/恢复 重要数据秒级找回
数据库优化 提升网站访问速度神器 数据迁移 网站搬家快方法 漏洞扫描/渗透测试 网站安全检测 网站故障排查/修复 一键排查故障/修复
宝塔Linux面板安装服务 环境配置专家 WordPress代维托管 一次性收费包您满意 网站程序安装指导 多年安装经验
肉鸡处理,中毒处理
肉鸡处理,中毒处理  
 

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

今天没事通过编译的方法,测试了一下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方式编译,如下,出现报错:
21

这是因为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

 

北京 上海 天津 重庆 河北 山东 辽宁 黑龙江 吉林 甘肃 青海 河南 江苏 湖北 湖南 江西 浙江 广东 云南 福建 海南 山西 四川 陕西 贵州 安徽 广西 内蒙古 西藏 新疆 宁夏 澳门 香港 台湾