在双引导中安装 GRUB

在双引导中安装 GRUB

我刚刚在新硬盘上安装了操作系统:Windows 7 和 Debian 7。像往常一样,我首先安装了 Windows,然后安装了 Debian。

第一次尝试时,GRUB 似乎没有正确安装,因为我的计算机只是启动到 Windows。我在 debian.org 上找到了这个,所以我遵循了它的建议:

当安装过程中有多个可用磁盘时(例如一个硬盘和一个 USB 记忆棒,从 USB 记忆棒引导安装程序时通常会出现这种情况),grub-install 可能会遇到问题:多次报告,GRUB 引导加载程序安装在 USB 记忆棒上,而不是包含新安装系统的硬盘上。

为了避免遇到这种情况,请确保在安装过程中出现以下问题时回答“否”:“将 GRUB 引导加载程序安装到主引导记录吗?”;应该可以在下一步中指定正确的设备:“用于引导加载程序安装的设备”。

执行此操作后,GRUB 将在启动时显示,但是当我选择 Windows 时,屏幕会变黑并立即弹回 GRUB 菜单。我将 GRUB 安装到第一个分区,因为那是带有引导标志的分区。

我的分区如下:

  1. 100MB 系统保留
  2. 195GB Windows
  3. 2GB交换
  4. 40GB Linux

后来我设法用 Windows CD 修复了 MBR,但是当然,现在 Debian 不可用了。

我应该在其他地方安装 GRUB,还是这是一个不同的问题?

答案1

假设您使用MBR而不是进行分区GPT

首先,您可以备份并最终恢复您的 mbr(假设 hda 是目标磁盘):

 dd if=/dev/hda of=/path/mbr-backup bs=512 count=1 # backup
 dd if=/path/mbr-backup of=/dev/hda bs=512 count=1 # restore

hda1如果您将 grub 安装在分区而不是磁盘中,显然会是这样。

笔记如果它在磁盘(hda)中,请不要在备份和恢复之间更改分区表。

其次,如果您的 Debian 当前已安装,只需启动 Live CD 并将 Debian 根目录挂载到某处:

mkdir /tmp/x
mount /dev/hda1 /tmp/x # Debian root partition
# mount some needed filesystem
mount proc /tmp/x/proc -t proc
mount sysfs /tmp/x/sys -t sysfs
mount --bind /dev /tmp/x/dev

chroot 进入分区并重新安装 grub

chroot /tmp/x
grub-install /dev/hda # or hda1 for the partition

还不知道您是否还需要update-grub(应该验证)

grubos-prober应该找到您的 Windows,如果它无法启动,则链加载程序中存在其他问题。

更新

如果您的磁盘已分区,请GPT参阅此常见问题解答

Windows 和 GPT 常见问题解答

特别是这个:

Windows 7、Windows Vista 和 Windows Server 2008 能否从 GPT 磁盘读取、写入和启动?

是的,所有版本都可以使用 GPT 分区磁盘来存储数据。仅基于 UEFI 的系统上的 64 位版本支持引导

如果你有BIOS使用MBR分区,如果你有UEFI然后使用GPT.

答案2

我总是建议在单独的分区上安装引导加载程序:“/boot”稍后您可以执行不同的操作,而不必担心损坏或损坏主操作系统(Windows)。

在你的情况下,我认为最好使用新分区+“/boot”安装的引导加载程序重新安装 Debian。另请注意,也许您有 GPT,但没有 MBR。这可能是一个原因。

相关内容