CentOS6.4内核升级, 2.6.*版本升级 Kernel 3.10.*

网友投稿 729 2022-09-28

CentOS6.4内核升级, 2.6.*版本升级 Kernel 3.10.*

CentOS6.4内核升级, 2.6.*版本升级 Kernel 3.10.*

Kernel当前最新的稳定版为3.10.4,而CentOS6.4的内核一直还是2.6.x,内核版本2.6.28系列有一些内核BUG,最终决定升级linux系统内核版本。

在测试环境进行内核升级测试,步骤如下:

一:升级环境介绍:

内核升级测试环境介绍:

虚拟机软件:VMWare 9.0.0

测试系统: CentOS 6.4 x86_64

确认升级前内核版本:

more /proc/version

Linux version 2.6.32-358.14.1.el6.x86_64 (mockbuild@c6b10.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jul 16 23:51:20 UTC 2013

uname -a

Linux master 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

升级前grup文件信息:

[more /boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/mapper/vg_slave2-lv_root# initrd /initrd-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.32-220.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_slave2-lv_root nomodeset rd_NO_LUKS rd_NO_MD quiet rhgb crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_slave2/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_slave2/lv_swap rd_NO_DM initrd /initramfs-2.6.32-220.el6.x86_64.img

二:安装系统所需要的编译工具:

yum install wget gcc gc bc gd make perl ncurses-devel xz -y

如果执行上面的安装命令后,在编译过程中提示缺少依赖软件包请执行下面的软件安装命令

yum  install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp  libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel Tcl/Tk  cmake  ncurses-devel bison setuptool popt-devel rsynx openssh system-config-network-tui gcc gc bc gd make perl ncurses-devel xz -y

三:-当前最稳定的Kernel并解压

cd /usr/src

wget -d linux-3.10.4.tar.xz

tar -xvf linux-3.10.4.tar.xz

cd linux-3.10.4

四:清理系统内的环境变量及依赖

make mrproper         #清除环境变量(清除配置文件)

make dep    #清除依赖

cp /boot/config-* /usr/src/kernels/  #为了方便编译配置,将/boot下的配置文件复制到当前目录下的/usr/src/kernels/文件中

五:准备开始啦

make menuconfig出现General setup菜单,根据自己的需要对Kernel进行增、减。完后按Tab键跳到下面菜单中的 < Exit > 上,回车,系统问

Do you wish to save your new configuration ?to continue.

< Yes >< No >

菜单默认在< Yes >上,按回车确认保存。

报错处理:

make menuconfig后命令,提示make: No rule to make target ‘menuconfig’.Stop.

解决办法:

在编译内核时,无论使用哪种方式都提示:make ***No rule to make target "menuconfig".stop.

原因是没有在内核源码目录下进行。

例如,要编译或升级的内核解压后的目录为/usr/src/linux-2.4.24,一定要进入到该目录后使用make menuconfig命令,这样就不会提示上面的错误了。

如果还不行,将内核文件放到此目录下,从新解压,再运行命令即可

make clean    #确保所有东西均保持最新状态

make bzImage    #生成内核文件

make modules    #编译模块(注:此处需要很长时间,请耐心等待)

make modules_install  #安装模块

make install    #安装,此处报了一个vmware的错,详见最后故障排查

如果以上步骤都顺利执行完成,那么恭喜你内核升级已基本完成。

六:修改系统启动菜单并重启服务器,使服务器在下次启动使用新的内核。

[root@master ~]# cat /boot/grub/grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/mapper/vg_master-lv_root# initrd /initrd-[generic-]version.img#boot=/dev/sdadefault=0 timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (3.10.4) root (hd0,0) kernel /vmlinuz-3.10.4 ro root=/dev/mapper/vg_master-lv_root nomodeset rd_LVM_LV=vg_master/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD rd_NO_LUKS quiet rhgb crashkernel=auto LANG=en_US.UTF-8 rd_LVM_LV=vg_master/lv_root rd_NO_DM initrd /initramfs-3.10.4.imgtitle CentOS (2.6.32-358.14.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.14.1.el6.x86_64 ro root=/dev/mapper/vg_master-lv_root nomodeset rd_LVM_LV=vg_master/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD rd_NO_LUKS quiet rhgb crashkernel=auto LANG=en_US.UTF-8 rd_LVM_LV=vg_master/lv_root rd_NO_DM initrd /initramfs-2.6.32-358.14.1.el6.x86_64.img

此时需要重启以便启动新的内核,

init 6

七:确认内核版本升级成功:

[root@master ~]# uname -a

Linux master 3.10.4 #内核版本已升级

[root@master ~]# cat /proc/version

Linux version 3.10.4 (root@master) #内核版本已升级

八:故障排查:

在执行 make install 内核升级完成后报错如下:

ERROR: modinfo: could not find module vmware_balloon

找不到 vmware_balloon 模块,

原因有2:

首先,确认你的 .config 文件里面有  CONFIG_VMWARE_BALLOON=m 这一行,或者你可以用 make menuconfig 进去内核编译菜单,选中 Device Drivers -> MISC devices -> VMware Balloon Driver 为 M 或者 *

其次,而这个模块在后面的版本中,已经更名为 vmw_balloon,所以 可以用下面的命令来解决:

cd /lib/modules/3.x.xx/kernel/drivers/misc #将版本号改成你自己的

ln -s vmw_balloon.ko vmware_balloon.ko #建立软连接

#回头找一台正式服务器试一下,应该不会报这个错误。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot返回对象时,如何将Long类型转换为String
下一篇:硬盘检测工具Smartmontools安装、部署、使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~