LinuxSir.cn,穿越时空的Linuxsir!

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

大侠求救:grub中找不到启动分区

[复制链接]
发表于 2003-7-31 15:53:37 | 显示全部楼层 |阅读模式
http://www.chinaunix.net/forum/viewtopic.php?t=127814
我在redhat8.0中编译了一套lfs(Linux from scratch),启动时采用grub,配置如下:

grub.conf:
#boot=/dev/sda
default=0
timeout=10
splashimage=(hd0,5)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,5)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/1
initrd /boot/initrd-2.4.18-14.img
title Linux from Scratch (2.4.17)
root (hd0,7)
kernel /boot/lfskernel root=/dev/sda8
title DOS
rootnoverify (hd0,1)
chainloader +1

硬盘分区如下:
[root@localhost grub]# fdisk -l /dev/sda

Disk /dev/sda: 254 heads, 63 sectors, 8885 cylinders
Units = cylinders of 16002 * 512 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 7 55975+ fe LANstep
/dev/sda2 8 455 3584448 7 HPFS/NTFS
/dev/sda3 * 456 1503 8385048 83 Linux
/dev/sda4 1504 8885 59063382 f Win95 Ext'd (LBA)
/dev/sda5 1504 1536 264001+ 82 Linux swap
/dev/sda6 * 1537 2584 8385016+ 83 Linux
/dev/sda7 2585 3864 10241248+ 7 HPFS/NTFS
/dev/sda8 3865 4127 2104231+ 83 Linux
/dev/sda9 4128 4387 2080228+ 83 Linux

其中sda6为redhat8所在分区,sda2为Windows所在的分区,sda3为另一个Linux分区,但现在没有用,LFS安装在sda8分区。

重新启动后,进入redhat8正常,但进入lfs时,总是提示找不到sda8分区,root所带的参数有问题等等。




重起后进入grub菜单,选择linux from scratch


提示错误如下:
kmod:failed to exec /sbin/modprobe -s -k block-major-8 errno=2

VFS:cannot open root device "sda8" or 08:08
please append a correct "root:" boot option
Kernel panic:VFS:Unable to mount root fs on 08:08
然后就不动了
请问大侠:
1、启动一定需要initrd么?我看了一些资料是不需要的
2、上面一步是不是先进入老的redhat了,要不怎么有/sbin/modprobe这一步操作。

请大侠指教,不胜感谢!

请大侠指教,不胜感谢!

请大侠指教,不胜感谢!
发表于 2003-7-31 17:15:06 | 显示全部楼层
你的scsi硬盘驱动, 或是所使用的文件系统没编进内核,
要么重编内核把硬盘驱动加进去 (不需initrd)
要么制作initrd.img

问题在于虽然grub认识你的硬盘, 但当把内核读入后, 控制
权已交给内核了, 但内核不认识硬盘, 所以要找模块,
但在一个它不认识的设备里.
 楼主| 发表于 2003-8-1 09:32:25 | 显示全部楼层
非常感谢wangli70,我是Linux新手,有两个问题请进一步帮助:

1、怎么将驱动编译到内核。如果说我的驱动是Linux标准自带的,我可以通过make menuconfig选中相应的SCSI驱动加载到内核中,但是如果我的驱动在标准的menuconfig找不到,是不是应该将redhat中的相应模块考到某个相应目录下,然后编辑配置文件,才能编译到内核中,具体怎么做

2、initrd.img的制作。我能否将redhat中的initrd.img考到我的lfs/boot目录下,还有其他的配置文件么?要是自己作一个独立的initrd.img,怎么做?mkinitrd么?我看到一篇文章,不知是否可以:
# dd if=/dev/zero of=/tmp/initrd bs=1k count=4096
# losetup /dev/loop0 /tmp/initrd# mke2fs -m 0 /dev/loop0>
# mount -t ext2 /dev/loop0 /mnt# cp -r /tmp/floppy-linux/* /mnt
# umount /mnt
# losetup -d /dev/loop0
# dd if=/tmp/initrd | gzip -9 > /tmp/initrd.gz
# rm -f /tmp/initrd
# sync


请指教哦,thank you very much!
 楼主| 发表于 2003-8-1 10:42:41 | 显示全部楼层
我把驱动编译到内核了,果然可以启动了,谢谢!还有,我觉得自己编译的工具太少,比如telnet,tcpd等程序都没有,请问哪个地方可以download这些源码啊?
发表于 2003-8-1 11:47:24 | 显示全部楼层
telnet 在 inetutils里,
http://freshmeat.net/projects/inetutils/
tcpd在 tcpwrappers 里, (blfs)
 楼主| 发表于 2003-8-2 22:03:35 | 显示全部楼层
thanks wangli70
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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