在安装 Windows 7 后恢复 GRUB?

Nil*_*lav 69 grub2

可能重复:
如何修复 GRUB?(安装 Windows 后如何取回 Ubuntu?)

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

kee*_*eer 62

您可以使用 LiveCD 为您的发行版在主引导记录中重新安装 grub,

它是这样的:

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

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

  • 换根

  • 更新 grub

  • 安装 grub

  • 重启

以上步骤来自Grub2的Ubuntu社区文档的底部附近

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

然后启动一个终端(破折号,输入终端,...)...

  • 在运行 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
Run Code Online (Sandbox Code Playgroud)

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

sudo mount /dev/sde3 /mnt
Run Code Online (Sandbox Code Playgroud)

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

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

sudo mount /dev/sd·· /mnt/boot
Run Code Online (Sandbox Code Playgroud)

这里sd··是您安装了单独的boot目录的分区。

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
Run Code Online (Sandbox Code Playgroud)

您应该测试以查看引导目录是否正确安装。输入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
Run Code Online (Sandbox Code Playgroud)

然后:

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
Run Code Online (Sandbox Code Playgroud)

例子:

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
Run Code Online (Sandbox Code Playgroud)

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

me@mycomputer:~$ sudo grub-install /dev/sd·
Run Code Online (Sandbox Code Playgroud)

然后输入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
Run Code Online (Sandbox Code Playgroud)

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

me@mycomputer:~$ sudo umount /mnt/boot
Run Code Online (Sandbox Code Playgroud)

然后输入 sudo umount /mnt

me@mycomputer:~$ sudo umount /mnt
Run Code Online (Sandbox Code Playgroud)

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

me@mycomputer:~$ sudo reboot
Run Code Online (Sandbox Code Playgroud)

希望能安装 grub。

  • 我刚刚为朋友安装了Win7,不得不这样做。感谢 askubuntu,我不必努力记住。是的!阿斯库本图。 (5认同)
  • 效果很好,谢谢!请注意,我并没有在最后费心所有的`umount`ing —— ubuntu 在关机时自动卸载文件系统。所以我只是做了一个`sudo reboot`,一切正常。 (4认同)
  • 您还需要为现代安装挂载 EFI 分区。`sudo mount /dev/<EFI PARTITION> /mnt/boot/efi` (2认同)

Bla*_*ock 43

尝试这个...

恢复 grub:

  1. 打开实时版本。
  2. 打开终端并运行sudo fdisk -l以查看 Linux 的安装位置。
  3. 运行sudo mount /dev/sdaX /mnt其中 x 是您在其中找到的 Linux 单词的数字
  4. 运行sudo grub-install --root-directory=/mnt /dev/sda以安装 grub。
  5. 运行sudo update-grub以更新 grub,如果此命令不起作用,请在重新启动后运行它。
  6. 重启。

  • 你救了我的命... --root-directory 正是我需要的 (2认同)
  • +1 非常简短和快速的解决方案。它工作得很好。 (2认同)

Rin*_*ail 21

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

在此处输入图片说明

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

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

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Run Code Online (Sandbox Code Playgroud)

可以从任何 Ubuntu 会话(普通会话、live-CD 或 live-USB)安装和使用引导修复。PPA 包可用于 Ubuntu 10.04、10.10、11.04、11.10、12.04 和 12.10。 来源


Mys*_*rio 12

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

要解决此问题,您可以在 Windows 中安装一个程序“EasyBCD”

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

  1. 启动程序并从 EasyBCD 工具箱中选择添加新条目

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

  3. 在 type 下选择 GRUB (Legacy) 并单击 ADD ENTRY 图标

  4. 重启提示选择YES

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

祝你好运

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