我该怎么修gr? (安装Windows后如何恢复Ubuntu?)

Modified on: Sat, 09 Jun 2018 02:36:53 +0800

我安装了Windows 7,它使用了Ubuntu的启动文件。启动计算机时,它现在直接进入Windows,而不是让我选择启动Ubuntu。

如何恢复Ubuntu?

最佳答案

安装Windows时,Windows假定它是计算机上唯一的操作系统(OS),或者至少它不考虑Linux。因此它用自己的引导加载程序替换GRUB。您需要做的是用GRUB替换Windows引导加载程序。我已经看到了通过使用GRUB命令或类似命令来替换GRUB的各种指令,但对我来说最简单的方法是将chroot简单地放入安装并运行update-grubchroot非常棒,因为它允许您处理实际的安装,而不是尝试在这里和那里重定向事物。它真的很干净。

以下是:

  1. 在“试用Ubuntu”模式下从Live CD或实时USB启动。
  2. 确定主分区的分区号。 sudo fdisk -l

    如果您的主分区位于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
    

    用相应的分区号替换sdXWsdXYsdXZ

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



    在/ sys / proc / run / dev中的
    for i in /sys /proc /run /dev; do sudo mount --bind "$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

    如果您遇到错误或者如果您未能解决问题,请转到步骤8.(否则,它是可选的。)

  8. 根据您的具体情况,您可能需要重新安装grub:

    update-grub
    
  9. 如果Ubuntu以EFI模式安装,并且EFI分区UUID已更改,则可能需要在/etc/fstab中更新它。比较一下:

    grub-install /dev/sda
    update-grub # In order to find and add windows to grub menu.
    

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

  10. 如果一切顺利,那么你就完成了所有工作:


    exit sudo reboot
  11. 此时,您应该能够正常启动。

  12. 醇>

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

  • 有时为您的分区提供GRUB2正确的配置是不够的,您必须将其实际安装(或重新安装)到主引导记录,这是第8步。帮助用户进行聊天的经验表明,即使没有显示任何错误消息,有时也需要执行步骤8.

相关问答

添加新评论