CentOS 6.5 升级内核

时间:2022-01-26 17:33:17

Docker需要3.10以上内核支持,Centos6.5 默认内核为2.6.所以手动编译安装3.10内核。

查看当前系统内核版本

[root@gu ~]# uname -r
2.6.32-431.el6.x86_64

[root@gu ~]# cat /etc/issue
CentOS release 6.5 (Final)

安装软件

编译安装新内核,依赖于开发环境和开发库

# yum grouplist //查看已经安装的和未安装的软件包组,来判断我们是否安装了相应的开发环境和开发库;

# yum groupinstall "Development Tools" //一般是安装这两个软件包组,这样做会确定你拥有编译时所需的一切工具

# yum install ncurses-devel //你必须这样才能让 make *config 这个指令正确地执行

# yum install qt-devel //如果你没有 X 环境,这一条可以不用

# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel //创建 CentOS-6 内核时需要它们

 

编译内核

获取解压内核源码,配置编译项

去 https://www.kernel.org/ 可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.105。 

[root@gu ~]# wget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.105.tar.xz  #真心慢。。。我用迅雷下的。。。

[root@gu ~]# tar -xf linux-3.10.105.tar.xz -C /usr/src/ 

[root@gu ~]# cd  /usr/src/linux-3.10.105/

[root@gu linux-3.10.105]# cp /boot/config-2.6.32-431.el6.x86_64 .config #在系统原有的内核配置文件的基础上建立新的编译选项,所以复制一份到当前目录下,命名为.config

[root@gu linux-3.10.105]# sh -c 'yes "" | make oldconfig' 

#make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件

 

开始编译

[root@gu linux-3.10.105]# make -j4 bzImage #生成内核文件
[root@gu linux-3.10.105]# make -j4 modules #编译模块
[root@gu linux-3.10.105]# make -j4 modules_install #编译安装模块

#-j后面的数字是线程数,用于加快编译速度

 

安装

[root@gu linux-3.10.105]# make install

#实际运行到这一步时,出现ERROR: modinfo: could not find module vmware_balloon,但是不影响内核安装,是由于vsphere需要的模块没有编译,要避免这个问题,需要在make之前时修改.config文件,加入

HYPERVISOR_GUEST=yCONFIG_VMWARE_BALLOON=m

 

修改grub引导,重启

安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。
数一下刚刚新安装的内核在哪个位置,从0开始,然后设置default为那个数字,一般新安装的内核在第一个位置,所以设置default=0。
重启reboot

确认当内核版本

[root@gu ~]# uname -r
3.10.105

升级内核成功!

 

编译失败(如缺少依赖包)

可以先清除,再重新编译

# make mrproper #完成或者安装过程出错,可以清理上次编译的现场
# make clean

 

费劲!直接YUM安装 内核

最近安装步骤看 http://elrepo.org/tiki/tiki-index.php

1.导入cdk

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2.安装elrepo的yum源

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

3、安装内核
在yum的ELRepo源中,有mainline颁布的,可以这样安装:
 yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y

当然也可以安装long term的:

yum --enablerepo=elrepo-kernel  install  kernel-lt -y

4.配置/etc/grub.conf