现在我已经解决了(AMD Duron 650 上运行redhat linux 6.2)第一次启动lilo时,启动到一半就死机的问题(对雷鸟cpu应该同样有效),但是也带来了更多的问题,在这里说出来供大家参考一下,看看有没有更好的解决办法.
<无法启动的症状>
在我的电脑上(AMD Duron 650)安装redhat linux 6.2,使用安装光盘启动没有问题,顺利进入图形安装界面(鼠标可见,为什么指出这一点,参看后面<新出现的问题>),并且完成安装.但是重新启动后,"LILO"显示到一半(即LI)就死机.使用安装时制作的启动盘启动,屏幕上滚过数十行E文后显示发生一般性错误(windows的蓝屏????).经过数次痛苦的重新分区(保证根目录/root在硬盘的前8G内),重新安装(总共耗时n小时),均告失败.于是乎,心灰意冷.
<原因分析>
根据启动盘启动时屏幕上的显示(这是我第一次发现启动盘还有用处),死机时系统进行的操作是关闭pII的CPU序列号功能.明明我的cpu是AMD Duron 650,怎么变成了pII了呢?看来linux将Duron当成了pII,并且试图关闭cpu的序列号功能.Duron的cpu本身就没有序列号,关闭它当然要死机了.安装的时候,系统没有选择cpu这一项,而是自行判断,将Duron当成pII,并且"自作聪明"的关闭了cpu的序列号功能.可惜我的cpu是AMD Duron 650,这反倒成了画蛇添足.罪魁祸首安装时系统自动建立的内核.
<初步解决办法>
既然知道问题的根源在内核,我们就可以对症下药,解决这个问题.解决的办法当然就是安装一个可用的内核(必须先用安装光盘进行安装,选择将lilo安装到linux的根分区的第一个扇区-----除了主启动纪录区MBR的另外一个选项,以便重新启动后进入windows).这个内核到哪里去找呢?其实她远在天边,近在眼前.还记得我们的安装光盘吗?我们不是用它启动过机器吗?说明启动盘上的内核可以利用.于是乎,将linux启动光盘里面\dosutils目录下的loadlin.exe以及\dosutils\autoboot下的vmlinuz两个文件拷贝到c:\linux目录,并在该目录下建立一个linux.bat文件,内容如下:
loadlin vmlinuz root=/dev/hda10 vga=normal
其中,/dev/hda10是我的linux根分区,请根据各人的情况进行修改.然后进入ms-dos模式,运行c:\linux\linux.bat,即可进入linux.
<新出现的问题>
长长的舒了一口气,搞定!且慢,君不见启动时屏幕上显示的几个红红的fault,系统的配置还有问题.startx,进入X-window.我的鼠标怎么不见了???没有鼠标,不就是和没有X-window一样吗?无意中碰了一下鼠标右键,弹出了一个菜单.再移动一下,点击右键,同样能够弹出菜单,并且菜单的位置也显示出鼠标的移动没有问题.原来鼠标的功能还在,只不过无法显示出鼠标.这还不是全部,试一试mount -t vfat /dev/hda1 /mnt/c,竟然mount不到我的c盘.提示:/dev/hda1 has wrong major or minor number.mount软盘同样的出错提示.这两个新出现的问题,我至今仍然没有找到解决的办法,如果你知道解决的办法,请你写信告诉我(pianzi@ynmail.com).谢谢!以上权当抛砖,希望可以引出玉来.
<后记>
就在我写完以上文字的第二天,我在linux下重新编译了一遍内核后,上面所有的问题都得到了解决.方法一步骤:
1、编译内核(参看关于编译内核的文章),将新编译的内核重新命名为vmlinuz
2、编辑/etc/lilo.conf,将其中boot=/dev/hda10改为boot=/dev/hda。/dev/hda10为我的linux根目录所在的分区,请根据各人的情况做相应更改,/dev/hda表示将lilo装在MBR中。
2、运行lilo命令,将lilo重新装回MBR,回到多操作系统并存使用的状态
3、启动,在lilo中选择linux进入
或者方法二:
1、同上1
2、格式化一张软盘:#fdformat /dev/fd0H1440
3、制作启动软盘:#dd if=/boot/vmlinuz of=/dev/fda0 bs=8192
4、用软盘启动,进入linux。
注:推荐使用方法一,方法二不能结局鼠标光标不可见的问题,原因不明。
如果还有问题,可以写信给我。