今天没事通过编译的方法,测试了一下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 |
4 |
Description: CentOS Linux release 7.0.1406 (Core) |
7 |
[root@iZ28yx1yevuZ ~] # uname -r
|
8 |
3.10.0-123.9.3.el7.x86_64 |
前往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方式编译,如下,出现报错:
这是因为menuconfig需要ncurses-devel 支持,下面安装ncurses-devel后重新编译就可以了
1 |
root@iZ28yx1yevuZ ~] # yum install ncurses-devel -y
|
由于阿里云目前大部分机器还是xen环境的,所以阿里云环境下编译和普通系统相比,需要增加xen guest support,如下(menuconfig下如果找不到配置,可以个vi一样,通过”/”方式搜索):
注意:这些模块需要built-in,也就是复选框内需要是*,而不是M
Processor type and features->Linux guest support->Xen guest support
Device Drivers —> Block devices —> Xen virtual block device support
Device Drivers —> Block devices —> Xen block-device backend driver
Device Drivers —>Xen driver support 把下面的选项建议都选上
网络方面的驱动:
Device Drivers —> Network device support —> Xen network device frontend driver
Device Drivers —> Network device support —> Xen backend network device
完成后开始编译,这里使用vzImage编译后的核心是压缩的。
1 |
[root@iZ28yx1yevuZ ~] #make -j 16 bzImage
|
(这个过程会非常的漫长,为了防止终端意外断开导致前功尽弃,这里建议在screen下执行操作。我测试服务器是16核,所以这里制定了16个job加速编译)
可以看到16core都是跑满状态
完成后依次编译模块,安装
1 |
[root@iZ28yx1yevuZ ~] #make -j16 modules
|
2 |
[root@iZ28yx1yevuZ ~] #make -j16 modules_install
|
3 |
[root@iZ28yx1yevuZ ~] #make -j16 install
|
完成后看一下grub文件,目前有三个引导项目:
1 |
root@iZ28yx1yevuZ ~] #cat /etc/grub2.cfg |egrep ^menuentry
|
看一下目前的默认引导项是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内核
正常启动后测试,内核已经是最新的版本了。
时间: 2025-01-01 15:23:45