精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● Linux>>Linux之配置篇>>系统配置>>内核相关>>红帽linux6.2server安装---换心手术编绎新

主题:红帽linux6.2server安装---换心手术编绎新
发信人: linskystar(林民隆)
整理人: qiaoqian(2001-12-31 00:09:15), 站内信件
首先说明一点,我的方法是有点冒险,但我从来没有出过险,我的过程也是经过N次试验的,如果谁一步步按我的做,应该会很安全---如果你的linux瘫了,不许拿刀找我,呵呵,大不了重安系统,重做上一步呗 

OK,现在开工,我的方法是先卸掉旧的内核,因为是系统安装安上的,所以用rpm -qa |grep kernel,(rqm -qa是查询所以安装的包) 
把找出来的包,应该是四个包,全卸掉, 
rpm -e --nodeps <找出的包名>(刚才安上的kernel-headers也在这卸了) 
rpm -e --nodeps modules 
不用怕,linux稳定的很,我从来没有出过险,现在千万别重起 
有些东东上步是删不掉的,手工删除 
rm -f /etc/conf.modules 
rm -fr /usr/src/linux-2.2.14-50(这是我的内核版本号,如果与你的不同,请修改为你所用的版本号) 
rm -fr /lib/modules/2.2.14-50 
OK,搞干净了,现在开始编译新内核 
先说一下每层目录里的"."和".."的意思,可能我会用到这个,有人看不明白,这其实是两个link,"."当前目录,".."父目录,就是上层目录,一般的用法是用来简写命令行 
为了说明当前路径,我尽量多用点cd 
cp linux-2.4.1.tar.gz /usr/src/ 
cd /usr/src/ 
tar zxvf linux-2.4.1.tar.gz 
(解开后是个linux目录,因为刚开始安了一个kernel-headers所以这有个linux的符号链接,不用理它) 
cd /usr/include/ 
ln -s /usr/src/linux/include/linux linux (如果你自已在这编绎过kernel,这会有linux的,用-fs参数,就是force) 
ln -s /usr/src/linux/include/asm-i386 asm 
(如果你有scsi 还要做个scsi的符号链接, 反正我是穷学生,没钱买哪玩意) 
cd /usr/src 
chown -R 0.0 linux (把所有者设为root,-R表示递归) 
cd /usr/src/linux/ 
make mrproper 
好的,要开始配置了 
如果你是高高高高....手的话,呵呵,你可以去用make config找找感觉,呵呵,没有后退功能的,呵呵,做错一点只能ctrl+c再来,呵呵 
我试过几次make config,累死,每次还要去手工改.config.为什么?因为我老是选错东东,呵呵 
按我这个安装方法在make config make menuconfig make xconfig中,只能用make config的,呵呵,不过,还是有办法的 
在你的红帽光盘上(redhat/rpms)再安一个包就行 
rpm -ivh ncurses-devel.编号.i386.rpm,我忘了把编号抄下来,呵呵,后补上,自已查吧 
好了,可以用make menuconfig了,注意选你的网卡!多网卡安装在支持的前题下,我后补上设置过程 
用这个可以导入配置的,据说用make -f也行,但不要用cat config>/usr/src/linux/.config和cp的方法,试过N次了,基本都出错 
make dep  
make clean  
make bzImage 
按我的方法应该没有什么问题,如果不成功,查一下过程,看一下/usr/include/asm 和linux这两个链接,没有红底白字的在闪吧?把你出错信息贴出来,我帮你看一下 
如果成功,你应该在最后的信息哪看到bzImage放在哪 
OK,安装新内核 
一.cd /usr/src/linux/ 
   cp System.map /boot/System.map-2.4.1 
  cd /usr/src/linux/arch/i386/boot/ 
  cp bzImage /boot/vmlinuz-2.4.1 
  /usr/src/linux/太大了,有很多用不到的东东...用到的只是很小一部份,我们拿用不到的东东去掉 
 我使用链接的方式 
 mkdir -p /usr/src/linux-2.4.1/include/   用-p生成两个目录 
 cp -r /usr/src/linux/include/asm-generic /usr/src/linux-2.4.1/include/ 
  -r 拷目录,这命令行太知了,可以简写为 cd /usr/src/linux-2.4.1/include 
                                      cp -r ../../linux/indule/asm-generic . 
  再把同目录下的asm-i386 linux net video目录拷到/linux-2.4.1/include/里,如果你有scsi,还要拷这个目录,反正我没有 
  现在把两个文件删了 
  cd /usr/src/ 
  rm -f linux-2.4.1.tar.gz 
  rm -rf linux 
  ln /usr/src/linux-2.4.1 linux 
  OK,安装新内核去 
   cd /boot   是不是看到有三个文件在红底白字的闪阿,呵呵,更改link 
   ln -fs System.map-2.4.1 System.map 
   ln -fs vmlinuz-2.4.1 vmlinuz 
   rm -f module-info    因为做的是单块系统,用不到模块 
   现在更改/etc/lilo.conf 
   把 image改成这样 
   image = /boot/vmlinuz 
   再lilo -v  
   OK,内核安上了, 
   现在收尾 
   因为是单块系统,所以起动是不要给系统查找模块,如果看的懂的话,在/etc/rc.d/rc.sysinit里注释掉关于查找模块的两个if,我现在没有把这个准备这个,以后贴上来 
现在重起 init 6 如果你喜欢reboot的话也行,呵呵 
如果能起动(我就没有不能起动的时候) uname -a ,告诉我,你看到什么了,呵呵,你用新内核了 

关于起动如何不给系统查找模块我写的不细,现在补上 
下面是/etc/rc.d/rc.sysinit的一个片断 
☆#if [ -x /sbin/depmod -a -n "$USEMODULES" ]; then 
    # If they aren't using a recent sane kernel, make a link for them 
    if [ ! -n `uname -r | grep "-"` ]; then 
       ktag="`cat /proc/version`" 
       mtag=`grep -l "$ktag" /lib/modules/*/.rhkmvtag 2> /dev/null` 
       if [ -n "$mtag" ]; then 
          mver=`echo $mtag | sed -e 's,/lib/modules/,,' -e 's,/.rhkmvtag,,' -e 's,[       ].*$,,'` 
       fi 
       if [ -n "$mver" ]; then 
         ln -sf /lib/modules/$mver /lib/modules/default 
       fi 
    fi 
☆#   if [ -L /lib/modules/default ]; then 
☆#   INITLOG_ARGS= action "Finding module dependencies" depmod -a default 
☆# else 
☆# INITLOG_ARGS= action "Finding module dependencies" depmod -a 
☆#   fi 
☆#fi 

原文是没有星号的,我加上去会了大家好看明白的,加星号的行,全用#号注释掉就好了,当然你删了也没错 
  
  




----
 

[关闭][返回]