|
|
牺牲了一个周末,参照置顶贴与精华贴跟手册,编译时,用晨想版主的技巧(bash提示符包含一个命令退出状态$?),每一步都退出0,证明没错误发生。但是重启后grub选择从lfs启动后就一片黑屏,啥反应也没有,不知问题是否出在编译内核及grub配置上?
我是用livecd装的LFS,硬盘上同时还有ubuntu,有一点不明的是,在ubuntu里硬盘分区为sda,但是在lfs里以hda开头(以前装的slackware也显示为hda)
(1) 那么到底我的硬盘是IDE呢,还是SCSI?(最后发现还是IDE硬盘)
(2) 编译内核时发现默认已将scsi支持选上,应该装了scsi驱动吧?
我将grub安装在lfs所在分区,原来ubuntu的grub安装在MBR,启动时显示的是ubuntu的grub里的menu.lst的内容,然后我将lfs的启动信息添加进ubuntu的/boot/grub/menu.lst,重启后选择从lfs启动,发现黑屏,屏幕上也为出现grub stage 之类的话,也没有光标提示符,就跟没开机一样,这到底是什么原因呢?
=====================================================================================================================
我在grub/menu.lst中去掉vga=792后可以boot,但出现错误:please append a corrent "root="boot option......(这里省略) kernel panic ...(这里省略)unable to mount root fs on unkwown block(0,0)
然后我用lfs livecd 启动后将grub安装在MBR覆盖了原来ubuntu的grub,重启后还是出现“unable to mount root fs on unkwown block(0,0)”之类的话,贴下我的menu.lst:
title LFS 6.2.5
root (hd0,11)
kernel /boot/lfskernel-2.6.16.38 root=/dev/hda12
title Ubuntu 7.04
root (hd0,8)
kernel /boot/vmlinuz root=/dev/hda9
initrd /boot/initrd.img
title SlackWare 12
root (hd0,10)
kernel /boot/vmlinuz root=/dev/hda11
initrd /boot/diag1.img
以前安装slackware的时候也出现“unable to mount root fs on unkwown block(0,0)”之类的话,但我加入initrd /boot/diag1.img
后就正常了。我猜想是不是编译内核时scsi的驱动没编译进去?下午重新编译内核试试
=========================9月17日晚 大悲=============================================
花了一个下午重新下载了最新的6.22内核,编译完成未显示错误,步聚如下:
(1)恢复到编译内核前的环境
export LFS=/mnt/lfs
mkdir $LFS
mount /dev/hda12 $LFS
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login +h
mount -nvt tmpfs none /dev
/sbin/udevtrigger ## 豹兄总结的6.1的恢复命令为/sbin/udevstart,但是6.2,5里似乎没有这个命令,man了一下,不知道我这里用/sbin/udevtrigger对不对?
mkdir -v /dev/pts
mkdir -v /dev/shm
mount -vt devpts -o gid=4,mode=620 none /dev/pts
mount -vt tmpfs none /dev/shm
解压linux2.6.22-rc3.tar.bz2并进入linux-2.6.22-rc3/
make mrproper
make menuconfig ## 这里我按照豹兄的<<手把手>>编译scsi支持与ext3支持进内核
make
make modules_install
cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22
cp -v System.map /boot/System.map
上面都没出现错误。
但当:
grub
grub> root (hd0,11)时提示找不到disk filesystem
不管我指定(hd0,*) 中*为多少,都出现这个错误。
于是退出 grub
并退出chroot的环境,这里运行 grub就可以安装引导信息了,我将LFS的启动信息添加进/boot/grub/menu.lst :
title LFS 6.2.5
root (hd0,11)
kernel /boot/lfskernel-2.6.22 root=/dev/hda12
于是出现了跟上午一样的情形,启动到一半出现以下错误信息:
please append a corrent "root="boot option......(这里省略) kernel panic ...(这里省略)unable to mount root fs on unkwown block(0,0)
晕,实在是没辙了。。。
==================================9月18日晨 大喜===========================================================
昨晚google了一下,发现很多兄弟跟我的情况一样,说明这是一个普遍存在的问题,都是由于配置make menuconfig的时候出了差错,即没选项IDE驱动,于是今天早上重新编译了一遍内核,终天能启动了。总结一下:我想这是由于手册上对make menuconfig说得少,再一个豹兄的<<手把手>>里说“IDE硬盘默认就可”这一句恐怕并不是放之四海而皆准的,因为很多兄弟都是在这一步吃了苦头,影响了积极性,我本人是第一次作LFS,前面都没错,就是启动不了,也是由于没选IDE驱动造成的!在这里希望置顶贴里最好是说明一下,以免后学者范同样的错误。
注:×××××××××××××××××××××××
make menuconfig时具体位置为:Device Drivers下面的 lATA/ATAPI/MFM/RLL support 将里面带IDE的通通选上,呵呵,以防万一,不过有些像IDE FLOPPY,IDE TAPE 就不用选啦,毕竟现在一般没人用软驱与磁带。 |
|