GRUB2 卡在救援控制台,所有分区均显示“未知文件系统”

GRUB2 卡在救援控制台,所有分区均显示“未知文件系统”

我在外部 USB 驱动器上安装了 Ubuntu 12.04,其中有一个 700GB 的 NTFS 分区,后面跟着新的 6GB ext4 分区和一个交换分区(全部是主分区)。GRUB MBR 也安装在外部硬盘上。

由于我的 BIOS 在启动时将外部驱动器作为第一个磁盘,因此我在安装之前移除了内置硬盘,以避免出现排序问题。

现在,当我从外部驱动器启动时,GRUB 卡在救援控制台,并显示错误“未知文件系统”。

grub rescue> ls
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

ls (hd0,<any of them>)/ gives me "unknown filesystem", thus also "insmod normal"

正如您上面所见,GRUB 似乎无法读取我的 Linux 分区?! 我该如何解决这个问题?


附加信息:

启动信息脚本说(这是再次使用内部驱动器,但这没有什么区别):

Grub2 (v1.99) 安装在 /dev/sdb 的 MBR 中,并在同一硬盘驱动器的第 1 扇区中查找 core.img。core.img 位于此位置并在此驱动器上查找 (,msdos2)/boot/grub。

sdb1: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

sdb2: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sdb3: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

答案1

我也遇到过这个问题。但我找到了解决方法。

我的 USB 驱动器有第一个 430GB 的 NTFS 分区 (sdg1),后面跟着 10 GB 的 Linux 分区 (sdg2)(全部为主分区)。我在其中安装了 Ubuntu(或之后的 Trisquel),并出现了有关未知文件系统的相同错误。

这是因为在如此“大”的 NTFS 分区之后,grub 无法“看到”Linux 分区。我不知道 GRUB2 的确切限制,但我的 430GB 超过了这个限制。

解决方法如下:

  1. 将 grub 安装到 USB HDD,根目录位于 /dev/sdg1(NTFS 分区)。然后,您将在该分区的 /boot/grub/ 中看到 grub.cfg。

  2. 将内核和 inirtd 映像复制到 /dev/sdg1 处的 /boot/ubuntu/。

  3. 更改 grub.cfg 使根目录位于“hd0,msdos1”,并从 /boot/ubuntu/ 加载内核和 initrd。

完毕。

例如,这是我的 grub.cfg 条目:

menuentry 'Ubuntu' {
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    echo    'Loading Linux'
    linux   /boot/iubuntu/vmlinuz-3.5.0-17-generic root=UUID=erg7659b-ad4c-4f84-9ea0-6e9636768669 ro   quiet splash
    echo    'Loading initial ramdisk ...'
    initrd  /boot/iubuntu/initrd.img-3.5.0-17-generic
}

PS:此解决方法并不适用于每个发行版(例如 ArchBang)。

答案2

好的,sda 是你的硬盘,sdb 是 USB 吗?谢谢你的回复。我向很多人建议过这个,那就是刻录一张 SuperGrub 启动盘 CD。你从那里启动,它会为你提供一个操作系统列表供你选择。接下来试试这个。之后,如果你尝试从 Live CD 安装中检查这些分区的内容,会发生什么?它们现在可以读取吗?

答案3

我也遇到过同样的问题,我尝试了这里和其他得到充分回答的帖子中的大多数建议,但都没有成功。

我找到了一种更简单的方法来解决它,只是想与大家分享这个新发现的知识,因为我试图以一种过于复杂的方式解决这个问题。

因此,我的 NTFS 存储分区几乎有 2 Tb,如果我没记错的话,这对于 ext 文件系统来说太大了。有软件可以将分区及其所有数据实际移动到驱动器的后面。因此,您可以拆分它,移动存储的数据,并在驱动器的开头创建一个带有 ext3 或 ext4 或您选择的系统的新分区。这使得 Ubuntu 可以直接启动,没有任何麻烦。

我使用了 Minitool Partition Wizard Home 版本。我可以向你保证,数据被移动了,但并没有被擦除。我不知道 gparted 是否也会移动数据?

祝好,Carl-Magnus

相关内容