Fedora 1升级2.6.5内核
By:vitter(vitter@safechina.net)
Our Web: http://www.safechina.net
My Web: http://vfocus.net
My Blog: http://blog.vfocus.net
前几天装了个Fedora core 1 作公司防火墙和VPN,但是他的内核居然是2.4.22的,据说fedora 2会采用2.6的内核(我是等不及了),因为要用IPtables和VPN要编译内核,所以干脆顺便升级到最新的内核得了:)一查发现现在最新内核是2.6.5,马上down下来升级。发现现在编译内核的方法更加方便了,如果你用的是GRUB的引导(因为我用的是他),那安装新内核更加方便,你都不用改什么文件。
1.下载2.6.5的内核
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.5.tar.gz
2.在/usr/src目录下解压内核
tar zvxf /下载的路径/linux-2.6.5.tar.gz
3.配置
# make mrproper //是清理代码树的动作,保证源代码是干净的
# make menuconfig
其实现在编译内核最关键的地方就是配置内核。我一般用make menuconfig配置内核。配置2.6.5内核时如果你的主板是Intel芯片的话,你用默认配制也许就可以得到一个满意的内核。做法是make menuconfig后离开时选择保存。这里的难点是pci,如果你硬盘是IDE的那一定要选择好你主板上南桥芯片。SCSI的话就是要选择上你的SCSI卡型号。还有就是网卡,声卡芯片的型号了,他们的型号你都可以用lspci 查找到:
# /sbin/lspci
另外我用的是ext3文件格式,所以要把ext3文件系统编译进内核,否则会出问题的,详情见附录。另外我要使用IPSec及IKE、Linux VPN运行环境组建企业虚拟网,所以在网络选项中选择以下四项,使系统内核能够支持IPSec。 <*> PF_KEY sockets
<*> IP: AH transformation
<*> IP: ESP transformation
<*> IP: IPComp transformation
4.编译
#make //2.6的编译确实比以前方便多了,以前的make bzImage; make modules等步骤都在make一步都搞定
5.安装
#make modules_install
#make install
以前还要cp 内核和System.map
#cp /usr/src/linux2.6.5/arch/i386/boot/bzImage /boot/vmlinuz-2.6.5
#cp /usr/src/linux-2.6.5/System.map /boot/System.map-2.6.5
修改Grub.conf,现在统统make install搞定,如果你不放心,你可以去/boot目录看看是否已经有最新的vlinuz-2.6.5和System.map-2.6.5还有grub.conf是否已经给你自动配置好了.
下面是我make install以前的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/hda2
# initrd /initrd-version.img
#boot=/dev/had
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Fedora Core (2.4.22-1.2115.nptl)
root (hd0,0)
kernel /vmlinuz-2.4.22-1.2115.nptl ro root=LABEL=/
initrd /initrd-2.4.22-1.2115.nptl.img
Make install后变成了:
# 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/hda2
# initrd /initrd-version.img
#boot=/dev/had
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Fedora Core (2.6.5)
root (hd0,0)
kernel /vmlinuz-2.6.5 ro root=LABEL=/
initrd /initrd-2.6.5.img
title Fedora Core (2.4.22-1.2115.nptl)
root (hd0,0)
kernel /vmlinuz-2.4.22-1.2115.nptl ro root=LABEL=/
initrd /initrd-2.4.22-1.2115.nptl.img
现在一切ok,reboot机器。可以享受新内核了:)
附:(常见错误)
1.启后出现一句错误提示后就死锁了:
kernel panic : no init found ,try passing init = option to kernel.............
解决办法:注意如果你的系统一开始是ext3格式,最好直接把ext3文件系统编译进内核,而不要以模块的加载,否则启动将报类似的错误