重新安装 windows 后无法恢复 grub

重新安装 windows 后无法恢复 grub

重新安装 Windows 后,我尝试恢复 grub,因此我挂载了安装了 ubuntu 的分区,但得到以下信息:

$ sudo mount /dev/sda3 /mnt
mount: you must specify the filesystem type

所以我做了

$ sudo mount -t ext4 /dev/sda3 /mnt 
mount: wrong fs type, bad option, bad superblock on /dev/sda3,
   missing codepage or helper program, or other error
   In some cases useful info is found in syslog - try

然后我尝试了坏超级块的解决方案:

$ sudo e2fsck -f /dev/sda3
e2fsck 1.42.9 (4-Feb-2014)
e2fsck: Attempt to read block from filesystem resulted in short read while trying 
to open /dev/sda3
Could this be a zero-length partition?

$ sudo dumpe2fs /dev/sda3|grep -i superblock
dumpe2fs 1.42.9 (4-Feb-2014)
dumpe2fs: Attempt to read block from filesystem resulted in short read while 
trying to open /dev/sda3
Couldn't find valid filesystem superblock.

$ sudo mke2fs -n /dev/sda3
mke2fs 1.42.9 (4-Feb-2014)
mke2fs: inode_size (128) * inodes_count (0) too big for a
filesystem with 0 blocks, specify higher inode_ratio (-i)
or lower inode count (-N).

编辑2:并按照Android Dev建议的(同样使用8193)

$ sudo e2fsck -f -b 32768 -y /dev/sda3
e2fsck 1.42.9 (4-Feb-2014)
e2fsck: Invalid argument while trying to open /dev/sda3

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>

那么这里发生了什么?我的 parted -l 如下所示:

$ sudo parted -l
Model: ATA SAMSUNG HM321HI (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End    Size    Type      File system     Flags
1      1049kB  106MB  105MB   primary   ntfs            boot
2      106MB   231GB  231GB   primary   ntfs
3      231GB   320GB  89.4GB  extended
5      256GB   258GB  1991MB  logical   linux-swap(v1)
6      258GB   320GB  62.4GB  logical   ext4

我注意到(感谢 oldfred)分区 sda4(安装 ubuntu 的位置)丢失了!在 231GB 和 256GB 之间,sda6 是我的 /home。我以前有 2 个 Windows 分区,当我重新安装时,我只在一个分区中安装了它,所以 ubuntu 分区以前可能从 sda4 到 sda7(但不确定)。这与问题有关吗?

我的选择是使用 testdisk 恢复该分区或重新安装 ubuntu,但我想问问是否有人知道其他解决方案。

我读过类似的问题,但没有一个提供与 testdisk 不同的解决方案,而且我不确定这是否是我的问题。

编辑1:

“sudo update-grub”的输出为

/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.

类似于 sudo grub-install /dev/sda3:

$ sudo grub-install /dev/sda3
Installing for i386-pc platform.
grub-install: error: failed to get canonical path of `/cow'.

编辑3(解决方案):

为了防止其他人遇到此问题,我使用 parted rescue 恢复了丢失的分区,正如 oldfred 在评论中建议的那样。他的解决方案可在此链接中找到(帖子 21 和 22)

http://ubuntuforums.org/showthread.php?t=1775331&page=3

为了重新安装 grub,我按照以下步骤操作:

$ sudo mount /dev/sda7 /mnt
$ sudo mount --bind /dev /mnt/dev 
$ sudo mount --bind /dev/pts /mnt/dev/pts
$ sudo mount --bind /proc /mnt/proc 
$ sudo mount --bind /sys /mnt/sys
$ sudo chroot /mnt
# grub-install --recheck /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

其中 sda7 是恢复的分区。运行正常。

来源(西班牙语):http://www.taringa.net/post/linux/18583092/Como-recuperar-Grub-despues-de-instalar-Windows.html

答案1

不需要挂载分区。

sudo grub-install /dev/XXX 编辑由于是双启动,XXX 应该是第一个扇区,例如:/dev/sda

编辑2:您的文件系统可能略有损坏。您可以尝试此命令(免责声明!A:来自这里,B:请备份!):sudo e2fsck -f -b 32768 -y /dev/xxx1

来源:https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows

安装位置的来源:我应该在哪里安装 grub?

答案2

您的问题不是 GRUB 问题;您至少丢失了一个分区,可能是因为微软的磁盘分区软件(在 Windows 重新安装期间使用)存在一些严重的错误,当磁盘包含逻辑分区时可能会导致此问题。

您可以使用TestDisk 程序。不过,您应该谨慎行事;这种类型的恢复操作并非毫无风险,尤其是当非专家尝试恢复分区时。您可能需要阅读有关 MBR 数据结构的 Wikipedia 文章以及 TestDisk 说明,然后再继续。这个网站上也有很多关于 TestDisk 的问题和答案,但快速搜索后发现没有什么真正简洁的内容。

恢复 Ubuntu 分区后,您可以重新安装 GRUB。请注意,分区号可能已更改,因此不要/dev/sda3像初次尝试恢复时那样盲目尝试使用。

相关内容