[已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
-
- 帖子: 29
- 注册时间: 2006-09-17 20:43
[已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
多系统共存,昨日xp中毒,重新安装xp后,mbr被覆盖,
原来安装在ubuntu alternate 9.10下用来引导多系统的grub2不起作用了。
我想使用ubuntu alternate 9.10的光盘进行恢复grub:
使用ubuntu的alternate 9.10光盘启动,顺利进入救援模式。
选择键盘语言国家之后,到硬盘分区检测完毕,按返回键,进入主菜单,选择shell:
(xp安装在/dev/sda1,freebsd安装在/dev/sda3,ubuntu 安装在/dev/sda4,
slackware安装在/dev/sda5,debian 安装在/dev/sda6,
open suse安装在/dev/sda7,mandriva安装在/dev/sda8
)
依次使用以下命令:
#mkdir /mnt/a
#mount /dev/sda4 /mnt/a -t reiserfs
#chroot /mnt/a
#grub-install /dev/sda
在grub-install /dev/sda时出错:
grub-probe: error: cannot find a device for boot/grub.
No path or device is specified.
Try ``grub-probe --help'' for more information.
怎么办?
我后来在还是用光盘启动进入救援模式,在硬盘分区检测完毕后,按返回键,进入主菜单,选择救援系统。想在列出的分区列表中选择/dev/sda4作为根目录,然后"执行安装grub",但是选择/dev/sda4作为根目录失败。
又尝试在列出的分区中选择其它linux系统分区(比如/dev/sda5,6,7,8)作为根目录,挂载可以成功,但是“执行安装grub”时又失败
(最后还是选择挂载mandriva分区作为根目录,不选择“执行安装grub”,而是选择“在根目录中执行shell”,执行命令grub- install,成功安装mandriva系统中的grub到mbr,顺利进入mandriva系统,再进一步修改其menu.lst,增加其它 linux系统的引导项,重新启动电脑,在grub启动菜单中选择ubuntu 9.10救援模式,安装grub-install)。
原来安装在ubuntu alternate 9.10下用来引导多系统的grub2不起作用了。
我想使用ubuntu alternate 9.10的光盘进行恢复grub:
使用ubuntu的alternate 9.10光盘启动,顺利进入救援模式。
选择键盘语言国家之后,到硬盘分区检测完毕,按返回键,进入主菜单,选择shell:
(xp安装在/dev/sda1,freebsd安装在/dev/sda3,ubuntu 安装在/dev/sda4,
slackware安装在/dev/sda5,debian 安装在/dev/sda6,
open suse安装在/dev/sda7,mandriva安装在/dev/sda8
)
依次使用以下命令:
#mkdir /mnt/a
#mount /dev/sda4 /mnt/a -t reiserfs
#chroot /mnt/a
#grub-install /dev/sda
在grub-install /dev/sda时出错:
grub-probe: error: cannot find a device for boot/grub.
No path or device is specified.
Try ``grub-probe --help'' for more information.
怎么办?
我后来在还是用光盘启动进入救援模式,在硬盘分区检测完毕后,按返回键,进入主菜单,选择救援系统。想在列出的分区列表中选择/dev/sda4作为根目录,然后"执行安装grub",但是选择/dev/sda4作为根目录失败。
又尝试在列出的分区中选择其它linux系统分区(比如/dev/sda5,6,7,8)作为根目录,挂载可以成功,但是“执行安装grub”时又失败
(最后还是选择挂载mandriva分区作为根目录,不选择“执行安装grub”,而是选择“在根目录中执行shell”,执行命令grub- install,成功安装mandriva系统中的grub到mbr,顺利进入mandriva系统,再进一步修改其menu.lst,增加其它 linux系统的引导项,重新启动电脑,在grub启动菜单中选择ubuntu 9.10救援模式,安装grub-install)。
上次由 netstree 在 2010-02-04 17:38,总共编辑 2 次。
FreeBSD=优雅的女人, Solaris=高贵的女人, Linux=年轻的女人, windows=午夜下班的女人
IBM ThinkPad x31:
XP SP3+Freebsd8.0+Ubuntu11.10+Qimo(儿童Linux)+Doudoulinux(儿童Linux)+Fedora16+Slackware13.0+Debian 5.03+OpenSUSE 11.2+Mandriva 2010
IBM ThinkPad x31:
XP SP3+Freebsd8.0+Ubuntu11.10+Qimo(儿童Linux)+Doudoulinux(儿童Linux)+Fedora16+Slackware13.0+Debian 5.03+OpenSUSE 11.2+Mandriva 2010
-
- 帖子: 112
- 注册时间: 2009-11-02 10:29
Re: ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
之所以出现以上错误,估计是你chroot到那个目录了,其实并不需要chroot进去
用livecd修复grub
用ubuntu9.10的livecd启动后,打开终端
假如你的ubuntu的 / 分区是sda4,又假如 /boot分区是 sda6,用livecd启动,在终端下输入
sudo -i
mount /dev/sda4 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt /dev/sda
如果grub.cfg己丢失,或grub.cfg出现错误,需要重建的继续执行下面操作:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
#如果需要chroot的,不要忘了上面的三步,不然就有可能出错
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
exit
用livecd修复grub
用ubuntu9.10的livecd启动后,打开终端
假如你的ubuntu的 / 分区是sda4,又假如 /boot分区是 sda6,用livecd启动,在终端下输入
sudo -i
mount /dev/sda4 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt /dev/sda
如果grub.cfg己丢失,或grub.cfg出现错误,需要重建的继续执行下面操作:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
#如果需要chroot的,不要忘了上面的三步,不然就有可能出错
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
exit
-
- 帖子: 29
- 注册时间: 2006-09-17 20:43
Re: ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
感谢hunter108!在你的提示下,我终于成功了,有两种解决方法:hunter108 写了:之所以出现以上错误,估计是你chroot到那个目录了,其实并不需要chroot进去
用livecd修复grub
用ubuntu9.10的livecd启动后,打开终端
假如你的ubuntu的 / 分区是sda4,又假如 /boot分区是 sda6,用livecd启动,在终端下输入
sudo -i
mount /dev/sda4 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt /dev/sda
我用虚拟机做了试验,我还是使用alternate 9.10光盘启动系统,进入shell: (1)这样没成功。
mount /dev/sda2 /mnt -t reiserfs
grub-install --root-directory=/mnt /dev/sda
出错:/bin/sh: grub-install: not found 看来还得需要chroot啊!于是推倒重来,这样做:
(2)这样可以成功!
mount /dev/sda2 /mnt -t reiserfs
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt
grub-install --root-directory=/mnt /dev/sda
又出错:grub-probe: error : Cannot find a GRUB drive for /dev/sda2. Check your device.map. 这个时候,不带 --root-directory=参数,
修改成:grub-install /dev/sda
终于成功了,有图有真相: (3)这样也可以成功。还简单些:
还是使用alternate 9.10光盘启动系统,不进入shell,而是使用救援方式,图形界面下成功恢复grub,要注意的是选择安装grub的地方应该是/dev/sda或者(hd0),而不应该是/dev/hda:
有图有真相!
FreeBSD=优雅的女人, Solaris=高贵的女人, Linux=年轻的女人, windows=午夜下班的女人
IBM ThinkPad x31:
XP SP3+Freebsd8.0+Ubuntu11.10+Qimo(儿童Linux)+Doudoulinux(儿童Linux)+Fedora16+Slackware13.0+Debian 5.03+OpenSUSE 11.2+Mandriva 2010
IBM ThinkPad x31:
XP SP3+Freebsd8.0+Ubuntu11.10+Qimo(儿童Linux)+Doudoulinux(儿童Linux)+Fedora16+Slackware13.0+Debian 5.03+OpenSUSE 11.2+Mandriva 2010
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
grub2 的 grub-install 还是 chroot 比较稳当,--root-directory 这种用法在 grub2 经常不行的。1 楼没有成功主要是没有 bind /dev 进去,也就谈不上安装到 /dev/sdahunter108 写了:之所以出现以上错误,估计是你chroot到那个目录了,其实并不需要chroot进去
用livecd修复grub
用ubuntu9.10的livecd启动后,打开终端
假如你的ubuntu的 / 分区是sda4,又假如 /boot分区是 sda6,用livecd启动,在终端下输入
sudo -i
mount /dev/sda4 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt /dev/sda
如果grub.cfg己丢失,或grub.cfg出现错误,需要重建的继续执行下面操作:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
#如果需要chroot的,不要忘了上面的三步,不然就有可能出错
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
exit
- missing
- 帖子: 1470
- 注册时间: 2008-03-28 20:52
- 系统: QNX
-
- 帖子: 29
- 注册时间: 2006-09-17 20:43
Re: ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
有道理!billbear 写了:grub2 的 grub-install 还是 chroot 比较稳当,--root-directory 这种用法在 grub2 经常不行的。1 楼没有成功主要是没有 bind /dev 进去,也就谈不上安装到 /dev/sdahunter108 写了:之所以出现以上错误,估计是你chroot到那个目录了,其实并不需要chroot进去
用livecd修复grub
用ubuntu9.10的livecd启动后,打开终端
假如你的ubuntu的 / 分区是sda4,又假如 /boot分区是 sda6,用livecd启动,在终端下输入
sudo -i
mount /dev/sda4 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt /dev/sda
如果grub.cfg己丢失,或grub.cfg出现错误,需要重建的继续执行下面操作:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
#如果需要chroot的,不要忘了上面的三步,不然就有可能出错
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
exit
总结我的修复grub2过程,
我觉得关键是这几句:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt
只是还不明白是啥意思?
至于--root-directory=确实比较古怪:
我在虚拟机上grub-install时加上--root-directory=不行,去掉就可以,
而我在家里的真实机器上,不加--root-directory=就不行,非得加上--root-directory=/mnt
FreeBSD=优雅的女人, Solaris=高贵的女人, Linux=年轻的女人, windows=午夜下班的女人
IBM ThinkPad x31:
XP SP3+Freebsd8.0+Ubuntu11.10+Qimo(儿童Linux)+Doudoulinux(儿童Linux)+Fedora16+Slackware13.0+Debian 5.03+OpenSUSE 11.2+Mandriva 2010
IBM ThinkPad x31:
XP SP3+Freebsd8.0+Ubuntu11.10+Qimo(儿童Linux)+Doudoulinux(儿童Linux)+Fedora16+Slackware13.0+Debian 5.03+OpenSUSE 11.2+Mandriva 2010
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
在 livecd 下可以直接用 grub-install --root-directory
Alternative下只能用 chroot
Alternative下只能用 chroot
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
grub2 最好 chroot
grub 最好不 chroot
引用我的站内短信,
grub 最好不 chroot
引用我的站内短信,
ptptptptptpt 写了:我看到 lub 里面这样写:为何 grub1 不使用 target_cmd "$tgt" grub-install $grubdev 呢??代码: 全选
grub1(){ grub-install --root-directory="$tgt" $grubdev grub-install --root-directory="$tgt" $grubdev # grub-install (onto reiserfs) sometimes fails for unknown reason. Installing it twice succeeds most of the time. target_cmd "$tgt" update-grub -y sed -i "s/^hiddenmenu/#hiddenmenu/" $tgt/boot/grub/menu.lst windowsentry } grub2(){ target_cmd "$tgt" grub-install $grubdev target_cmd "$tgt" update-grub }
billbear 写了:老 grub 记得以前试过这种写法,但是好像工作不正常,具体是装不上还是什么情况忘记了。你试试看。
grub2 正相反,不 chroot 进去的话,安装到 mbr 没有问题,但是安装到分区不是装不上就是装上了启动不了,不知道为什么。你试试你那边是不是这样。我注意到每次安装到分区的时候 grub2 都会抱怨这是个 bad idea。
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
grub2安装到分区时,就是在系统的root下操作也老是说 bad idea。这个应该和是否chroot没关系。grub2 正相反,不 chroot 进去的话,安装到 mbr 没有问题,但是安装到分区不是装不上就是装上了启动不了,不知道为什么。你试试你那边是不是这样。我注意到每次安装到分区的时候 grub2 都会抱怨这是个 bad idea。
代码: 全选
# grub-install /dev/sda3
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged..
/usr/sbin/grub-setup: error: if you really want blocklists, use --force.
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
是的,我说这个的意思是 grub2 对安装到分区的支持可能有限,以致在 livecd 用 --root-directory 并安装到分区时通常无法启动。但是 chroot 进去安装总能成功,尽管它也抱怨 bad idea。grub2安装到分区时,就是在系统的root下操作也老是说 bad idea。这个应该和是否chroot没关系。
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
熊大,你安装到逻辑分区的能成功吗?
我试过N多次,只有一次成功的装在逻辑分区上。
我试过N多次,只有一次成功的装在逻辑分区上。

-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
我在调试 lub 的时候,用 lub 恢复备份并安装 grub2 到逻辑分区,记得是成功的。
用的是 chroot "$target" grub-install $grubdev, vmware
不过有时候这个命令要执行 2 次才能成功,后来改了脚本。
安装 grub2 到 reiserfs 分区印象中有时候有毛病。
我想用 livecd 也应该可以成功吧,虽然没试过。
用的是 chroot "$target" grub-install $grubdev, vmware
不过有时候这个命令要执行 2 次才能成功,后来改了脚本。
安装 grub2 到 reiserfs 分区印象中有时候有毛病。
我想用 livecd 也应该可以成功吧,虽然没试过。
- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
我不是用livecd的,是在系统中直接grub-install,加了 --force,最后提示也是no error ,但是在逻辑分区用g4dos的chainloader +1就是启动不了,现在用主分区的,grub-install 方法一样,就能安装成功。
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
我不记得我有没有测试过逻辑分区了 

- smallapple
- 论坛版主
- 帖子: 7868
- 注册时间: 2009-03-28 15:12
Re: [已解决]ubuntu 9.10 Alternate光盘进入救援模式如何重新安装grub?
我现在也转移到主分区了billbear 写了:我不记得我有没有测试过逻辑分区了
