有一天,我下载了Partition Wizard,并在Windows 7中创建了一个逻辑NTFS分区,但仍有一些未分区的空间剩余。一切都正常工作,直到几天后重新启动计算机。
现在我遇到了以下问题:
error: unknown filesystem.
grub rescue>
首先,我很惊讶地发现没有任何形式的帮助命令,尝试了以下命令:
help
、?
、man
、--help
、-h
、bash
、cmd
等等。现在我的系统无法启动。我已经开始研究这个问题,并发现人们通常建议使用Live CD引导并从那里修复问题。是否有办法在grub rescue中修复此问题,而不需要Live CD呢? 更新 通过按照Persist commands typed to GRUB rescue的步骤,我能够引导到initramfs提示符。但是无法进一步操作。
到目前为止,我已经阅读了关于grub rescue的手册,通过使用
ls
命令,我能够看到我的驱动器和分区。对于第一个硬盘,我看到以下内容:(hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)
现在我知道(hd0,msdos6)上面有Linux,因为ls (hd0,msdos6)/
列出了目录。其他的会显示"error: unknown filesystem."
更新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 rescue提示符。我需要做什么来永久修复它?
我还了解到,某些命令中的驱动器编号(如hd0)需要转换为驱动器字母(如/dev/sda)。hd1将变成sdb,hd2将变成sdc,依此类推。在grub中列出的分区(hd0,msdos6)将被转换为/dev/sda6。
更新5:
我无法弄清楚为什么以下操作没有修复grub:
sudo update-grub
sudo grub-install /dev/sda
所以我根据boot-repair的答案从https://help.ubuntu.com/community/Boot-Repair帖子中下载了它。选择了"Recommended Repair (repairs most frequent problems)"选项后,似乎问题得到了解决。