CentOS 5.2编译最新内核2.6.27[阮胜昌]

1. 首先说下环境,我是用的本子装的XP & Centos5.1的双系统.已经安装好Centos5需要升级内核
2. 从www.kernel.org上面去下载一个linux2.6.27.tar.gz的内核升级包

3.我的C盘是FAT的,把包放在C盘,进入Centos系统后,在/目录下建立一个名字为 cdisk的目录mkdir /cdisk 然后把C盘挂到cdisk上面 mount /dev/sda1 /cdisk 然后把cdisk里面的linux2.6.27.tar.gz的文件复制到/usr/src下面后 用tar zxvf linux2.6.27.tar.gz把包解开 然后删除包 得到一个linux2.6.27的目录,对这个目录做一个链接 ln -sf /usr/src/linux2.6.27 linux 准备做好了下面开始编译

4.进入linux的目录后,用make mrproper进行编译,OK后 再用make dep 会报警告 不管它 再用make menuconfig会出现一个界面非X的选择窗口,在里面选择你要加载的模块,也可以直接默认.OK后 用make bzImage去生成bzImage OK后 用make modules来编译模块 到这里后该喝茶的喝茶 该抽烟的抽烟 该去厕所的去厕所. OK后 执行make modules_install OK了 编译就OK了

5.把生成的bzImage文件CP到boot下 启动需要它. cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel2.6.27(这个kernel2.6.27是你自己定义的 是要在grub.conf里定义的),然后开始生成.img文件用 mkinitrd initrd-2.6.27.img 2.6.27(这里的initrd-2.6.27也是在grub.conf里要定义的).OK后 把生成的img文件cp到boot下 cp initrd-2.6.27.img /boot/

6. 编译grub.conf文件

    我不会用VI(有点丢人) 我用nano还是一个好朋友教我的 哈哈.很好用. 打开grub.conf文件

原文件:

default=1
timeout=5
     splashimage=(hd0,7)/grub/splash.xpm.gz
     hiddenmenu
     title CentOS (2.6.18-53.el5)
     root (hd0,7)
           kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/1 rhgb quiet
           initrd /initrd-2.6.18-53.el5.img
     title Other
     rootnoverify (hd0,0)
     chainloader +1

把上面的

          title CentOS (2.6.18-53.el5)
          root (hd0,7)
           kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/1 rhgb quiet
           initrd /initrd-2.6.18-53.el5.img

复制下来 在other下 粘贴一行

         title CentOS (2.6.27)
        root (hd0,7)
        kernel /kernel2.6.27 ro root=LABEL=/1 rhgb \\这里的 kernel2.6.27就是bzImage文件cp后的名称
        initrd /initrd-2.6.27.img \\这里的img就是你用mkinitrd生成的文件

(ncurses 下载并编译安装文件包:
你可以通过免费下载NCURSES。也可以通过GNU的FTP目录:http://www.gnu.org/order/ftp.html 找到提供免费下载NCURSES文件包的站点。最新发布的稳定版本为:5.2 20001021.(译者翻译时已经有5.4版本的NCURSES下载了)

包裹文件中的README和INSTALL文件是安装NCURSES库的最主要资料。
通常是这样安装NCURSES的:

tar zxvf ncurses<version>.tar.gz   #解压缩并且释放 文件包
cd ncurses<version>      #进入解压缩的目录(注意版本)
./configure                       #按照你的系统环境制作安装配置文件
make                                 #编译源代码并且编译NCURSES库
su root                             #切换到root用户环境
make install                    #安装编译好的NCURSES库

使用RPM安装文件:
可以在http://rpmfind.net 找到NCURSES的RPM格式安装包。可以在root模式下使用以下的命令安装:(以5.2版本为例)
rpm -vih 下载的RPM文件 )

Linux下yum命令详解
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题
一、yum list|more               列出所有包文件,可搭配grep查询软件包,如yum list |grep kernel
二、yum info xxx                 显示包xxx详细信息,即使xxx没有安装
三、yum update kernel       用yum升级内核
四、yum update                 全面升级系统
五、yum list available         列出升级源上所有可以安装的包(List all packages in the yum repositories available to be installed.)
六、yum list updates           列出升级源上所有可以更新的包(List all packages with updates available in the yum repositories.)
七、yum list installed          列出已经安装的包
八、yum install xxx              安装xxx包
九、yum update xxx            升级xxx包
十、yum remove xxx            删除xxx包


编译内核首先去www.kernel.com上下载最新的kernel代码
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.gz
# tar zxvf linux-2.6.27.tar.gz -C /usr/src
# cd /usr/src/linux-2.6.27
# make menuconfig
现在出现一个字符界面,主要是去掉诸如wireless等服务器根本用不着的功能。
弄完了,保存,退出。
# make (可能要很长时间)
# make modules_install
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27-yourname (注意:目录i386是根据你的系统类型, 如果是64位系统, 那就很可能是x86_64)
# cp System.map /boot/System.map-2.6.27-yourname

# mkinitrd /boot/initrd-2.6.27-yourname.img 2.6.27
# vi /etc/grub.conf
在GRUB选择刚刚编译的内核,

title CentOS (2.6.27-yourname)
root (hd0,0)
kernel /vmlinuz-2.6.27-yournamero root=LABEL=/
initrd /initrd-2.6.27-yourname.img
title CentOS (2.6.18-92.1.13.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.13.el5 ro root=LABEL=/
initrd /initrd-2.6.18-92.1.13.el5.img

# reboot
完毕! 祝你好运

 启动新内核

 


10、将新内核和System.map文件拷贝到/boot目录下,依次执行以下命令:

# cp /usr/src/linux-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18

# cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18

# cd /boot (进入boot目录)

# rm –rf System.map (删除原来的连接)

# ln -s System.map-2.6.18 System.map (重新建立连接)


11、修改Grub启动管理器

如果没有错误的话, 下面开始修改grub配置文件(不要告诉我你用的lilo)

在/boot目录下,执行以下命令:

# new-kernel-pkg --mkinitrd --depmod --install 2.6.18 (这时候你的/boot下生成一个initrd-2.4.12.img,并且你的grub.conf也作了相应更改)


# df (查看根目录在那个分区,下一步要用到。注意,这里根分区不时boot的那个50M的分区,而一般是你最大的那个分区,也就是”/”,千万不要搞错哦。我的为 /dev/hda2)


# vi /grub/grub.conf

进入grub.conf文件,找到如下信息:

default=1

timeout=10

splashimage=(hd0,0)/grub/splash.xpm.gz

title Red Hat Linux (2.6.18)

root (hd0,0)

kernel /vmlinuz-2.6.18 ro root= LABEL=/

initrd /initrd-2.6.18.img

做两处修改:

(1) 将default=1改为default=0(不改的话,重启之后默认进入2.4内核)

(2) 将kernel行的“LABEL=/”换成根目录所在的分区(上一步查看的就是)

此步很重要,修改错误将会可能导致进不去系统,我把我修改后的grub.conf文件列出来,不明之处,可以对照修改:

default=0

timeout=10

splashimage=(hd0,0)/grub/splash.xpm.gz

title Red Hat Linux (2.6.18)

root (hd0,0)

kernel /vmlinuz-2.6.18 ro root=/dev/hda2

initrd /initrd-2.6.18.img

title Red Hat Linux (2.4.20-8)

root (hd0,0)

kernel /vmlinuz-2.4.20-8 ro root=LABEL=/

initrd /initrd-2.4.20-8.img


12,OK,大功告成!赶快重启,看看升级后的2.6内核吧!

删除内核

删掉/lib/modules下对应新内核名字的目录,删掉/boot下对应新内核名字的vmlinuz 文件,删掉/boot下对应新内核名字的system.map,删掉/boot下对应新内核名字的initrd.img,删掉/boot下对应新内核名字 的config(如果有的话),删掉/boot/grub.conf里对应新内核名字的相关行


centos升级内核2.6.27成功2008年12月14日 星期日 06:27 P.M.
之前的kernel貌似与我的显卡不兼容,总是花屏,无奈只好升级kernel,一下是安装步骤

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.gz
# tar zxvf linux-2.6.27.tar.gz -C /usr/src
# cd /usr/src/linux-2.6.27
# make menuconfig
# make (要很长时间)
# make modules_install
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27-root (注意:目录i386是根据你的系统类型, 如果是64位系统, 那就很可能是x86_64)
# cp System.map /boot/System.map-2.6.27-root

# mkinitrd /boot/initrd-2.6.27-root.img 2.6.27
# vi /etc/grub.conf
在GRUB选择刚刚编译的内核,
title CentOS (2.6.27)
        root (hd0,6)
        kernel /vmlinuz-2.6.27 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.27.img
title CentOS (2.6.18-92.1.18.el5)
        root (hd0,6)
        kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-92.1.18.el5.img
title CentOS (2.6.18-53.el5)
        root (hd0,6)
        kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-53.el5.img
title qrpeng windows xp
        rootnoverify (hd0,0)
        chainloader +1

reboot


成功的安装。。

下面看一下新内核是否支持我的NVIDIA,google一下,NVIDIA-180系列支持新内核,赶紧试试吧~~

很顺利。。哈哈
 

你可能感兴趣的:(胜)