我真的需要两个引导加载程序吗?这确实会减慢实际启动时间

我真的需要两个引导加载程序吗?这确实会减慢实际启动时间

亲爱的读者们

我是 Linux 的初学者。Linux 很棒,但我必须自己解决问题,所以请帮助我!

设置:Macbook Pro 8,1、rEFit、GRUB2、Lion、Ubuntu 04.12

问题:我的启动时间太长因为我必须经历两个引导程序。rEFit >> GRUB >> 最后是 Ubuntu!此外,当我尝试从 USB 启动另一个操作系统进行测试(elementary OS Luna)时,rEFit 识别了它,我选择使用 USB 的 Penguin 标记,而 GRUB 加载并仅显示 Ubuntu,而不是操作系统。我猜有两个引导程序会不知何故让计算机感到困惑,那么,我真的需要两步引导程序吗?

还有一件事与启动过程有关。在登录屏幕上,我可以选择桌面环境。我有 Unify 和 Genome 桌面,它们都带有 Cairo Dock。当我更改桌面环境时,它无法正确加载设置。几乎就像所有主题都混在一起了一样。

以下是我最终的双启动设置(这是我的主要问题)

我在原本运行 Lion 的 MacbookPro 8,1 上设置了双启动机器。我按照在线文章中的说明,设置了 Lion 和 Ubuntu 04.12 的双启动机器。

http://lifehacker.com/5934942/how-to-dual-boot-linux-on-your-mac-and-take-back-your-powerhouse-apple-hardware

我所遵循的说明让我先安装 rEFit,然后安装 Ubuntu,Ubuntu 会自动安装 GRUB2。至少我没有故意进行配置。

我的启动过程是这样的,打开开关,从 rEFit 选择操作系统,然后等待,在 GRUB 菜单上按回车键,然后等待并在登录时输入密码。

理想情况下,我想摆脱一个。我想保留 GRUB 的功能和可用主题,但我知道 GRUB 与 Macbookpro 8,1 存在问题,所以我想我会保留 rEFit,除非有人修复这些问题。

我具体该如何进行?

最良好的问候,

答案1

答案是“视情况而定”。

如果您的 GRUB 是 EFI 版本的 GRUB,那么理论上它可以替代 rEFIt。不过,在 Mac 上执行此操作有点棘手,而且我没有分步说明如何完成这项工作。

不过,大多数 Mac 上的 Ubuntu 安装都是以 BIOS 模式安装的,因此使用 BIOS 版本的 GRUB。在这种配置下,两个引导加载程序都是(或多或少)必要的;rEFIt 无法直接启动 Linux 内核,除非经过繁琐的程序,而 BIOS 版本的 GRUB 无法启动 OS X。

您可能需要考虑的另一种方法是用其分支替换不再开发的 rEFItrEFInd,也就是说。与 rEFIt 不同,rEFInd直接启动 Linux(3.3.0 或更高版本)内核,因此通过安装 rEFInd,您可以绕过 GRUB。执行此操作的步骤如下:

  1. 安装 rEFIt来自 OS X通过使用其install.sh脚本。
  2. 手动安装 Linux 分区上您使用的任何文件系统的驱动程序,或者如果您没有单独的分区,/boot则在根 ( ) 分区上安装驱动程序。有关其驱动程序的详细信息,请参阅 rEFInd 文档。(您只需复制一个文件。)//boot
  3. 重启。rEFInd 应该会出现,并显示一个 OS X 选项,至少一个 Linux 选项(带有企鹅),以及一个 GRUB 选项(带有通用图标或 Ubuntu 徽标)。选择通过 GRUB 启动的那个。
  4. 在 Ubuntu 中,找到mkrlconf.shrEFInd 附带的脚本并使用 运行它sudo。这将创建一个有助于直接启动内核的配置文件。
  5. 重启。您现在应该能够启动 rEFInd 中的直接启动选项。(带有 Linux 企鹅图标的选项。)如果此时遇到问题,您必须解决它们,或者可能只是使用 rEFInd,就像您以前使用 rEFIt 一样。
  6. 如果一切正常,您可以选择从 rEFInd 的菜单中删除旧的 GRUB 条目,如下所示:
    • 如果您使用的是 BIOS 模式 GRUB,请找到该refind.conf文件(位于 ESP 或 OS X/分区上,具体取决于您安装 rEFInd 的方式),取消注释该scanfor行,然后hdbios从该行中删除该选项。请注意,如果您还启动 Windows,这将从启动选项中删除 Windows,因此如果您使用 Windows 进行三重启动,您可能不想这样做。
    • 如果您一直在使用 EFI 模式 GRUB,则可以删除其文件(可能在/boot/efi/EFI/ubuntu)或使用dont_scan_filesdont_scan_dirs选项来refind.conf限制对 GRUB 的扫描。

答案2

可以使用 Grub 作为唯一的启动管理器。

首先确保你已经efibootmgr安装

$ sudo apt-get install efibootmgr

然后检查 EFI 可以从哪些分区启动

$ sudo efibootmgr
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000,0082
Boot0000* ubuntu
Boot0080* Mac OS X
Boot0081* Mac OS X
Boot0082* 
BootFFFF* 

在我的情况下,它列出了 4 个分区。Boot0000是安装了 Grub 的 Ubuntu 分区,默认情况下我想启动这个分区。

我发现Boot0080是旧 Mavericks 安装的恢复分区,而Boot0081是 Yosemite 恢复分区。Yosemite 所在的分区实际上安装,就我而言, 是Boot0082

Grub 无法直接加载 Mac OS X,但我可以配置 EFI 在 Grub 退出时加载 Mac OS X 分区。

所以我跑了

$ sudo efibootmgr -o 0000,0082

概括地说,这意味着Boot0000,在安装 Grub 的地方,将首先运行,然后如果你退出 grub(按cend 然后输入命令exit),你就可以启动到 Mac OS X

为了使启动 Mac OS X 的过程更加舒适,你可以在 Grub 启动菜单中添加一个条目,退出并启动 Mac OS X。只需编辑/etc/grub.d/40_custom并附加以下内容

menuentry "Exit to Max OS X" {
  exit
}

并使用以下命令重新加载 Grub 配置

sudo update-grub

一切都应该有效

相关内容