LinuxSir.cn,穿越时空的Linuxsir!

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

使用grub-install修复Grub时出错

[复制链接]
发表于 2009-3-17 14:31:41 | 显示全部楼层 |阅读模式
WinXP+Debian双系统,由于误操作导致开机后无法进入系统,错误信息为:

GRUB Loading stage1.5.
GRUB loading,please wait...
error 22

按照网上的说法,使用启动盘进入急救模式的命令行模式后,运行Grub-insall修复,但总是出错,信息如下(Debian安装在第三个主分区上,Grub安装在MBR上,在此模式下,分区上的目录及文件均可访问):

sh-3.1#grub-install hd0
/dev/sda4:Not found or not a block device.

——————————————————————————————————————————
按照朋友们的方法做了一下(target是自动挂载的Debian的根目录):
chroot /target /bin/bash
root@debian:grub
Probing devices to guess BIOS drives. This may take a long time.Error opening terminal:bterm.

网上查了一下:
export TERM=xterm 重新设置term变量
Grub成功
Root (hd0,2)  (使用(hd0,3)出错)
Setup (hd0)

Grub菜单正常了,但两个系统均进不去
选择进XP时提示:
Root (hd0,1)
Filesystem type unknown,partiition type 0xf

选择进入Debian时提示:
Root (hd0,3)
Error 22:No such partion
发表于 2009-3-17 14:52:35 | 显示全部楼层
试一下
$grub-install /dev/sda
回复 支持 反对

使用道具 举报

发表于 2009-3-17 15:18:29 | 显示全部楼层
root   (hd0,x)x为你boot所在的区。
然后,setup   (hd0,0)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-17 15:48:08 | 显示全部楼层
enzo1985:
试过grub-install /dev/sda了,仍是出现“/dev/sda4:Not found or not a block device.”这个错误。

lmguy:
你说的那两个命令好像是grub下的命令,而我现在的问题是进不到grub状态。
回复 支持 反对

使用道具 举报

发表于 2009-3-17 17:18:33 | 显示全部楼层
用你的xp光盘引导。

然后选择控制台修复。
然后
fixboot
fixmbr

先修复windows引导。

然后在用linux光盘引导。
进入chroot

用grub-install重新安装grub在mbr上。

重新构建grub。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-17 18:44:41 | 显示全部楼层
Post by arts;1962279
用你的xp光盘引导。

然后选择控制台修复。
然后
fixboot
fixmbr

先修复windows引导。

然后在用linux光盘引导。
进入chroot

用grub-install重新安装grub在mbr上。

重新构建grub。


谢谢,我明天试一下。
不过,我还想问一下,在这种情况下,不通过XP能否修复呢?
回复 支持 反对

使用道具 举报

发表于 2009-3-17 20:39:44 | 显示全部楼层
你是无法进入grub?  我的意思是 , 急救盘启动后chroot到你的debian系统中 然后运行grub 能否运行? 如果能运行的话 解决步骤如下

急救盘启动到shell ,
mount debian的/ 和/boot分区 举例为 /mnt/debian /mnt/debian/boot
mount proc和dev :
mount -t proc proc /mnt/debian/proc
mount -o bind /dev /mnt/debian/dev
chroot:
chroot /mnt/debian /bin/bash
su - root

然后 运行grub --nofloppy , root (hd0,x)  这里的x根据你的情况决定 , setup (hd0)

即可

另外 xd硬盘是不是分了4个主分区?   sda4这个名字很少见
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 08:48:19 | 显示全部楼层
Post by asmart;1962381
你是无法进入grub?  我的意思是 , 急救盘启动后chroot到你的debian系统中 然后运行grub 能否运行? 如果能运行的话 解决步骤如下

急救盘启动到shell ,
mount debian的/ 和/boot分区 举例为 /mnt/debian /mnt/debian/boot
mount proc和dev :

chroot:


然后 运行grub --nofloppy , root (hd0,x)  这里的x根据你的情况决定 , setup (hd0)

即可

另外 xd硬盘是不是分了4个主分区?   sda4这个名字很少见


硬盘分了两个主分区,另外机器自带一个隐藏的主分区,也就是一共3个主分区。
进入急救模式(08年3月份的Testing)时:
当我选择“在 /dev/sda3中运行shell”后系统提示自动将/dev/sda3挂载到"/",这时进入终端后得到的目录结构与正常进入系统后的基本上是一样的,这时如运行Grub命令则提示:
Probing devices to guess BIOS drives. This may take a long time.
Error opening terminal:bterm.

使用exit退出终端时提示:在您的根文件系统(/dev/sda3)上找到了一个shell(/bin/sh -i),但在运行它时出现了错误。

当我选择“在安装程序环境中运行 shell”,系统提示“/dev/sda3”被挂载到"target上……如果想暂时使其成为根文件系统,请运行'chroot /target',如需要其它文件系统,必须自行挂载它们"。
这时运行grub后,还是提示
Probing devices to guess BIOS drives. This may take a long time.
Error opening terminal:bterm.
回复 支持 反对

使用道具 举报

发表于 2009-3-18 23:23:22 | 显示全部楼层
试过其他的livecd引导然后chroot么,比如ubuntu desktop?
回复 支持 反对

使用道具 举报

发表于 2009-3-18 23:28:18 | 显示全部楼层
直接livecd进入,,su ,然后再grub,,再root (hd0,x)x为你boot所在的区。
然后,setup (hd0,0)
回复 支持 反对

使用道具 举报

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

本版积分规则

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