LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2364|回复: 9

原创:红旗3.0 Server服务配置教程内核升级

[复制链接]
发表于 2003-1-18 09:31:38 | 显示全部楼层 |阅读模式
内核可以看成是一個架於程式和硬件之间的界面操作系統﹐离开了核心﹐什么东西都用不了。
而内核的编译的好坏﹐也会影响到系统的性能﹐甚至﹐一些系统功能(如 tcp/ip)﹐也必须要编进核心才行。
操作系统性能的好坏、稳定不稳定﹐其中一個很关键的因素是核心的体积短小精悍。
一個臃肿的核心﹐沒錯﹐能提供样样俱到的功能﹐但也会牺牲系统性能和稳定性。
所以在编译核心的時候﹐‘将核心编得尽量的小’﹐是最高原則。

在我们动手升级内核前还须问一下自己为什么要进行升级!?

a、为了好玩,赶潮流或做实验,那就可以大胆的进行下面的操作!
b、为了支持新硬件,为了得到更好的性能,那么请问:有没有已经对系统进行了备份!

1、选择下载内核版本
   http://www.kernel.org/pub/linux/kernel/ 这里有最新的内核版本
  因为红旗3.0内核版本为V2.4.17-1 我们就选择一个V2.4.20的最新稳定内核来进行升级
  下载一个完整内核文件名为linux-2.4.20.tar.bz2  
    a) 在任何一个子目录下(但通常是在/usr/src/下,我们先在/root下解开)解开新的内核源程序:
       # bzip2 -d linux-2.4.20.tar.bz2 ;解压将会在当前目录下生成linux-2.4.20.tar
       # tar xvf linux-2.4.20.tar     ;解包
       # mv linux-2.4.20 /usr/src     ;把解开的数据移动到/usr/src目录下
    b) 建立一个符号连接到你的新内核目录,这一步可以不做,只是为了操作方便
       # ln -s /usr/src/linux-2.4.20 /usr/src/linux  ;以后对新内核的访问就通过linux 这个连接进行
    c)配置内核前的准备工作
       # cd /usr/include

      # rm -rf asm linux scsi

       # ln -s /usr/src/linux/include/asm-i386 asm

     # ln -s /usr/src/linux/include/linux linux

       # ln -s /usr/src/linux/include/scsi scsi
   d)配置内核
        我是在不删除原有内核的情况下进行编译,如果你不想保留原有内核,建议先做好启动盘
        启动盘制作:#mkbootdisk --device /dev/fd0 `uname -r` ;`uname -r` 是取得当前内核版本号
              对于我们红旗3.0来说可以使用    #mkbootdisk --device /dev/fd0 2.4.17-1
              重新启动机子﹐确定启动盘能正确引导。
      转到目录/usr/src/linux下 进行编译配置
           1)#make mrproper   ;清除任何将引起问题的附加额外源代码
           2)#make xconfig    ;这是在X window下的图形界面,很方便
               或   make menuconfig  ;如果是在字符下建议使用
               或   make config      ;这个方法不建议使用很麻烦, 不好用!
            选择好新内核中要开启的选项,这一步将/usr/src/linux目录下生成一个配置文件.config文件
           3)#make dep   ;确定那些文件已经改动,那些需要重新编译;确保关键文件在正确的位置.
           4)#make clean ;删除那些不需要的旧文件(例如:内核原有的拷贝);确保所有东西均保持最新状态.
           5)#make zImage ;将一个新内核建立在一个压缩文件中(会生成/usr/src/linux/arch/i386/boot/zImage文件)
                          ;注意有大小写区分
             如果提示System is too big.出错进用make bzImage进行压缩建立(会生成/usr/src/linux/arch/i386/boot/bzImage文件)
   e)如果你用了模块,你还需要建造和安装模块
        make modules
      make modules-install
        depmod -a
   f)安装新内核
       复制内核文件到/boot目录
       # cp /usr/src/linux/System.map /boot/System.map-2.4.20
     # cp /usr/src/linux/arch/i386/boot/bzImage  /boot/vmlinuz-2.4.20
       编辑/etc/lilo.conf文件添加
         image=/boot/vmlinuz-2.4.20
               label=linux-2.4.20
               root=/dev/hda1  ;这一项可以参考原来的root项
       #lilo    ;只有执行了lilo命令之后﹐ LILO 才会真正装到系统之上
   g)重启
      #shutdown -r now
     提示:开机启动LILO、出现系统选择时选择“linux-2.4.20”用新内核来启动我们的Linux
         进入后可以用#uname -r 来查看当前的内核版本
   h)问题
      有可能如果系统不能正常启动或有些设备不认时,可能是我们在make menuconfig时有些选择不正确,只有在来从这一步来一次!
      内核升级不可能一次成功,除非您对内核中的每个选项非常了解

      而且升级后是否稳定,这也是个问题因为有些问题不可能一下子就会发生,可能要过很长时间才会暴露出来!
      但从内核升级的过程中您将会更加了解Linux的工作流程,希望以上的内容对大家在学习中有所帮助!
发表于 2003-1-18 10:45:19 | 显示全部楼层
佩服。。。。小皮兄辛苦了。

标为精品,以供弟兄们参考!

在此向小皮兄致意!!!
 楼主| 发表于 2003-1-18 12:29:01 | 显示全部楼层
GUN的精神“源代码共享,思想共享”!

学习Linux ,就是大家一同进步嘛!
发表于 2003-1-19 01:36:10 | 显示全部楼层
请问红旗3.0桌面版可用这方法升级内核吗?
 楼主| 发表于 2003-1-19 14:17:38 | 显示全部楼层
基本相同,不过3.0桌面中用的是Grub,不是教程中的LILO所以在那一步中会有些不同!
发表于 2003-1-19 22:01:14 | 显示全部楼层
老师果然是老师。不错。哈哈。皮老师哦。
发表于 2003-4-15 15:45:17 | 显示全部楼层
谢了
发表于 2003-4-28 15:51:49 | 显示全部楼层

我还想请教你几个问题

你的讲解真的很详细,很感谢你,但小弟仍有几个小问题不解,还望不惜赐教:
1、你拷贝了一个syste.map的文件,请问是否要在lilo.conf里把它加入?
2、我在lilo.conf里看到有一句initrd=/boot/initrd-2.2.16(我的内核是2.2.16),请问这句是什么意思,升级时要怎样改,不会还是用这个吧?
3、忘了在哪里看到,说安装软件包的最佳位置是在/usr/src下以该软件包命名的文件夹下,但内核最好不要在这里,因为这里有很多其它软件包的库,请问这是怎么回事?
再一次感谢你的帮助!
发表于 2003-4-30 21:25:34 | 显示全部楼层
红旗3.2可以用这个方法吗?
发表于 2003-5-1 10:43:03 | 显示全部楼层
一样的。。升级内核的过程都一样。
试一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表