![Windows 8 安装后 Grub 未加载](https://linux22.com/image/823953/Windows%208%20%E5%AE%89%E8%A3%85%E5%90%8E%20Grub%20%E6%9C%AA%E5%8A%A0%E8%BD%BD.png)
我的系统配置为双启动 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 上。