答案1
如果收到此错误消息后,你重新启动了电脑,但因为 GRUB 启动错误而无法启动 Ubuntu,则需要通过以下方式手动将 GRUB 重新安装到 EFI 系统分区 (ESP)chroot。下面是我修复此问题的方法。
使用实时会话
启动 LiveUSB(或 LiveCD)并选择“无需安装即可试用 Ubuntu”。稍后,您可能需要确保可以在实时会话中连接到互联网。
根目录
假设您在分区中安装了 Ubuntu ,并且硬盘驱动器上的分区/dev/sdXY
中已经存在 ESP 。打开终端并执行以下命令:/dev/sdXZ
/dev/sdX
$ sudo mount /dev/sdXY /mnt
$ sudo mount /dev/sdXZ /mnt/efi
$ for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
(Now, if you customized Ubuntu installation by dividing some directories up into different partitions (eg. '/boot', '/opt', etc.), you should mount them too under `/mnt` directory. You may refer to `/mnt/etc/fstab` file to remember what you did on the installed Ubuntu system)
$ sudo chroot /mnt
使用正确的 EFI 版本重新安装 grub2
一旦您chroot成功进入您安装的 Ubuntu 系统,请确保(重新)安装grub-efi-*
适合您的 PC 架构的正确软件包:
# apt-get install --reinstall grub-efi-x86_64
(我用于 Intel i5 CPU 的那个)
或者
# apt-get install --reinstall grub-efi-amd64
或者
# apt-get install --reinstall grub-efi-ia32
等等...你可以使用以下命令获取可用软件包的列表# apt-cache search ^grub-efi
最后,将 grub2 安装到您的驱动器中:
# grub-install --boot-directory=/boot --bootloader-id=ubuntu-fix --target=x86_64-efi --efi-directory=/efi
# update-grub
请注意,--target=x86_64-efi
根据你的系统,可能会有所不同(例如,i386-pc
默认情况下,可能amd64-efi
等等)。查看# grub-install --help
更多信息。
出口chroot,解除绑定/卸载安全目录并重新启动
- 出口chroot使用Ctrl+D或
# exit
安全卸载并重新启动:
$ for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done $ sudo umount /mnt/efi (Unmount any other customized partitions, if you had any) $ sudo umount /mnt $ sudo reboot
Ubuntu 现在应该可以正常启动了。
参考:
答案2
在我的两台机器上进行了 20 多次实验后,编辑并修改了原始答案。为了简短回答,我将删除旧答案中所有不正确的假设和结论。
----------------我的电脑是 1. 富士通 LIFEBOOK-LH532,其主板上的 UEFI BIOS 于 2012 年被 ubuntu EFI ubiquity 版本 12.04 破坏 https://bugs.launchpad.net/ubuntu/+source/efibootmgr/+bug/1082418 显然,我选择在我的笔记本 UEFI LH532 上手动安装 BIOS。因为我不想再次打开我的笔记本来短路主板上的跳线 cl1&cl2,因为“错误”仍然存在。***我通过不在任何硬盘上提供 EFI 分区来强制手动 BIOS 模式。但所有安装都会检测 UEFI 主板并尝试“首先”安装 EFI UBUNTU。
- 旧款技嘉 Xenon 服务器非 UEFI 主板。
根本没有任何错误。
与主题完全相同的错误导致“UEFI”笔记本仅出现问题。
- 非可移植的 UEFI 笔记本电脑(LH532)。Ubiquity 销毁现有的 UBUNTU GRUB。
- “或者如果幸运的话”只会使用 16.04 安装的旧 Bios grub 并启动到新的 18.04(在旧的 16.04 分区中),并且在启动开始时会出现一些错误。
我修复了引导问题
- 麻烦吗?复杂吗?使用 Boot-Repair(无法使用 grubcustomiser)安装到其他分区或 BOOTED Live usb 上的现有 ubuntu 安装中。并遵循每次不同的说明,具体取决于系统中硬盘的配置以及使用的 ubuntu 18.04 的风格。
https://help.ubuntu.com/community/Boot-Repair
- 大多数情况下都很简单、出色。我使用 UBUNTU 或 LUBUNTU 16.04 在同一台计算机的硬盘其他分区上进行了全新安装,而您安装了“18.04”,并且由于此错误而无法安装 grub。
这样 16.04 就能启动你的系统了。没错,你可以从 16.04 grub 访问 Great 18.04 版本。
是的,我使用 UBUNTU 18.04 来写这个答案,在 LUBUNTU 16.04 为我的 LH532 笔记本安装了新的 GRUB 之后,选择了正确的选项 18.04。
本主题错误的原因是您没有为手动“其他”安装模式提供 EFI 分区。
所以,如果您像我一样故意不设置 EFI 分区,那么您就会遇到此错误。
但是 16.04 版本比 18.04 版本拥有更智能的 UBIQUITY 或“无论如何”。它会发现您使用 BIOS 安装(硬盘中没有 efi 分区),并让您选择“返回”以 BIOS 模式安装 ubuntu。但是 18.04 将在没有任何选择的情况下进行安装,就我的情况而言,可能对您而言也是如此。
我将 18.04 中质量较差的情况称为“BUG”。但这可能是程序员的意图,迫使我们只使用适当的清洁自动化???他们应该删除“其他”选项。
- 我已通过完全重新格式化我的 SSD 纠正了问题。安装 Windows 10 UEFI 模式。它会自动创建 EFI 分区。
然后安装 UBUNTU 18.04,没有任何错误,尽管它禁止我启动我在 Windows 10 之后安装的 MANJARO LINUX,而且也没有问题。
当然,UBUNTU 18.04 破坏了我的 BIOS F12。JEALOUSELY 禁止我安装任何其他操作系统,我不得不打开笔记本电脑外壳以短路跳线 CL1 和 CL2 以让 F12 选择启动媒体。
我确实通过上面提供的链接向 lunchpad 报告了此事。
抱歉,有点跑题了,但我想让大家知道,在无处不在或安装过程中,除了这个问题之外,还有更多的错误。
答案3
从启动 USB 安装 ubuntu 18.04 时出现类似错误。我制作了 BOOT CD,安装成功。
答案4
当我使用 UEFI 引导从 USB 闪存盘安装时,我遇到了完全相同的问题。当该方法失败时,我按照这里的一条评论,从非 UEFI 通用闪存盘引导进行安装,并且成功了。当时,我对 UEFI 一无所知,也不知道为什么一种方法有效,而另一种方法无效。
从那时起,我对此进行了一些研究,现在了解到 UEFI(统一可扩展固件接口)是 BIOS 的后继者,并且有不同的要求。特别是,如果使用 UEFI,Linux 需要一个 /boot/efi 分区,而我没有创建这个分区(我是手动创建分区的)。
错误消息当然可以更清楚一些。UEFI 磁盘分区程序应该要求 efi 启动分区,然后才允许您继续。相反,它在给出“GRUB 安装失败”错误之前执行了大部分 Linux 安装。