Grub救援失败,“Boot Repair”错误“未知文件系统”

系统崩溃后(由硬重启导致),我的Ubuntu linux无法启动,现在显示:

error: uknown filesystem grub rescue> 

我试过的解决方案:

 grub rescue>ls (hd0) (hd0,msdos5) (hd0) (hd0,msdos1) grub rescue>ls (hd0,msdos5) error: uknown filesystem grub rescue>ls (hd0,msdos1) error: uknown filesystem 

所以,我无法列出/找到我的Linux文件系统,,,

我决定尝试安装在Ubuntu live USB上的Boot Repair,但是没有推荐的修复按钮,也没有高级选项 。 只有一个按钮是Create a BootInfo summary

我在最新的Ubuntu的实时版本和Linux Secure Remix上尝试过BootRepair,它们都是在USB上烘焙的LIVE版本 – 结果相同。

此外,Linux Secure Remix上的OS-Uninstaller表示没有找到/安装的操作系统。

我在不同的PC上尝试过相同的Linux Secure Remix,至少推荐修复 。 所以我认为问题出在我的硬盘或MBR上。

经过一些回应,我试过了

 root@ubuntu:/home/ubuntu# sudo fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xebd671ce Device Boot Start End Blocks Id System /dev/sda1 * 2048 302815231 151406592 83 Linux /dev/sda2 302817278 312580095 4881409 5 Extended /dev/sda5 302817280 312580095 4881408 82 Linux swap / Solaris Disk /dev/sdb: 8021 MB, 8021606400 bytes 110 heads, 46 sectors/track, 3096 cylinders, total 15667200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x04030201 Device Boot Start End Blocks Id System /dev/sdb1 * 10392 15667199 7828404 b W95 FAT32 

 root@ubuntu:/home/ubuntu# sudo mount /dev/sda1 /mnt mount: you must specify the filesystem type 

 root@ubuntu:/home/ubuntu# blkid /dev/loop0: TYPE="squashfs" /dev/sda5: UUID="ce99d1c7-16fd-4b60-b0af-af6a14b8bdbe" TYPE="swap" /dev/sdb1: LABEL="DANAIL" UUID="4ED6-708D" TYPE="vfat" 

我尝试了不同的类型:ext3,ext4,vfat和auto,但结果对所有类型都相同:

 root@ubuntu:/home/ubuntu# sudo mount -t ext4 /dev/sda1 /mnt mount: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so 

 root@ubuntu:/home/ubuntu# dmesg | tail [ 2424.052221] SQUASHFS error: Can't find a SQUASHFS superblock on sda1 [ 2620.531816] EXT4-fs (sda1): VFS: Can't find ext4 filesystem [ 2626.204025] EXT3-fs (sda1): error: can't find ext3 filesystem on dev sda1. [ 2626.208650] EXT4-fs (sda1): VFS: Can't find ext4 filesystem [ 2626.208938] FAT-fs (sda1): bogus number of reserved sectors [ 2626.208943] FAT-fs (sda1): Can't find a valid FAT filesystem [ 2626.209377] SQUASHFS error: Can't find a SQUASHFS superblock on sda1 [ 2635.692959] EXT2-fs (sda1): error: can't find an ext2 filesystem on dev sda1. [ 2644.614887] FAT-fs (sda1): bogus number of reserved sectors [ 2644.614894] FAT-fs (sda1): Can't find a valid FAT filesystem 

 root@ubuntu:/home/ubuntu# mount /cow on / type overlayfs (rw) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type devtmpfs (rw,mode=0755) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) /dev/sdb1 on /cdrom type vfat (ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) /dev/loop0 on /rofs type squashfs (ro,noatime) none on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) tmpfs on /tmp type tmpfs (rw,nosuid,nodev) none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) none on /run/shm type tmpfs (rw,nosuid,nodev) none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755) gvfsd-fuse on /run/user/ubuntu/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=ubuntu) 

最后我发现解决方案是在破坏的/dev/sda1系统上运行fsck 。 问题出在文件系统中,而不是grub中。 这就是grub看不到文件系统的原因。 谢谢!

这是一种可能的解决方案,但不应该使用它,以免您的根分区进一步损坏。 运行命令: fsck -t ext4 /dev/sda1此程序尝试搜索和修复损坏的文件系统上的错误。 将ext4替换为实际的文件系统,您必须知道文件系统,否则分区将更加损坏。 有关更多信息,请参阅此主题 。


尽管这个问题有答案,但还有另一种方法可以解决对我有用的问题。 这个痛苦的video解释了这些步骤: http : //www.youtube.com/watch?v = ZcbTgMKpVHQ 。 简而言之,它将完全重新安装Grub2而不是修复它。

因为这段video非常难以观看,所以我将列出以下步骤(无论观看video多么痛苦,我都应该这样做)

  1. 启动Ubuntu的实时会话。 video使用了现场CD,因为我使用了live-usb。 我确保live-usb具有与我的硬盘相同的Ubuntu版本。
  2. 查找挂载根分区的位置。 在video中,用户使用nautilus浏览已安装的每个驱动器。 它装有一长串数字和字符。 如果是这种情况,请按照以下步骤重新安装分区。 否则,进入第5步。
  3. 使用ctrl + alt + T打开终端并使用mount命令查找分区的名称。
  4. 安装分区。 在媒体文件夹中创建一个新文件夹。 sudo mkdir /media/ubuntu 。 然后将分区简单地挂载到该文件夹​​。 sudo mount /dev/sdxx /media/ubuntu其中sdxx xx在步骤3中确定。
  5. 将以下目录从live cd / usb的根目录绑定到您的Ubuntu版本的根目录。 目录是dev procsys 。 使用以下命令执行此操作:

     sudo mount --bind /dev /media/ubuntu/dev sudo mount --bind /sys /media/ubuntu/sys sudo mount --bind /proc /media/ubuntu/proc 
  6. 将根目录更改为ubuntu分区上的目录。 sudo chroot /media/ubuntu/

  7. 完成上述操作后,再次安装Grub2将把它安装到你的ubuntu发行版的根目录而不是live cd / usb的根目录。 所以继续运行sudo grub-install /dev/sdx

这就是如何使用live-cd / usb修复grub。 此方法由youtube user crazytechzone开发。

你的parted -l输出清楚地表明你的启动分区是/ dev / sda1。 一些不错的GUI应用程序可能无法识别这个来修复grub。

最简单的解决方案是通过命令行重新安装grub。 按照此页面上给出的命令,您应该立即启动并运行。 请记住在页面使用/dev/sdax任何地方使用/dev/sda1