无法使用 Grub 启动 Windows | Debian 安装

无法使用 Grub 启动 Windows | Debian 安装

我已在第二个硬盘上安装了 Windows 7,并且刚刚在第一个硬盘上安装了 Debian。遗憾的是,引导加载程序 (grub2) 未选择我现有的 Windows 安装,我不知道原因。

 # os-prober

不返回任何内容(eek)。

这是我的磁盘布局:

# fdisk -l

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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: 0x000a3b4a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   389595713   194796833    7  HPFS/NTFS/exFAT

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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: 0x00058a73

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   959997951   479997952   83  Linux
/dev/sda2       959999998   976771071     8385537    5  Extended
/dev/sda5       960000000   976771071     8385536   82  Linux swap / Solaris

我尝试通过编辑文件强制 grub2 选择我的 Windows 安装/etc/grub.d/40_custom

# cat /etc/grub.d/40_custom 
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 7" {
insmod ntfs
set root='(hd1,0)'
search --no-floppy --fs-uuid --set BC9839B098396A52
chainloader +1
}

然后运行update-grub,但当我尝试在 grub 菜单中选择 Windows 7 条目时,它只显示“BOOTMGR 丢失”。有人有什么建议吗?我真的负担不起重新安装 Windows 7 的费用,所以这真的是最后的手段 :-(

答案1

看来您的 Windows Bootloader 已损坏,您应该尝试使用恢复磁盘修复它。

由于您有两个硬盘,因此您可以轻松防止任何覆盖:只需在 Windows 恢复磁盘上启动之前断开 Linux HDD 即可。这样,Windows 就不会以任何方式干扰 Debian 或 GRUB。

如果你很幸运,Windows Recovery 就足够了。但是由于你缺少一个分区,它可能无法工作。如果不是,你可能不得不重新安装你的 Windows(无论如何它都无法启动)。如果是这种情况,请在拔下 Linux HDD 的情况下执行 Windows 安装,再次避免不必要的干扰。

之后,将其重新插入,启动 Debian 并运行update-grub。如果 Windows 恢复成功,os-prober应该会找到它。

相关内容