我收到此错误:
Error: unknown filesystem.
grub rescue>
我不太清楚我做了什么。我相信我在 Acer 上网本上安装了 Ubuntu 而不是 Windows。然后我尝试安装Linux Mint,但它不会开始安装。
我关闭了上网本,然后重新打开。现在出现了错误。
我读过很多类似的问题,但就我而言,我无法启动 CD。如果我将 Ubuntu CD 或 Linux Mint CD 放入外部 CD/DVD 驱动器,并将 BIOS 更改为先启动 CD-ROM,它只会给我相同的错误屏幕。
更新内容复制自 2012-05-26 02:54:29Z 的评论
以下是我的命令的一些结果:
grub rescue>ls (hd0) (hd0,msdos5) (hd0,msdos1)
grub rescue>ls (hd0,msdos5) unknown filesystem
grub rescue>ls (hd0,msdos1) unknown filesystem
grub rescue>ls (hd0) unknown filesystem
答案1
以下内容为我解决了这个问题,我有 Windows 7 和 Ubuntu 10.04。运行以下命令后,我不需要每次都运行这些命令,并且能够正常启动两个操作系统:
set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal
现在,一旦您启动 Ubuntu,也运行以下两个命令:
sudo update-grub
sudo grub-install /dev/sda
注意:/dev/sda
是要安装 GRUB 的驱动器,可以是/dev/sdb
其他驱动器,但通常是/dev/sda
考虑到hd0
根据磁盘的顺序,可能是 X (0,1,2..),并且也可能不同,例如,6
可能是。(hd0,gpt7)
答案2
首先从 ISO 映像启动 Ubuntu。
找到 Ubuntu 分区和包含 GRUB 模块的文件夹。
必须找到包含模块的 GRUB 文件夹,以便加载正确的模块。此文件夹将在 Ubuntu 的初始安装期间创建,应位于 Ubuntu 分区中。此文件夹通常位于(hdX,Y)/boot/grub 或 (hdX,Y)/usr/lib/grub/i386-pc. 找到您现有的 Ubuntu 分区和模块文件夹。
ls # List the known drives (hdX) and partitions (hdX,Y) ls (hdX,Y)/ # List the contents of the partition's root ls (hdX,Y)/boot/grub # Normal location of the Grub 2 modules. ls (hdX,Y)/usr/lib/grub/i386-pc # Alternate location of the Grub 2 modules.
ls
- 应返回所有已知驱动器 (hdX) 和分区 (hdX,Y)ls (hdX,Y)/
- 应该显示分区根目录的内容。- 如果你得到“错误:未知的文件系统”这不是您的 Ubuntu 分区。
- 如果这是 Ubuntu 分区,您将看到 Ubuntu 文件夹,包括 lost+found/、home/、boot/ 以及 vmlinuz 和 initrd.img。使用此地址作为下一个命令的第一部分。
ls (hdX,Y)/boot/grub
- 应该会显示几十个 *.mod 文件。这是您要查找的文件夹。- 如果找不到模块,请尝试其他位置:ls (hdX,Y)/usr/lib/grub/i386-pc
加载模块。
set prefix=(hdX,Y)/<path to modules>
- 此命令必须正确指向包含 GRUB 模块的文件夹。该地址应该是上一节中显示模块的地址。
例子:
set prefix=(hd0,5)/boot/grub set prefix=(hd1,1)/usr/lib/grub/i386-pc
加载模块:
insmod linux insmod loopback insmod iso9660 insmod fat # If ISO is located on fat16 or fat32 formatted partition. insmod ntfs # If ISO is located on an NTFS formatted partition. insmod nftscomp # If NTFS compression is used on the partition. Load if you aren't sure.
A“文件未找到”错误意味着前缀中的路径不正确或特定模块不存在。可以使用 set 命令检查前缀设置。使用正确的路径重新运行“set prefix=”命令。
找到 Ubuntu ISO 文件。
- 使用 ls 命令组合,找到 Ubuntu ISO 映像。
创建环回设备。
loopback loop (hdX,Y)/<path to ISO>/<ISO-name.iso>
例子:
loopback loop (hd1,1)/path/to/ubuntu-10.04.1-desktop-i386.iso
加载 Linux 内核和 initrd 映像。
set root=(loop) linux /casper/vmlinuz boot=casper iso-scan/filename=/<ISO-name.iso> noprompt noeject initrd /casper/initrd.lz
- 如果 ISO 或文件名的路径不正确,启动将在 BusyBox 屏幕上停止并生成一条消息,指出“无法打开 /dev/sr0:未找到介质”。
- 注意:如果 ISO 文件不在 / 文件夹中,请在 中包含路径
iso-scan/filename= entry
。请参阅第二个示例。 例子:
linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso linux /casper/vmlinuz boot=casper iso-scan/filename=/my-iso/ubuntu-10.04.1-desktop-i386.iso
引导。
就是这样。如果命令运行时没有任何消息/错误,则命令被接受为输入。现在是启动的时候了:
boot
更多信息请参阅论坛帖子如何:从 Grub 救援提示启动并安装 Ubuntu
启动后执行以下操作:
如何修复:错误:未知文件系统 grub 救援?有同样问题的帖子,解决方法如下,
sudo mount /dev/sdaX /mnt
这是你的启动分区。你可以像这样
sdaX
获取列表:sudo blkid
/dev/sda1: LABEL="Windows XP" UUID="96A4390DA438F0FB" TYPE="ntfs" /dev/sda3: LABEL="Ubuntu 11.04" UUID="b61fcae3-7744-45b4-95b9-7528d50a3652" TYPE="ext4" /dev/sda5: LABEL="Se7en" UUID="A2DC9D71DC9D4109" TYPE="ntfs" /dev/sda6: LABEL="Development" UUID="DEB455A1B4557CC9" TYPE="ntfs" /dev/sda7: LABEL="EXTRA" UUID="D8A04109A040F014" TYPE="ntfs" /dev/sda8: LABEL="SONG" UUID="46080FCD080FBAC7" TYPE="ntfs" /dev/sda9: LABEL="BACKUPS" UUID="766E-BC99" TYPE="vfat"
注意:
sdaX
必须是Linux分区。sudo grub-install --boot-directory=/mnt/boot /dev/sda
sudo update-grub
答案3
从 Ubuntu Live CD 启动您的系统并尝试此操作,它对我来说非常有效。
答案4
在我删除位于该分区之前的分区后,发生了这种情况/boot
。
为了修复它,我运行了一个 Ubuntu live USB 棒,将根分区挂载到/mnt
并将启动分区挂载到/mnt/boot
,然后我运行了这个命令(/dev/sda
用正确的硬盘替换):
sudo grub-install --root-directory=/mnt --boot-directory=/mnt/boot /dev/sda