EFI 启动修复错误

EFI 启动修复错误

我一直在尝试在我的 MacBook Pro 5,5 上安装 Ubuntu 14.04。我一直在按照本教程操作以使其正常工作::http://www.makeuseof.com/tag/install-linux-macbook-pro/

刚刚提到了博客中关于 EFI 启动修复的部分。它要求我在安装后和重新启动前运行两个命令

1)sudo apt-get install efibootmgr

2)sudo efibootmgr

但是当我在终端上运行第二条命令时,出现错误提示::

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

我尝试过搜索,但没有任何意义,因为我对在终端上运行命令还很陌生(一直在 Windows 上工作)。

我想在我的 MacBook Pro 上双启动 Mac OS X 和 Ubuntu。

我尝试忽略此步骤,但我的 Ubuntu 无法启动,而是启动 Mac OS。谢谢您的帮助!:)

答案1

大多数现代计算机(包括所有基于 Intel 的 Mac)都可以通过以下两种方式启动:

  • EFI/UEFI 模式-- 这是大多数现代计算机(2011 年中或之后推出的 PC 以及所有基于 Intel 的 Mac)的本机模式。这是从旧 BIOS 系统衍生而来的一种全新启动模式。与 BIOS 相比,它既有优点也有缺点。efibootmgr只有在 EFI 模式下启动时,该程序才会运行。(请注意,UEFI 只是 EFI 版本 2.x。Mac 仍然使用 EFI 1.x,因此从技术上讲不是 UEFI;但您阅读的有关 UEFI 启动的 90% 仍然适用于 EFI 模式下的 Mac。)
  • BIOS/CSM/传统模式-- 较旧的计算机使用的是 BIOS,而不是 EFI。大多数 EFI 都提供一项称为兼容性支持模块 (CSM) 的功能,该功能使它们能够启动为 BIOS 模式设计的操作系统。这通常称为“传统模式启动”。CSM 旨在作为向后兼容的权宜之计。在 Mac 上,它通常用于使计算机能够以 BIOS 模式双启动 Windows(尤其是 Windows 7 及更早版本),以 EFI 模式双启动 OS X。

Ubuntu 可以在任何一种模式下启动,但要知道您处于哪种模式可能很棘手。最可靠的方法是查找名为 的目录/sys/firmware/efi。如果存在,则说明您已在 EFI 模式下启动。如果不存在,则说明您可能已在 BIOS 模式下启动。您启动 Ubuntu 安装程序的模式决定了它安装的是 BIOS 模式还是 EFI 模式版本的 GRUB。

无论如何,您的症状表明您是在 BIOS 模式下启动 Ubuntu,而不是在 EFI 模式下启动。在大多数情况下,这是不可取的。修复此问题的最简单方法是为 Linux 安装 EFI 模式引导加载程序。有几种可用的方法,如详细说明在我的这个页面上。传统上,Mac 用户更青睐改装完成这项任务;然而,rEFIt 已经被废弃好几年了。我的 fork 版本,rEFInd,处于积极维护状态。如果您在 OS X 下安装 rEFInd,则下次重新启动时,您将能够从 rEFInd 菜单启动 Ubuntu。不过,之后您可能需要进行一些清理:

  • 您的磁盘可能有一个混合型 MBR,这是一种丑陋而危险的黑客行为。在 EFI 模式下启动所有操作系统时,这是不必要的,因此除非您使用 Windows 进行三重启动,否则您可能应该将混合 MBR 转换为合法的保护性 MBR。您可以通过使用 GParted 或parted使用进行微小更改来做到这一点gdisk:键入x以进入专家菜单,然后n创建新的保护性 MBR,然后w保存您的更改。但请注意,如果您使用 Windows 进行三重启动,您可能需要混合 MBR。
  • rEFInd 的菜单中可能会出现额外的启动选项。特别是,Ubuntu 的 BIOS 模式条目可能有效,也可能无效。您可以通过编辑(从 Ubutu)来消除它:/boot/efi/EFI/refind/refind.conf取消注释该scanfor行并确保hdbios不是在选项中。根据您安装的其他内容,您可能会看到其他不需要和/或不起作用的选项。您可以使用其他选项自定义 rEFInd refind.conf,例如dont_scan_filesdont_scan_dirsdont_scan_volumes选项。仔细阅读配置文件中的注释或阅读rEFInd 配置文档了解详情。

答案2

你尝试输入了吗

sudo modprobe efivars

按照建议的?这将加载访问某些 EFI 设置所需的内核模块。

相关内容