LinuxSir.cn,穿越时空的Linuxsir!

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

修复grub的两种办法都用了但是都不行!

[复制链接]
发表于 2006-5-22 20:58:53 | 显示全部楼层 |阅读模式
第一种
knoppix@ttyp1[knoppix]$ su
root@ttyp1[knoppix]# chroot /mnt/hda5
Knoppix:/#grub

enter:


    GNU GRUB  version 0.95  (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub>
      root(hd0,4)

Error 27: Unrecognized command

grub>
      root (hd0,4)

Error 21: Selected disk does not exist

grub>

hd0,4就是debian所在的分区啊,为什么他找不到呢?

第二种办法:
使用grub_for_dos-0.4.1,把grub for dos放在C盘根目录下然后用启动dos光盘进入C盘,
键入grub后回车:
提示:Must run in real mode or ring 0 of protected mode,Cannot run in vm86 mode

怎么办啊?
发表于 2006-5-22 22:33:53 | 显示全部楼层
兄弟,没看明白你到底想干什么.
如果是想把grub安装到mbr,可以在
chroot进入后,
grub-install hd0

来把grub安装到mbr
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-22 22:57:00 | 显示全部楼层
回楼上的:
我看到网上的资料许多都是想这样弄的:
grub
>root (hdX,Y) #X:表示第几块硬盘,Y:/boot所在分区。
>setup (hd0)

为什么我弄就出错了呢
回复 支持 反对

使用道具 举报

发表于 2006-5-22 23:18:00 | 显示全部楼层
你的问题是在chroot环境下无法获取设备。

昨天我刚做过grub修复(系统是debian testing)。

我的做法:
mount /dev/hda7 /mnt/tmp (我的linux是装在/dev/hda7下的。)
mount -t proc none /mnt/tmp/proc
mount -t sysfs sysfs /mnt/tmp/sys
chroot /mnt/tmp /bin/bash
/etc/init.d/udev start (我的系统中是使用udev来识别硬件的。)
grub
grub> root (hd0,6)
grub>setup (hd0)
grub>quit

然后重新启动计算机就可以了。

在修复过程中,我还注意到一个现象,如果删除一些分区后(root所在的分区改变了。),用yaird生成的initrd.img无法正常启动,而用mkinitrd生成的initrd.img就可以正常启动(幸好我的系统中有这两种方法生成的initrd.img)。
回复 支持 反对

使用道具 举报

发表于 2006-5-23 00:40:12 | 显示全部楼层
在第一种方法里"chroot /mnt/hda5"似乎是不要做的,再有用fdisk -l确认一下是否找到了/dev/hda5.
第二种办法for dos不行的话,用wingrub试试.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-23 08:56:34 | 显示全部楼层
我看别人都是那几个命令就可以搞定,为什么我这里只是修复grub就那么麻烦啊
我还是linux菜鸟,有没有简单一点的办法啊?
回复 支持 反对

使用道具 举报

发表于 2006-5-23 08:58:24 | 显示全部楼层
Post by nicle
在第一种方法里"chroot /mnt/hda5"似乎是不要做的,再有用fdisk -l确认一下是否找到了/dev/hda5.
第二种办法for dos不行的话,用wingrub试试.


是否需要chroot与你的修复方式有关

比如,我是用debian的安装光盘进行修复,在修复过程中,运行到检测完硬件后,然后切换到控制台下,此时系统中是没有grub的。

必须切换到旧系统下才能使用grub

如果启动修复的系统中有grub,那么就不需要chroot了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-23 09:23:10 | 显示全部楼层
to springwind426:
我还是菜鸟,你能不能解释一下你前面给我的命令,
mount -t proc none /mnt/tmp/proc

mount -t sysfs sysfs /mnt/tmp/sys
是什么意思?

还有/etc/init.d/udev start 我也不知道是什么意思?如何知道我的debian是否是用ndev来检测硬件的?
回复 支持 反对

使用道具 举报

发表于 2006-5-23 09:33:10 | 显示全部楼层
try this:
mount --bind /proc somewhere/proc
mount --bind /dev somewhere/dev
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-23 09:49:30 | 显示全部楼层
Post by shannleon
try this:
mount --bind /proc somewhere/proc
mount --bind /dev somewhere/dev



knoppix@ttyp1[knoppix]$ su
##shannleon你的意思是不是把上面的两段代码加到这里就可以了?
root@ttyp1[knoppix]# chroot /mnt/hda5
Knoppix:/#grub
回复 支持 反对

使用道具 举报

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

本版积分规则

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