帮助修复 Linux/WinXP 双启动场景中的 GRUB

帮助修复 Linux/WinXP 双启动场景中的 GRUB

说来话长,但基本上我在 sda1 又名 (hd0,0) 上安装了 Windows XP,在 sdb5 又名 (hd1,4) 上安装了 ubuntu,它们启动正常。ubuntu 出了点问题,我重新安装了,并试图修复 grub。。在此过程中,我认为我无意中运行了“setup (hd0,0)”而不是“setup(hd0)”来复制 grub。

我尝试使用 ms-sys 修复 MBR,但没有成功。

此时,GRUB 启动菜单允许我启动到 Linux,但如果我尝试启动到 WinXP,它会快速闪烁“GRUB 正在加载第 2 阶段...”,然后再次将我带回到 GRUB 启动菜单。

我能尝试什么来修复这个问题吗?或者我被搞砸了?

winxp grub菜单项为:

title winxp
rootnoverify (hd0,0)
savedefault
chainloader +1

fdisk -l 的输出是:

/dev/sda1 * 1 8338 7879403 c W95 FAT32 (LBA)

/dev/sdb1 * 1 2224 17864248+ 83 Linux
/dev/sdb2 2551 3924 11036655 b W95 FAT32
/dev/sdb3 2225 2550 2618595 5 Extended
/dev/sdb5 2225 2528 2441848+ 83 Linux
/dev/sdb6 2529 2550 176683+ 82 Linux swap / Solaris

谢谢!

答案1

我认为您需要重新执行 Windows 启动安装过程,因为执行此操作时setup (hd0,0),您可能覆盖了 Windows 启动管理器。使用 Windows XP 磁盘,启动到恢复控制台(在第一个屏幕上按 R),然后登录到 Windows 安装。

登录后,使用fixmbrfixboot命令恢复 Windows 的启动过程。验证是否可以启动 Windows,然后正常恢复 GRUB。

答案2

我以前见过这种情况。运行“setup (hd0,0)”后,您覆盖了 Windows 分区的一部分。从根本上讲,您需要执行三个步骤来修复此问题。这些步骤很长,可能需要根据您的经验/技能水平进行进一步研究,但它们是正确修复此问题的唯一方法。只要有一点耐心,您就会让一切恢复正常;我保证。

  • 首先,启动 Windows CD,在第一个提示符下按“R”并进入恢复控制台。进入命令提示符后,运行 chkdsk /R
  • chkdsk 完成后,重新启动计算机并再次启动 Windows CD。这一次,在第一个提示符下按“Enter”安装 Windows。它应该会看到您之前的安装并询问您是否要修复它。(如果你没有看到这个,请停止!这意味着你的 windows 分区已经完全崩溃了,在做其他任何事情之前,你应该先备份你能备份的内容!
  • 修复过程完成并且 Windows 正常启动后,GRUB 将被覆盖。您需要启动 SuperGRUB 磁盘或您最喜欢的发行版的 Live CD,并将 GRUB 安装到 MBR。

答案3

由于没有 sdb0,sdb3 难道不是 hd1,2 吗?

答案4

如果你有 XP 启动盘或者同等盘,你可以尝试“fdisk /mbr”

相关内容