我该如何修复 grub?(安装 Windows 后如何恢复 Ubuntu?)

我该如何修复 grub?(安装 Windows 后如何恢复 Ubuntu?)

我安装了 Windows 7,它占用了 Ubuntu 的启动文件。现在启动电脑时,它会直接进入 Windows,而不给我启动 Ubuntu 的选项。

我怎样才能恢复 Ubuntu?

答案1

当您安装 Windows 时,Windows 会假定它是机器上唯一的操作系统 (OS),或者至少它不考虑 Linux。因此,它会用自己的引导加载程序替换 GRUB。您需要做的是用 GRUB 替换 Windows 引导加载程序。我见过各种通过乱搞 GRUB 命令或类似命令来替换 GRUB 的说明,但对我来说,最简单的方法是直接chroot进入您的安装并运行update-grub. 。chroot这很棒,因为它允许您在实际安装上工作,而不是尝试在这里和那里重定向内容。它真的很干净。

就是这样:

  1. 在“尝试 Ubuntu”模式下从实时 CD 或实时 USB 启动。

  2. 确定主分区的分区号。sudo fdisk -lsudo blkidGParted(默认情况下应该已在实时会话中安装)可以为您提供帮助。我在此假设它是/dev/sda2,但确保您的系统使用了正确的分区号!

    如果您的主分区位于 LVM 中,设备将位于/dev/mapper/,最有可能的是,/dev/mapper/{volume}--{os}-root其中{volume}是 LVM 卷名称,{os}是操作系统。执行ls /dev/mapper以获取确切的名称。

  3. 挂载你的分区:

     sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    如果您有单独的/boot/var/usr分区,重复步骤 2 和 3 将这些分区分别挂载到/mnt/boot/mnt/var/mnt/usr。例如,

     sudo mount /dev/sdXW /mnt/boot
     sudo mount /dev/sdXY /mnt/var
     sudo mount /dev/sdXZ /mnt/usr
    

    sdXW将、sdXY和替换sdXZ为相应的分区号。

  4. 绑定安装一些其他必要的东西:

     for i in /sys /proc /run /dev; do sudo mount --rbind "$i" "/mnt$i"; done
    
  5. 如果 Ubuntu 安装在 EFI 模式下(如果你不确定,请参阅此答案),使用sudo fdisk -l | grep -i efi或 GParted 找到您的 EFI 分区。它将有一个标签EFI。挂载此分区,将其替换sdXY为您系统的实际分区号:

     sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot进入你的 Ubuntu 安装:

     sudo chroot /mnt
    
  7. 此时,您处于安装状态,而不是实时会话,并以 root 身份运行。更新 grub:

     update-grub
    

    如果出现错误或者执行到步骤 7 无法解决问题,请转至步骤 8。(否则,这是可选的。)

  8. 根据您的情况,您可能必须重新安装 grub:

     grub-install /dev/sda
     update-grub # In order to find and add windows to grub menu.
    
  9. 如果 Ubuntu 安装在 EFI 模式下,并且 EFI 分区 UUID 已更改,则可能需要在 中更新它/etc/fstab。比较它:

     blkid | grep -i efi
     grep -i efi /etc/fstab
    

    如果当前 EFI 分区 UUID(来自blkid)与中的不同/etc/fstab,则/etc/fstab使用当前 UUID 进行更新。

  10. 如果一切顺利,没有错误,那么一切就完成了:

    exit
    sudo reboot
    
  11. 此时您应该可以正常启动。

如果您无法正常启动,并且由于没有错误消息而未执行步骤 8,请重试步骤 8。

  • 有时给 GRUB2 正确的配置为您的分区安装此文件是不够的,您必须将其安装(或重新安装)到主引导记录,步骤 8 就是这么做的。在聊天中帮助用户的经验表明,即使没有显示任何错误消息,步骤 8 有时也是必要的。

答案2

Windows 安装程序不关心系统中的其他操作系统。因此,它会在主引导记录上写入自己的代码。幸运的是,解决方案也很简单。

您需要修复 MBR。请执行以下操作

使用 ubuntu 的实时 usb/cd 启动。用来boot-repair修复问题。

使用 live usb/cd 启动后,在终端中运行以下命令:

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

使用Recomended Repair

在此处输入图片描述

更多信息 -https://help.ubuntu.com/community/Boot-Repair

答案3

从实时 Ubuntu USB 驱动器或 CD 启动并
按照以下步骤在 Ubuntu 上安装 Boot-Repair

打开终端并运行以下命令

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

安装完成后,如果您使用 Gnome,可以从系统->管理->启动修复菜单启动它;如果您使用 Unity,则在面板中搜索“启动修复”。然后按照以下屏幕截图操作:

方法 1

  • 点击高级选项

初始屏幕

  • 勾选下面显示的选项

高级选项

  • 将选项卡改为Grub Location选项卡,并勾选如图所示的选项

在此处输入图片描述

按“应用”并重新启动系统

方法 2

  • 选择推荐的启动修复选项,如第一张截图所示

文档:

答案4

easyBCD只需在 Windows 7 中 安装并执行

添加新条目 > Linux/BSD > (选择)Grub2 > (推送)添加条目

然后你可以选择Ubuntu在 Windows 7 引导加载程序上Grub2(以前的引导加载程序)。

相关内容