Ubuntu和许多其他Linux发行版使用GRUB2引导加载程序。如果GRUB2崩溃-例如,如果您在安装Ubuntu之后安装Windows,或者覆盖您的MBR-您将无法引导到Ubuntu。
您可以轻松地从Ubuntu live CD或USB驱动器恢复GRUB2。此过程与在较旧的Linux发行版上恢复遗留GRUB引导加载程序不同。
这个过程应该适用于所有版本的Ubuntu。它已经在Ubuntu 16.04和Ubuntu 14.04上进行了测试。
图形化方法:引导修复
相关:如何从光盘或USB驱动器启动计算机
Boot Repair是一个图形化工具,只需单击一下即可修复GRUB2。对于大多数用户来说,这是解决引导问题的理想解决方案。
如果您有安装Ubuntu的介质,请将其插入计算机,重新启动,然后从可移动驱动器引导。如果没有,请下载Ubuntu live CD并将其刻录到光盘或创建可引导的USB闪存驱动器。
当Ubuntu启动时,单击“尝试Ubuntu”以获得可用的桌面环境。
在继续之前,请确保您已连接到Internet。您可能需要选择Wi-Fi网络并输入其密码。
从仪表盘打开终端窗口,然后运行以下命令来安装和启动引导修复:
sudo apt-add-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair
运行Boot-Repair命令后,Boot Repair窗口将自动扫描您的系统。扫描您的系统后,单击“建议修复”按钮即可修复GRUB2。
你可以选择在这里使用高级选项,但Ubuntu的维基建议你不要使用高级选项,除非你知道自己在做什么。推荐的修复选项可以自动修复大多数问题,如果选择了错误的高级选项,您的系统可能会更加混乱。
引导修复将开始工作。它可能会要求您打开一个终端,然后将几个命令复制/粘贴到其中。
只需按照屏幕上显示的说明操作即可。执行Boot Repair希望您执行的说明,然后单击“前进”继续完成向导。该工具将引导您完成需要执行的所有操作。
在引导修复工具应用完更改后重新启动计算机。Ubuntu应该可以正常启动。
终端方法
如果您更愿意动手,您可以在终端自己做这件事。您需要从live CD或USB驱动器引导,如上面的图形化方法所示。确保CD上的Ubuntu版本与您计算机上安装的Ubuntu版本相同。例如,如果您安装了Ubuntu14.04,请确保您使用的是Ubuntu 14.04live CD。
引导进入实时环境后打开终端。使用以下命令之一标识安装了Ubuntu的分区:
sudo fdisk -l
sudo blkid
下面是这两个命令的输出。在fdisk-l命令中,Ubuntu分区由SYSTEM列中的LINUX分区标识。在blKID命令中,分区由其ext4文件系统标识。
如果您有多个Linux ext4分区,您可以通过查看分区的大小及其在磁盘上的顺序来了解是哪个分区。
运行以下命令将Ubuntu分区挂载到/mnt/ubuntu,将上述命令中的/dev/sdx#替换为您的Ubuntu分区的设备名称:
sudo mkdir /mnt/ubuntu
sudo mount /dev/sdX# /mnt/ubuntu
在上面的屏幕截图中,我们的Ubuntu分区是/dev/sda1。这意味着第一个硬盘设备上的第一个分区。
重要提示:如果您有单独的引导分区,请跳过上述命令,改为将引导分区挂载到/mnt/ubuntu/boot。如果您不知道是否有单独的引导分区,则可能没有。
运行以下命令从Live CD重新安装GRUB,并将/dev/sdx替换为上面硬盘的设备名称。省略数字。例如,如果您在上面使用了/dev/sda1,那么在这里使用/dev/sda。
sudo grub-install --boot-directory=/mnt/ubuntu/boot /dev/sdX
重新启动计算机,Ubuntu应该可以正常启动。
有关更详细的技术信息,包括如何使用chroot命令访问损坏的Ubuntu系统的文件和恢复GRUB2,请参考Ubuntu wiki。