GRUB 安装在 /dev/sda1 上,映像恢复后显示“没有这样的分区”

GRUB 安装在 /dev/sda1 上,映像恢复后显示“没有这样的分区”

我的分区设置是:

[Win7] [Ubuntu] [extended [logical partition]](按此顺序)

MBR 中安装的引导加载程序是非标准的,它允许您在另一个分区上链式加载辅助引导加载程序。我使用此选项通过安装在 /dev/sda1 上的 GRUB 引导 Ubuntu。此设置对我来说一直有效,但在升级硬盘后,我似乎无法将 GRUB 恢复到工作状态。我通过将最近的备份映像恢复到驱动器来进行升级(这在过去对我有效)

但这次,我只得到:

Error: no such partition. Grub rescue>

我可以在救援提示符下使用此命令启动 Ubuntu 安装:

set root=(hd0,1)
set prefix=(hd0,1)/boot/grub
insmod normal
normal

但每次都输入这些内容是很愚蠢的。

这是我的磁盘布局fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1       122896725   146336084    11719680   83  Linux
/dev/sda2       178053120   976773119   399360000    5  Extended
/dev/sda3   *         929   122881184    61440128    7  HPFS/NTFS/exFAT
/dev/sda5       178055168   976773119   399358976    7  HPFS/NTFS/exFAT

Partition table entries are not in disk order

我已经尝试过grub-setup、、grub-installboot-repair但是没有用,因为它只提供安装到 MBR 的选项),但是都没有用。

我有一个安装了 GRUB 的 USB 拇指驱动器(当我使用它在笔记本电脑 /dev/sda1 上启动 Ubuntu 安装时它可以工作),并且它的 grub.cfg 文件与 /dev/sda1 上的文件相同。

如果我不得不猜测,列出的分区顺序与fdisk -l它们在磁盘上的排列顺序不匹配这一事实是否会对此产生影响?

当我set在 grub 提示符下输入时,我得到

prefix=(hd0,msdos2)/boot/grub
root=hd0,msdos2

答案1

使用命令解决问题:

sudo grub-install /dev/sda1 --force

--force是这个谜题中缺失的关键一块。

相关内容