帮助修复GRUB for linux / winxp双启动场景

这里有一个很长的故事,但基本上我有sda1 aka(hd0,0)上的windows xp和sdb5 aka(hd1,4)上的ubuntu,并且它们启动正常。 东西搞砸了Ubuntu的,我重新安装,并试图修复grub ..在这一切过程中,我相信我不小心运行'setup(hd0,0)'而不是'setup(hd0)'复制grub。

我已经尝试用ms-sys修复MBR,但无济于事。

在这一点上GRUB启动菜单让我启动到Linux,但如果我尝试引导到WINXP,它快速闪烁“GRUB加载stage2 …”,然后把我马上又回到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

谢谢!

我想你需要重做Windows引导安装过程,因为当你setup (hd0,0) ,你可能覆盖了Windows引导pipe理器。 使用Windows XP磁盘启动到故障恢复控制台(在第一个屏幕上按R),然后login到Windows安装。

login后,使用fixmbrfixboot命令恢复Windows的启动过程。 validation您可以启动到Windows,然后正常恢复GRUB。

我以前见过这个。 在运行“setup(hd0,0)”时,你写了部分Windows分区。 基本上,你需要执行三个步骤来解决这个问题。 这些步骤是漫长的,可能需要进一步的研究取决于你的经验/技能水平,但他们是正确解决这个问题的唯一方法。 有一点耐心,你会得到的东西再次工作; 我承诺。

  • 首先,启动Windows光盘,并在第一个提示按“R”并进入故障恢复控制台。 在命令提示符下,运行chkdsk / R
  • chkdsk完成后,重新启动机器并重新启动Windows CD。 这次在第一次提示时按“Enter”键安装Windows。 它应该看到你以前的安装,并问你是否要修复它。 ( 如果你没有看到这个停止!这意味着你的Windows分区是完全borked的,你应该做任何事情之前备份你的东西!
  • 一旦修复过程完成并且Windows正常启动,GRUB将被覆盖。 您将需要启动SuperGRUB磁盘或您最喜爱的发行版的Live CD,并将GRUB安装到MBR。

因为没有sdb0,sdb3是不是hd1,2?

Ubuntu和Debian中的内置grub实用程序可能会让你摆脱这种困境。 我用Knoppix做了这个,出于各种各样的原因,这很好,但是如果你能弄清楚如何获得root权限的话,应该在Ubuntu live cd上运行。 在Knoppix中:

  • 从CD启动
  • 打开terminal并执行susudo su
  • 在/ media下安装你的硬盘; # mount /dev/sda0 /media/some-mountpoint
  • chroot到你想要grub的磁盘; chroot /media/some-mountpoint
  • 运行grub-install

这基本上让你从新安装的设置,与grub安装程序find可引导的图像和sorting。

我已经做了一次或两次 – 谷歌周围,并确保你很舒服,备份好 – 从一些上述关键字开始或看看这个: http : //www.linuxdevcenter.com/pub/a/ linux / 2004/12/02 / knpxhks_1.html的更多背景。

如果你有一个XP启动盘或相当于你可以尝试“fdisk / mbr”