如何在双启动时修复Grub(win7 / ubuntu 11.10)

我已经安装了Windows 7,然后安装了Ubuntu 11.10,然后在easyBCD上安装了所有内容。

当我在启动菜单上选择Ubuntu时,我最终在grub提示符(如黑屏中的“grub>”)而不是直接加载Ubuntu。

我必须跑:

grub> root (dh0,4) grub> kernel /vmlinuzblahblah root=/dev/sda6 grub> boot 

每次启动Ubuntu(其中vmlinuz是一个长文件名我总是选项卡)。

我怎么能跳过这个过程?

我的“Fix-Grub-routine”如下:

  1. 从Ubuntu LiveCD启动(通常是USB密钥)
  2. 在实时环境中挂载原始安装的/root/boot分区。 让我说我的根安装在/tmp/myRoot/并启动/tmp/myBoot/
  3. 挂载/绑定一些重要的目录
    sudo mount --bind /dev /tmp/myRoot/dev
    sudo mount --bind /proc /tmp/myRoot/proc
    sudo mount --bind /sys /tmp/myRoot/sys
    sudo mount --bind /tmp/myBoot /tmp/myRoot/boot
  4. Chroot进入我的原始安装
    sudo chroot /tmp/myRoot/
  5. 现在我通常会做update-grub但是由于你使用一些奇怪的第三方应用程序弄乱了你的bootsystem,我认为使用grub-install /dev/sda *重新安装grub可能会更好。
  6. 完成后, exit chroot并重新启动系统(没有您的实时媒体)

注意:/dev/sda替换为您希望安装grub的驱动器!

注意2:这些信息大部分都在Ubuntu wikipage上,名为RecoveringUbuntuAfterInstallingWindows 。 在这篇文章中找到要链接的页面时,我注意到页面发生了很大的变化。 chrooting和stuff不再被描述,而是在一些live cds上提供了一个boot-repair实用程序 。 我没有经验,但我认为值得一试。

假设Windows 7引导环境控制引导:(Windows 7 MBR和Windows PBR + bootmgr + \ Boot文件夹,BCD存储在活动分区上)

  1. 启动Ubuntu LiveCD并将GRUB2重新安装到分区引导记录
  2. 将文件/boot/grub/boot.img从Ubuntu复制到Windows 7“\”根文件夹。
  3. 重新启动到Windows 7.下载并安装Visual BCD编辑器 。
  4. 创建BootSector加载器。 (右键单击选择“Create BootSector Loader”)
  5. 修改创建的加载程序的驱动器和路径以指向“boot.img”的驱动器和路径

就这样。