我已经建立了多重启动系统。系统具有三个驱动器。Multiboot已配置Windows XP,Windows 7和Ubuntu-都在第一个驱动器上。我在驱动器上留有很多未分区的空间,并保留了该空间以供将来添加其他操作系统以及在此处存储文件之用。
有一天,我继续下载分区向导,并从Windows 7中创建了一个逻辑NTFS分区,仍然剩下一些未分区的空间。一切正常,直到几天后我重新启动计算机。
现在我得到:
error: unknown filesystem.
grub rescue>
首先,我很惊讶地没有找到任何帮助命令,方法是尝试:
help
,?
,man
,--help
,-h
,bash
,cmd
,等。
现在,我无法启动系统。我已经开始研究此问题,发现人们通常建议启动到Live CD并从那里修复问题。有没有一种方法可以从grub抢救中解决此问题,而无需Live CD?
更新
通过遵循从Persist命令键入到GRUB rescue的步骤,我能够启动到initramfs提示符。但是没有比这更远的地方了。
到目前为止,除了阅读有关grub抢救的手册之外,我还可以使用ls
command 查看我的驱动器和分区。对于第一个硬盘驱动器,我看到以下内容:
(hd0)(hd0,msdos6)(hd0,msdos5)(hd0,msdos2)(hd0,msdos1)
我现在知道(hd0,msdos6)包含Linux,因为它ls (hd0,msdos6)/
列出了目录。其他人会给出“错误:未知的文件系统”。
更新2
执行以下命令后,我现在进入启动菜单,可以启动到Windows 7和Ubuntu,但是重新启动后,我必须重复这些步骤。
ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal
更新3
感谢Shashank Singh,根据您的指示,我简化了以下步骤。我从您那里了解到,我可以只用6代替msdos6,而我可以insmod normal
代替insmod /boot/grub/linux.mod
。现在,我只需要弄清楚如何从grub自身中保存此设置,而无需启动任何操作系统。
set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal
更新4
好吧,似乎是引导到Linux的必要条件。引导到Ubuntu后,我执行了手册中描述的以下步骤:
sudo update-grub
sudo grub-install /dev/sda
这不能解决问题。我仍然收到grub救援提示。我需要怎么做才能永久修复它?
我还了解到,对于某些命令,需要将hd0中的驱动器号转换为/ dev / sda中的驱动器号。hd1将是sdb,hd2将是sdc,依此类推。grub中列为(hd0,msdos6)的分区将转换为/ dev / sda6。
更新5
我不知道为什么以下内容无法修复grub:
sudo update-grub
sudo grub-install /dev/sda
因此,我根据https://help.ubuntu.com/community/Boot-Repair帖子中的答案下载了Boot-repair。在我选择了“建议的维修(修复最常见的问题)”选项之后,这似乎可以解决问题。