当前位置: 首页>>技术问答>>正文


安装Windows 7后恢复GRUB?

,

问题描述

Possible Duplicate:
我该如何修复grub? (如何在安装Windows之后重新启动Ubuntu?)

我崩溃后安装了Windows 7,现在我无法启动Ubuntu。 Ubuntu分区仍在那里。我尝试使用Boot-Repair,但它没有用!

最佳解决办法

您可以使用LiveCD为您的发行版本在主引导记录中使用re-install grub,

它是这样的:

  • 从LiveCD启动⋯请尝试使用与安装版本具有相同版本的Grub2的LiveCD

  • 将已安装的Ubuntu的根目录挂载在/mnt

  • 改变根

  • 更新grub

  • 安装grub

  • 重启

以上步骤来自near the bottom of the Ubuntu Community Documentation of Grub2

从liveCD启动后(在打开的屏幕上选择”Try Ubuntu”)

然后启动一个终端(短划线,type-in终端,…)…

  • 在运行LiveCD时打开此网页可能更容易。 Firefox应该允许你这样做。

输入终端sudo fdisk -l – 如果要求输入密码。这是一个小写的L.找到已安装的Ubuntu分区,(从我的其他磁盘剪断 – 这里):

me@mycomputer:~$sudo fdisk -l
...
Disk /dev/sde: 300.1 GB, 300089646592 bytes
255 heads, 63 sectors/track, 36483 cylinders, total 586112591 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: 0xc3f5ebeb

Device    Boot      Start         End      Blocks   Id  System
/dev/sde2       138464296   586110975   223823340    5  Extended
/dev/sde3   *        2048   138463231    69230592   83  Linux
/dev/sde5       138464298   313460279    87497991    7  HPFS/NTFS/exFAT
/dev/sde6       313460736   317650943     2095104   82  Linux swap / Solaris
/dev/sde7       317652992   581922815   132134912   83  Linux
/dev/sde8       581924864   586110975     2093056   82  Linux swap / Solaris

Partition table entries are not in disk order

找到你的Linux安装(Id = 83,System = Linux0然后输入

sudo mount /dev/sde3 /mnt

但使用你的分区而不是/dev/sde3(我的根分区是sde3,sde7是我的主分区)。

这假设您没有单独的/boot分区。如果这样做,您还需要通过键入来安装它

sudo mount /dev/sd·· /mnt/boot

其中sd··是安装单独引导目录的分区。

ls /mnt – 只是检查我是否正确:

me@mycomputer:~$ sudo mount /dev/sde3 /mnt
me@mycomputer:~$ ls /mnt
bin   cdrom  etc   initrd.img      lib         media  opt   root  sbin     srv  tmp  var      vmlinuz.old
boot  dev    home  initrd.img.old  lost+found  mnt    proc  run   selinux  sys  usr  vmlinuz

您应该测试以查看是否正确安装了引导目录。键入ls /mnt/boot,如果为空,则不会安装引导目录。它应该看起来像这样:

me@mycomputer:~$ ls /boot
abi-2.6.35-30-generic     initrd.img-2.6.35-30-generic  System.map-2.6.35-31-generic
abi-2.6.35-31-generic     initrd.img-2.6.35-31-generic  vmcoreinfo-2.6.35-30-generic
config-2.6.35-30-generic  memtest86+.bin                vmcoreinfo-2.6.35-31-generic
config-2.6.35-31-generic  memtest86+_multiboot.bin      vmlinuz-2.6.35-30-generic
grub                      System.map-2.6.35-30-generic  vmlinuz-2.6.35-31-generic

然后:

for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt #change the root
sudo update-grub # now update grub

例:

me@mycomputer:~$ sudo for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
me@mycomputer:~$ sudo chroot /mnt
me@mycomputer:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.0.0-13-generic
Found initrd image: /boot/initrd.img-3.0.0-13-generic
Found linux image: /boot/vmlinuz-3.0.0-12-generic
Found initrd image: /boot/initrd.img-3.0.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sdc1
done

现在到MBR的re-install grub。您需要知道系统引导的磁盘,并在已完成的fdisk -l列表中找到它。然后键入sudo grub-install /dev/sd,将sd·替换为您将从其启动的磁盘。

me@mycomputer:~$ sudo grub-install /dev/sd·

然后键入Crtl-D以退出chroot。

然后输入sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done – 作为一行

me@mycomputer:~$ sudo for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done

如果您安装了单独的/boot分区,请键入sudo umount /mnt/boot

me@mycomputer:~$ sudo umount /mnt/boot

然后输入sudo umount /mnt

me@mycomputer:~$ sudo umount /mnt

然后输入sudo reboot重新启动系统(记得删除LiveCD)。

me@mycomputer:~$ sudo reboot

希望grub将被安装。

次佳解决办法

试试这个…

要恢复grub:

  1. 打开实时版本。

  2. 打开终端并运行sudo fdisk -l以查看Linux的安装位置。

  3. 运行sudo mount /dev/sdaX /mnt,其中x是您找到Linux word的数字

  4. 运行sudo grub-install --root-directory=/mnt /dev/sda以安装grub。

  5. 运行sudo update-grub以更新grub,如果此命令不起作用,请在重新启动后运行它。

  6. 重启。

第三种解决办法

Boot-Repair是一个简单的工具,用于修复Ubuntu中可能遇到的频繁启动问题,例如在安装Windows或其他Linux发行版后无法启动Ubuntu,或者在安装Ubuntu后无法启动Windows,或者不再显示GRUB时,一些升级破坏GRUB等

grub2,ubuntu

备注:这也可以从live-CD或live-USB执行。

通过软件中心将“ppa:yannubuntu /boot-repair”添加到您的软件源,或者对于speeds-sake,使用新的终端会话添加它:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

可以安装Boot-Repair&用于任何Ubuntu会话(正常会话,或live-CD,或live-USB)。 PPA包适用于Ubuntu 10.04,10.10,11.04,11.10,12.04和12.10。 source

第四种办法

安装Windows 7后,Windows引导加载程序已覆盖MBR。

要解决此问题,您可以在Windows中安装程序’EasyBCD’

安装EasyBCD后,请按照以下步骤恢复GRUB:

  1. 启动程序并从EasyBCD Toolbox中选择ADD NEW ENTRY

  2. 从操作系统列中选择’Linux/BSD’

  3. 在类型下选择GRUB(Legacy),然后单击ADD ENTRY图标

  4. 选择“是”以重新启动提示

  5. 重启后将显示GRUB,它将检测Ubuntu分区,以便您能够启动到Ubuntu

祝好运

下载链接:http://neosmart.net/download.php?id=1

第五种办法

Boot-Repair的工作原理:

  • 我的电脑上安装了Windows XP和Ubuntu。

  • 我安装了Windows 7,导致新的启动加载器没有Ubuntu。

  • 我在启动光盘上安装了Boot-Repair,并且随着Windows 7和Windows XP更新了GRUB。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1266.html,未经允许,请勿转载。