Grub2 检测到两个 Windows 7(加载程序)条目

jwa*_*112 6 grub2 dual-boot windows-7 bootloader 12.04

这是我问 Ubuntu 社区的第一个问题。

我对 Ubuntu 相当陌生,但我了解基础知识并知道如何导航终端。我也知道如何在寻求帮助之前搜索现有的解决方案。我在互联网上到处搜索,了解了 Grub2 的大部分工作原理。但没有什么能帮助我解决我的问题。

我的问题是:我有一台有三个硬盘驱动器的计算机。它以前有 Windows XP,但我升级到了 Windows 7。我还安装了 Ubuntu 12.04 LTS(Precise Pangolin)。

在我安装 Windows 7 的过程中,出现故障,我不得不重新启动安装。之后,我安装了 Ubuntu。在删除 XP 操作系统的所有痕迹(Ubuntu 自动检测到它,但不是 Windows 7)之后遇到了一些麻烦,我让这两个操作系统完美运行。或者,几乎。

启动时,Grub2 习惯显示 Ubuntu、Ubuntu Recovery Mode、Other Versions of Linux、memtest,然后是Windows 7 (loader) on /dev/sda1Windows 7 (loader) on /dev/sdb1

我最终删除了恢复模式、其他版本和 Memtest。现在,当我运行时:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

我得到这个打印输出:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-26-generic
Found initrd image: /boot/initrd.img-3.2.0-26-generic
Found Windows 7 (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

我想删除“/dev/sda1 上的 Windows 7(加载程序)”,因为它是一个不应该存在的损坏条目,并且必须在我第一次尝试 Windows 7 时安装。

我在/etc/grub.d文件夹中找不到 Windows 7 条目而且我不知道去哪里找。

这是我的硬盘驱动器的布局:

/dev/sda1/ (1.82 TiB), NTFS ("Media")

/dev/sdb1/ (100 Mib), NTFS ("System Reserved")
/dev/sdb2/ (149 GiB), NTFS ("Windows 7")
/dev/sdb3/ (149 GiB), Extended (" ")
    /dev/sdb4/ (145 GiB), ext4 (" ")
    /dev/sdb5/ (4 GiB), linux-swap (" ")

/dev/sdc1/ (488.28 GiB), NTFS ("Downloads")
/dev/sdc2/ (488.28 GiB), NTFS ("AltMedia") 
/dev/sdc3/ (886.45 GiB), NTFS ("Personal")
unallocated (2.09 MiB), unallocated
Run Code Online (Sandbox Code Playgroud)

我认为已经发生的事情:首先安装了 Windows 7,而且安装的很糟糕。我又安装了。首先,有 Windows XP 来指导引导加载程序的去向,所以它被放在了/dev/sdb1/. 但是,第二次没有这样的指南存在,所以机器将另一个引导加载程序放在/dev/sda1/. 顺便说一下,sda1 是 2TB 驱动器上唯一的分区。根据 ,似乎不存在任何引导记录分区gedit。我不确定 Grub2 从哪里获取这些信息。但是,就是这样。

有人可以帮我做些什么吗?或者,我应该添加更多信息吗?

Anw*_*war 8

如果 sda 是外部驱动器的快速解决方案

不知道你的/dev/sda硬盘是内置的还是外置的。如果是外部驱动器,请在运行update-grub2命令之前拔下外部驱动器。这应该很快就会有帮助。

解决方案:

安装/dev/sda1驱动器。(我假设你可以很容易地做到这一点)。然后在该驱动器中查找名为Boot的文件夹和名为bootmgr. 删除文件夹和文件。然后update-grub2再次运行命令。

您可能想再次安装 grub2。当我看到您的 Ubuntu 安装位于 时/dev/sdb,命令将是

sudo grub-install /dev/sdb
sudo update-grub 
Run Code Online (Sandbox Code Playgroud)

问题的原因是什么:

Grub2 会查找 Windows 启动文件以检测 Windows 条目。尽管您删除了 Windows 7,但不会删除 Windows 7 启动文件(即“Boot”文件夹和“bootmgr”文件)。由于 Windows 7 启动文件在那里,grub2 只是假设,也有 Windows 7 安装。因此双重入口。