Windows 8 安装后 Grub 未加载

Windows 8 安装后 Grub 未加载

可能重复:
我该如何修复 grub?(安装 Windows 后如何恢复 Ubuntu?)

我的系统配置为双启动 Ubuntu 12.04.1 LTS 和 Windows 7。今天我拿到了 Windows 8 的 MSDN 版本,并在 Windows 7 上安装了它。现在计算机直接启动到 Windows 8,而无需加载 GRUB 屏幕。

因此我按照以下建议的步骤进行操作:https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows. 运行此命令:

    ls -l /dev/disk/by-label/

输出结果如下:

    total 0
    lrwxrwxrwx 1 root root 10 Sep 11 07:51 Entertainment -> ../../sda2
    lrwxrwxrwx 1 root root 10 Sep 11 02:45 PENDRIVE -> ../../sdb1

命令还fdisk -l给出此输出:

    Disk /dev/sda: 320.1 GB, 320072933376 bytes
    255 heads, 63 sectors/track, 38913 cylinders, total 625142448 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: 0x1246aa23

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048   319582199   159790076    7  HPFS/NTFS/exFAT
    /dev/sda2       319582208   602906623   141662208    7  HPFS/NTFS/exFAT
    /dev/sda3       602908672   625135615    11113472   83  Linux

    Disk /dev/sdb: 1939 MB, 1939865600 bytes
    64 heads, 63 sectors/track, 939 cylinders, total 3788800 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: 0xc3072e18

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *        2248     3788799     1893276    c  W95 FAT32 (LBA)

因此,我假设必须运行此命令:sudo grub-install /dev/sda3以使 GRUB 启动并运行。但我收到此错误:

    /usr/sbin/grub-probe: error: cannot find a device for /boot/grub (is /dev mounted?).

有人能给我指点迷津吗?当前的 Ubuntu 安装太符合我的需求了,以至于不能因为启动管理器问题而丢失它!任何帮助都非常感谢!

答案1

GRUB 需要位于设备上所有分区的前面,因此您应该运行

sudo grub-install /dev/sda

而使用/dev/sda3只会将其安装到第三个分区。请参阅指南安装 Windows 后恢复 Ubuntu你提到:

从这里,仅查找驱动器名称,忽略分区号也就是说,对于标有“root”、“data2”、“fat”、“home”和“swap”的分区,它们仍然只是 sda。这是因为 GRUB 安装在驱动器的 MBR 中,而不是安装在分区上。

答案2

你可能得跑

sudo grub-install /dev/sda

它会在任意分区上找到 /boot/ 文件夹。

如果这不起作用,您可以尝试以下操作(假设您没有单独的启动分区,因为它应该从您的命令中显示):

启动 Live CD 并打开终端。

sudo mount /dev/sda3 /mnt

这会将你的 ubuntu 安装到 /mnt

然后运行此命令

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

这将告诉 grub 它应该将 grub 安装到 sda,并且它不应该寻找 /boot/,因为它位于 sda3 上。

相关内容