您的位置:首页 > 运维架构 > Linux

Linux内核升级方法与步骤

2017-07-15 18:59 429 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: