我刚刚在新硬盘上安装了操作系统:Windows 7 和 Debian 7。像往常一样,我首先安装了 Windows,然后安装了 Debian。
第一次尝试时,GRUB 似乎没有正确安装,因为我的计算机只是启动到 Windows。我在 debian.org 上找到了这个,所以我遵循了它的建议:
当安装过程中有多个可用磁盘时(例如一个硬盘和一个 USB 记忆棒,从 USB 记忆棒引导安装程序时通常会出现这种情况),grub-install 可能会遇到问题:多次报告,GRUB 引导加载程序安装在 USB 记忆棒上,而不是包含新安装系统的硬盘上。
为了避免遇到这种情况,请确保在安装过程中出现以下问题时回答“否”:“将 GRUB 引导加载程序安装到主引导记录吗?”;应该可以在下一步中指定正确的设备:“用于引导加载程序安装的设备”。
执行此操作后,GRUB 将在启动时显示,但是当我选择 Windows 时,屏幕会变黑并立即弹回 GRUB 菜单。我将 GRUB 安装到第一个分区,因为那是带有引导标志的分区。
我的分区如下:
- 100MB 系统保留
- 195GB Windows
- 2GB交换
- 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 7、Windows Vista 和 Windows Server 2008 能否从 GPT 磁盘读取、写入和启动?
是的,所有版本都可以使用 GPT 分区磁盘来存储数据。仅基于 UEFI 的系统上的 64 位版本支持引导。
如果你有BIOS
使用MBR
分区,如果你有UEFI
然后使用GPT
.
答案2
我总是建议在单独的分区上安装引导加载程序:“/boot”稍后您可以执行不同的操作,而不必担心损坏或损坏主操作系统(Windows)。
在你的情况下,我认为最好使用新分区+“/boot”安装的引导加载程序重新安装 Debian。另请注意,也许您有 GPT,但没有 MBR。这可能是一个原因。