我在新硬盘上重新安装了 Windows 7,并在旧硬盘上安装了 Linux,覆盖了之前的 Windows 7。如何进行双启动?
看来我覆盖了原始硬盘中的 Windows 引导扇区,该引导扇区能够重定向到新硬盘(新 Windows 所在的位置)。
我是否需要在具有 NTFS 文件系统的新硬盘上创建某种 Windows 引导扇区,或者我可以将 GRUB2 引导加载程序直接引导到安装了 Windows 的硬盘上?如果是,我该怎么做?
更新:这不是如何使用 GRUB2 的问题。Windows 7 HDD 似乎缺少某些东西。我使用 Windows 安装 DVD 及其命令提示符将 MBR 设置为 NTFS HDD bootsect /nt60 all
,然后从 BIOS 直接进入该 HDD。它抱怨磁盘没有引导加载程序。我认为即使我设置了 GRUB 链,它也不会起作用。
答案1
GRUB 支持一种称为链式加载,它会转到另一个现有的引导加载程序。这里必须采用这种风格,因为 GRUB 不知道如何引导 Windows,而据我所知,Windows 不支持多重引导。
如果您使用的是 GRUB Legacy:
- 打开文件
/boot/grub/menu.lst
添加以下文本:
title Windows 7 root (hdx,y) makeactive chainloader +1
对于 GRUB 2:
- 打开文件
/etc/default/grub
添加以下行:
menuentry "Windows 7" { set root=(hdx,y) chainloader +1 }
无论哪种方式,请将 替换x
为您的硬盘驱动器号,并将 替换y
为 Windows 7 的分区号。要找到它,请打开分区编辑器(如 GParted)。
作为参考,硬盘编号和分区号从 0 开始。例如:
- 第一个硬盘,第二个分区 => (hd0, 1)
- 第二块硬盘,第一个分区 => (hd1, 0)
- 第九块硬盘,第二十二个分区 => (hd8, 21)
- ETC。
答案2
您应该能够使用 BIOS 启动选择菜单来选择要启动的驱动器。这通常可以通过在启动时选择 F2/F10/F12/ESC 等键来访问。这样做的好处是每个操作系统都有自己的 Bootloader。