如何修复“错误:未知文件系统.grub rescue>

我收到此错误:

Error: unknown filesystem. grub rescue> 

我不确定我做了什么。 我相信我在Acer上网本上安装了Ubuntu。 然后我尝试安装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 

以下为我解决了这个问题,我有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)

首先从ISO映像启动到Ubuntu。

  1. 找到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
  2. 加载模块。

     set prefix=(hdX,Y)/ 
    • 此命令必须正确指向包含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. 
    • “找不到文件”错误意味着前缀中的路径不正确或特定模块不存在。 可以使用set命令查看前缀设置。 使用正确的路径重新运行“set prefix =”命令。

  3. 找到Ubuntu ISO文件。

    • 使用ls命令的组合,找到Ubuntu ISO映像。
  4. 创建环回设备。

     loopback loop (hdX,Y)// 
    • 例:

       loopback loop (hd1,1)/path/to/ubuntu-10.04.1-desktop-i386.iso 
  5. 加载Linux内核和initrd映像。

     set root=(loop) linux /casper/vmlinuz boot=casper iso-scan/filename=/ 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 
  6. 引导。

    那应该是它。 如果命令在没有任何消息/错误的情况下运行,则命令被接受为输入。 现在是时候开机了:

     boot 

更多信息请参阅论坛postHOWTO:从Grub Rescue Prompt启动和安装Ubuntu

现在在启动后执行此操作:

如何修复:错误:未知文件系统grub rescue? 发布了同样的问题并解决如下,

  1. 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分区。

  2. sudo grub-install --boot-directory=/mnt/boot /dev/sda

  3. sudo update-grub

从Ubuntu Live CD启动您的系统并试试这个,它为我创造了奇迹。

  • Ubuntu启动修复工具

在阅读之前:下面的答案适用于刚刚更新/恢复/重新安装/安装OS X的Ubuntu用户。如果不是这种情况,答案可能会有效(例如,如果您的分区中存在任何不一致)表),但我不确定。

对我来说,这是在更新到OS X Mavericks (10.9)之后发生的。 基本上可能发生的是OS X创建了一个系统有时只能检测到的恢复分区(“Recovery HD”)。 例如,Ubuntu中的GParted会看到恢复分区正常,但是当在终端( fdisk -l )中列出分区时,您可能看不到分区。

诊断问题:OS X更新/格式化/恢复是否导致此问题?

为了确定确实如此,首先使用GRUB rescue启动到Ubuntu。 为此,请按照此页面或查看此问题的任何其他答案是否可以让您进入Ubuntu。 对我来说,运行以下命令暂时允许我启动正确的分区。 根据硬盘驱动器和分区的设置方式,可能会有所不同:

 grub rescue> set prefix=(hd0,6)/boot/grub grub rescue> insmod normal grub rescue> normal 

现在,登录Ubuntu并检查GParted。 如果看到恢复分区,请打开终端并键入fdisk -l以查看是否检测到恢复分区。 如果它没有列出相同的分区,请检查设备/分区列,看看它们是否也不匹配(例如,在GParted中,您的启动分区可能是/dev/sda4 ,但是当它是/dev/sda3时运行fdisk )。 如果是这种情况,请继续阅读。 如果不是,则看起来您的分区排列正确。 您可以选择继续阅读并按照说明进行操作(如果GRUB在恢复/重新安装/等等之前工作,这应该可以正常工作),或者只是在右侧分区上重新安装GRUB。

通过删除/合并恢复分区来修复它

要解决这个问题,我们要做的就是摆脱恢复分区 – 它会导致问题和不一致,并且删除它不应该造成损害。 理想情况下,您希望将其与普通的HFS + OS X分区合并,因此请按照此问题在此处回答。 合并后,GRUB应该恢复正常。

在删除位于/boot分区之前的分区后,这发生在我身上。

为了解决这个问题,我运行了一个Ubuntu live USB stick,将根分区安装到/mnt ,将启动分区安装到/mnt/boot ,然后运行此命令(用正确的硬盘替换/dev/sda ):

 sudo grub-install --root-directory=/mnt --boot-directory=/mnt/boot /dev/sda 

您的外部CD / DVD可能是USB设备。 你可能无法告诉BIOS从它启动。 当你在屏幕的底部(或顶部)启动ACER wacth消息,说“F2进入设置,F12进入启动菜单”。 如果您知道需要按下引导菜单的内容,请将CD放入外部设备,打开或重新启动计算机,然后慢慢地将该键重新混合,直到获得允许您从外部CD引导的临时菜单。

您可能需要使用CD中的gparted来检查您的硬盘驱动器并决定如何修复它以便您可以使用它。 这超出了我在这里所能描述的范围