Linux内核升级方法与步骤

1. 查看linux内核版本:
# uname -r
2.6.18-194.el5


2. 下载新的内核版本:
去官网上下载最新的内核版本和对应的补丁:
https://www.kernel.org/
选的是3.2.14
#wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.14.tar.bz2

 


3. 解压
将所需文件复制到 /usr/src 下并解压。
(注:如果/usr/src下的空间不够,将源文件放在别的目录下也是一样的)
# cplinux-3.2.14.tar.gz /usr/src/
# cd /usr/src/


将文件解压到 /usr/src/kernels
# tar -xvf  linux-3.2.14.tar.gz   -C/usr/src/kernels

4. 清理文件
清除掉以前升级留下的一些不正确文件。
# cd/usr/src/kernels/linux-3.2.14
# yum installncurses-devel       #升级ncurses
# make mrporper
# cp/boot/config-‘uname -r’ /usr/src/kernels/linux3.2.14/.config  #使用原来的配置文件


5. 通过菜单方式配置内核
# cd/usr/src/kernels/linux-3.2.14
# make menuconfig


该步其实就是用菜单的方式来修改.config文件,而且这里由于每个人的要求不同,在菜单中所勾选的模块也不同,这里只是给出了一个常用的模块而已有一个偷懒一点的做法是,将升级好的服务器下的.config文件拷贝到未升级服务器的同样目录下,此时就不需要第五步了,这两台服务器的版本一定要相同才可以哦

6. 编译并安装内核
# make clean         // 清除下内核编译的目标文件,等待时间较短
# make bzImage   // 编译内核,等待时间较长
# make modules    // 编译模块,等待时间较长
# makemodules_install // 安装模块,等待时间较长
# make install        // 安装

最后一步可能会出现类似于could not find module ip_tables的错误,原因就是你在配置菜单时没有勾选对应的模块
7. 编辑开机菜单选项grub文件
将 default=1 改为 default=0
# vim/etc/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub aftermaking changes to this file
# NOTICE:  You do not have a /bootpartition.  This means that
#          all kerneland initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel/boot/vmlinuz-version ro root=/dev/sda1
#          initrd/boot/initrd-version.img
#boot=/dev/sda
default=0


【保存并退出】

8. 重启
# shutdown-r  now

注:有时会重启时间较长,需耐心等待,不要误以为服务器挂了。我有一次就以为挂了,又重新给服务器安装了一次系统

9. 查看内核编译结果
# uname -r
3.2.14-rt24

你可能感兴趣的:(linux)