QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4135|回复: 3

尽量减少内核配置出现错误的概率

[复制链接]
发表于 2003-11-4 18:01:39 | 显示全部楼层 |阅读模式
看到大侠们都在编内核,做为菜鸟的我也跃跃欲试,一是想加入NTFS文件系统支持,二是想得到一个精简内核,加快系统运行速度,不料完成后,先是出现modules not found、kernel init bannic 等论坛上网友遇到的错误提示,无法进入Linux系统,再是进入系统后,自己胡乱修复一气,越改越乱,导致我三天未进Linux,一周没上坛子,对内核的编译作了进一步了解,将所得共享出来,请大家批评指教。

修复过程:
    当系统无法进入时,我试在GRUB下按“C”进入命令状态,输入:
     kernel(hd0,1)/boot/vlinuz root=/dev/hda2
       initrd(hd0,1)/boot/initrd.img
       boot
     进入系统的过程中出现错误讯息(好像是未找到initrd.img,我想我忘记编译initrd.img了,因为我看到有的书上讲这个文件只有当系统中有SCSI设备时才有用),此招失败。


   用Linux系统光盘引导(我不做引导软盘),输入:
     linux rescue
    进入修复模式,提示符为:sh#
    第一次见到这样的提示符,系统提示将原系统挂到了/mnt/sysimage/ 下,于是我进入 /mnt/sysimage/usr/scr/linux-2.4.8-20/ 下,执行:# make initrd.img ,系统提示:路径未找到! (因为编译程序默认要在 /usr/src下找相关文件,而实际目录是/mnt/sysimage/usr/src)
   我在公社发了求救贴,有高手提示用命令:chroot,自己进入查阅了此命令的用法,再次进入修复模式,输入:
   sh# chroot /mnt/sysimage
这时系统将 /mnt/sysimage 目录当作是根目录,于是make initrd等命令成功执行,我满心欢喜的重新引导,以为一切OK,结果出现了 kernel pannic 的错误信息,至今我不懂什么意思?:0)
   再次查资料,进入系统按步就班重做一遍:

   sh# chroot /mnt/sysimage
    sh# cd usr/scr/linux的源程序目录
   sh# make mrproper
    sh# make oldconfig      因为我改了太多,所以重新调入默认内容
   sh# make menuconfig  此项在sh#下似乎不成功进入,只好忍痛执行
                            make config了,过程很长,但要细心。
   sh# make dep clean bzImage modules modules_install install
我一步执行完,好好休息一下,累啊!
   终于成功引导!选择 linux-2.4.8-20custom菜单项进入。进入后用
   free -m查内存 再看 top 中cpu idld的值,真爽啊!进入X,启动mozilla都是那么快!
   
   经验:问题最开始是由于Red Hat自作聪明,将文件改名为 custom,导致找不到相应文件,无法进入系统,后来是由于我错误配置,错上加错。
   最后是由于Red Hat “自作聪明”,我用make oldconfig命令救了系统。

   总结: 编译内核时,尽量按步就班,make modules_install后,最好用 make install 命令来让系统自动复制vmlinuz等文件、修改grub.conf文件,成功引导后,自己再做手工修改,可以省掉许多无谓劳动(因为这些劳动并不会给自己带来多少知识);
      如果已经无法启动,可以在修复模式下编译内核,最好用 make oldconfig调入缺省配置;在修复模式下make menuconfig不能成功执行时,如果没有勇气执行make config(那过程你可以体验一下,整死人!),可以跳过此项,直接进行 make dep 等下面步骤,等成功进入系统后,再用make menuconfig重新配置(虽然要重新花费编译时间,不过我感觉相对于make config的长过程还是值得的);
      如果无法找到路径,请试试 chroot 命令。
发表于 2003-11-7 23:13:55 | 显示全部楼层

Re: 尽量减少内核配置出现错误的概率

[quote:31f494f504="notsay"]
   终于成功引导!选择 linux-2.4.8-20custom菜单项进入。进入后用
   经验:问题最开始是由于Red Hat自作聪明,将文件改名为 custom,导致找不到相应文件,无法进入系统[/quote]


redhat将用户自己编译的内核定义成custom其实就是为了避免覆盖掉老内核和老模块,当新内核有问题时可以让用户用回老内核进入系统,这样做是体贴用户,为用户着想,不是自作聪明

当初我在红旗3上编译内核(第一次自己编译内核),编译安装后就自动覆盖掉原来的老内核(老内核的模块也一并彻底覆盖更新掉,看看make modules_install的脚本),而老内核却失败,那时菜鸟,幸好先前有准备用ghost备份了整个linux分区,忙乎了一阵才恢复系统,吓出了一身冷汗
回复

使用道具 举报

发表于 2003-11-23 13:41:07 | 显示全部楼层
说的也是!!!我没有一次可以一次编译成功啊!!! :-)
回复

使用道具 举报

发表于 2006-7-26 16:10:05 | 显示全部楼层
我也搞了几天了,但愿这次成功!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-3-29 18:13 , Processed in 0.090666 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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