升级Redhat内核到2.6.10 [for ldd3 ]

76 篇文章 4 订阅
72 篇文章 0 订阅

声明:>>>>>>本文由  我的好友:赵谦谦 提供 

 

由于Ldd3中要求的内核版本为:2.6.10

1.linux2.6.10
 ftp://mirror.lzu.edu.cn/kernel.org/v2.6/
2.下载内核升级工具
    http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
    http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm    ***
    http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm
    http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm
3.  # tar -jxf update/linux-2.6.10.tar.bz2 -C /usr/src
    # cd /usr/src
    #ln -s linux-2.6.10 linux
    #
4. 安装 module-init-tools 工具包
    #tar jvxf module-init-tools-3.2.tar.bz2
    #cd module-init-tools-3.2
    # make moveold
    # make all install
    #./generate-modprobe.conf /etc/modprobe.conf
5. 安装另外三个升级工具
    # rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,这里一定要加入--nodeps 参数,下同)
    # rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm
    # rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm
6. 设置内核选项
    (1)   Loadable Module support 选 项 中 , 一 定 要 选 上 “Module unloading” 和 “Automatic kernel
    module loading”这两项;
    (2)Device Drivers--->Block Devices 中一定要选上 Loopback device support;
    Device Drivers--->Multi-device support(RAID and LVM)”处要选上“device mapper support”;
    Device Drivers--->Graphics support”, 一定要选上” Support for frame buffer devices”;
    Device Drivers --->;USB support --->选上”USB Mass Storage support” 如果是在实环境中,
                                                                           (
    想要更多 USB 支持,就全选吧。我的是在虚拟机中,用不着了)
    Device Drivers --->; Network device support --->;Ethernet (10 or 100Mbit) --->; ;       AMD
    PCnet32 PCI support
    (3) File system--->(以下 9 个选项是关于 ext2 和 ext3 文件系统设置,全部选上)
    Second extended fs support
            Ext2 extended attributes
            Ext2 POSIX Access Control Lists
            Ext2 Security Labels
          Ext3 journalling file system support
            Ext3 extended attributes
            Ext3 POSIX Access Control Lists
            Ext3 Security Labels
          JBB (ext3) debugging support
    File system--->DOS/FAT/NT Filesystems --->选上“ NTFS file system support”;
    File Systems --> Miscellaneous filesystems ---> Compressed ROM file system support (cramfs)
    注意:
    ext2 和 ext3 文件系统设置非常重要,也是必需的,如果对 Ext3、Ext2 文件的支持直接编译
    进内核,在你 reboot 时机器就会当掉,出现如下错误信息:
    kernel panic : no init found ,try passing init = option to kernel.....
    或是:
    VFS:Cannot open root device "hdxy" or unknow-block(0,0)
    Please append a correct "root=" boot option
    kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
    或是:
    mount: error 19 mounting ext3
    pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
    umount /initrd/proc fail: 2
    Freeing unused kernel memory: 244k freed
    Kernel panic ? not syncing: No init found. Try passing init = option to kernel
    (4)如果你在 vmware 下重新编译内核,硬盘用的是 scsi 的,以下选项必选:
    Device Drivers --->SCSI device support --->SCSI disk support
    Device Drivers--->SCSI device support--->SCSI low-level drivers--->;; BusLogic SCSI support
    三、编译工作
    OK,繁杂的设置工作完成了,至此,编译前的准备工作都做好了!
    9、开始编译
    在/usr/src/linux-2.6.18 目录下,执行以下命令即可编译。编译需要一段时间,给自己倒杯茶
    耐心等候吧!
    # make dep (建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过)
    # make clean (清除内核编译的目标文件)
    # make bzImage (注意大小写。这一步才真正编译内核)
    内 核 编 译 成 功 后 , 会 在 /usr/src/linux/arch/i386/boot 目 录 中 生 成 一 个 新 内 核 的 映 像 文 件
    bzImage。如果用
    make zImage 编译,内核非常大的话,系统会提示你使用 make                                      bzImage 命令来编译,     所
    以我直接用 make bzImage 来编译。
    # make modules (编译可加载模块)
    # make modules_install (安装可加载模块)
       安装成功后,系统会在/lib/modules 目录下生成一个 2.6.18 子目录,里面存放着新内核的
    所有可加载模块。
    # make install (安装新内核)
    注意:make install 的时候可能会出现如下错误信息:
    No module BusLogic found for kernel 2.4.12
    mkinitrd failed
    此问题一般只出目前 SCSI 硬盘+VMWARE+REDHAT 架构中,因为 BusLogic 被编译进了
    内核而不是个 module 的形式(2.4 内核的 Buslogic 模块即使静态编译进内核也不行)                                         。解决
    方式是直接将能 BusLogic.o 文件复制过去:
    # cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi
    不过别忘记,复制过后再执行一下 make install。
    (如果 make menuconfig 时, BusLogic 模块选成 M--Module 模式--就不会出现这个提示。
                                      把                                             )
    四、启动新内核
    10、将新内核和 System.map 文件拷贝到/boot 目录下,依次执行以下命令:
    # cp /usr/src/linux-2.6.10/arch/i386/boot/bzImage      /boot/vmlinuz-2.6.10
    # cp /usr/src/linux-2.6.10/System.map       /boot/System.map-2.6.10
    # cd /boot (进入 boot 目录)
    # rm ?rf System.map (删除原来的连接)
    # ln -s System.map-2.6.10 System.map             (重新建立连接)
    11、修改 Grub 启动管理器
    如果没有错误的话, 下面开始修改 grub 设置文件
    在/boot 目录下,执行以下命令:
    # new-kernel-pkg --mkinitrd --depmod --install 2.6.10 ( 这 时 候 你 的 /boot 下 生 成 一 个
    initrd-2.6.10.img,并且你的 grub.conf 也作了相应更改)
    # df (查看根目录在那个分区,下一步要用到。注意,这里根分区不时 boot 的那个 50M
    的分区,而一般是你最大的那个分区,也就是”/”,千万不要搞错。我的为 /dev/sda2)
    # 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/sda2
               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,重启,升级结束!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值