[问题]奇怪的grub loading error 21

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
testtest22
帖子: 101
注册时间: 2006-06-24 20:03

[问题]奇怪的grub loading error 21

#1

帖子 testtest22 » 2006-06-24 20:16

好不容易安装好了,重启后到grub loading的时候,就会重启,看不到出错信息。
用livecd引导进去后,试了一下,发现出错信息是error 21

在网上查了一下,说是找不到硬盘。

我硬盘是IDE的,只有一个,40G,而且只装了ubuntu,在livecd下把hda1 mount上,chroot环境下,ls -l /dev/hd*,没有东西,ls -l /dev/h*,也没有。在非chroot下,sudo fdisk -l,有hda1,hda5。在mount上hda1并chroot的情况下,进入GRUB(即输入grub)执行命令:root (hd0,0),出现error 21错误,不能再往下执行。sudo grub-install /dev/hda ,找不到hda,无法执行。find /boot/grub/sta*,找不到.

总结一下:
1,ubuntu确实是装上了(mount /dev/hda1,ls -l,可以查看得到,日期都正确)
2,在BIOS里也能正确识别硬盘(否则的话也装不上嘛)
3,但在已装好的ubuntu里却没有/dev/hd*(/etc/fstab里则有hda1,hda5,一切都正确)
4,启动的时候grub应该是找不到/dev/hda*,所以启动不了。。。
5,重装两次,问题依旧

问题:
这是咋回事? 能给点意见否?

ps:ubuntu 6.0.6 LTS desktop
头像
nobrain
帖子: 808
注册时间: 2005-08-25 13:58
来自: ustc
联系:

#2

帖子 nobrain » 2006-06-24 23:39

不需要chroot吧。
你chroot了,再执行sudo grub-install /dev/hda 当然不对了。
你不需要chroot,你需要明确你现在用的是哪个系统,用的是livecd的,你看到的 /dev 是livecd系统里面的 /dev 不是硬盘上的那个系统的 /dev ,硬盘上的那个系统并没有启动, livecd启动与硬盘上的系统无关
爱喝真猪奶茶的夜鸣猪
testtest22
帖子: 101
注册时间: 2006-06-24 20:03

#3

帖子 testtest22 » 2006-06-25 9:08

nobrain 写了:不需要chroot吧。
你chroot了,再执行sudo grub-install /dev/hda 当然不对了。
你不需要chroot,你需要明确你现在用的是哪个系统,用的是livecd的,你看到的 /dev 是livecd系统里面的 /dev 不是硬盘上的那个系统的 /dev ,硬盘上的那个系统并没有启动, livecd启动与硬盘上的系统无关
既然用了sudo,那就不是chroot下。

我知道livecd下的/dev与真正系统下的/dev不一样,livecd下是有/dev/hda*的。

我是mount了/dev/hda1,然后chroot,再ls -l /dev/hda*的,livecd下的/dev/hda1是真正的硬盘上的系统。
头像
nobrain
帖子: 808
注册时间: 2005-08-25 13:58
来自: ustc
联系:

#4

帖子 nobrain » 2006-06-25 9:28

首先,chroot是改变根目录,不知道你是怎么用的,把你操作用的命令过程详细贴上来。
其次,
livecd下的/dev/hda1是真正的硬盘上的系统
/dev/hda1不是硬盘上的系统,是硬盘上的系统所在的分区,是分区,不是系统。再说那上面是什么数据有什么关系吗?
爱喝真猪奶茶的夜鸣猪
testtest22
帖子: 101
注册时间: 2006-06-24 20:03

#5

帖子 testtest22 » 2006-06-25 19:05

nobrain 写了:首先,chroot是改变根目录,不知道你是怎么用的,把你操作用的命令过程详细贴上来。
其次,
livecd下的/dev/hda1是真正的硬盘上的系统
/dev/hda1不是硬盘上的系统,是硬盘上的系统所在的分区,是分区,不是系统。再说那上面是什么数据有什么关系吗?
我只是在chroot下用grub和ls /mnt/hda1(mount hda1 to /mnt/hda1,cd /mnt/hda1,chroot,ls -l /)的,其它带sudo的都没在chroot下用。

当在livecd启动环境下,由于/dev/hda1这个硬盘分区(节点)上装的是真正的ubuntu,所以,ls -l /dev/hda1,看到的就是真正的系统文件,而非livecd的东西,可能我没表达清楚。浏览/dev/hda1里面的东西,事实上是浏览真正的系统文件。
头像
nobrain
帖子: 808
注册时间: 2005-08-25 13:58
来自: ustc
联系:

#6

帖子 nobrain » 2006-06-27 20:29

直接执行

代码: 全选

sudo /mnt/hda1/sbin/grub-install /dev/hda
不需要chroot
爱喝真猪奶茶的夜鸣猪
回复