Ubuntu 未出现在 rEFIT 中(Mac 双启动)

Ubuntu 未出现在 rEFIT 中(Mac 双启动)

几天来我一直在尝试让双启动正常工作。我安装了 rEFIT,然后安装了 Ubuntu,安装时我选择了将 grub 加载程序放在 ubuntu 分区上的选项。安装后,我在 rEFIT 加载程序中看不到 Ubuntu 的安装,也无法修复分区表。我启动 OS X 并从分区检查器获取输出,如下所示。

*** Report for internal hard disk ***

Current GPT partition table:
 #      Start LBA      End LBA  Type
 1         409640    781659639  Mac OS X HFS+
 2      781660160    970772479  EFI System (FAT)
 3      970772480    976772479  Linux Swap

Current MBR partition table:
 # A    Start LBA      End LBA  Type
 1              1       409639  ee  EFI Protective
 2         409640    781659639  af  Mac OS X HFS+
 3 *    781660160    970772479  83  Linux
 4      970772480    976772479  82  Linux swap / Solaris

MBR contents:
 Boot Code: None

Partition at LBA 409640:
 Boot Code: None
 File System: HFS Extended (HFS+)
 Listed in GPT as partition 1, type Mac OS X HFS+
 Listed in MBR as partition 2, type af  Mac OS X HFS+

Partition at LBA 781660160:
 Boot Code: None
 File System: ext4
 Listed in GPT as partition 2, type EFI System (FAT)
 Listed in MBR as partition 3, type 83  Linux, active

Partition at LBA 970772480:
 Boot Code: None
 File System: Unknown
 Listed in GPT as partition 3, type Linux Swap
 Listed in MBR as partition 4, type 82  Linux swap / Solaris

有人知道我该如何修复这个问题吗?

答案1

首先,您的 GPT 布局似乎存在错误:从扇区 781660160 开始的分区在 GPT 端被标识为EFI 系统分区(ESP);但在 MBR 方面,它显示为具有 ext4 文件系统的 Linux 分区。鉴于此识别方式,我相信此分区上的 MBR 数据。您或安装程序可能错误地在分区上设置了“启动标志”。使用基于 libparted 的程序,在 GPT 分区上设置“启动标志”实际上会设置 ESP 类型代码,这应该绝不在 Linux 分区上设置。(ESP 需要保存 FAT 文件系统,并且应该保存 EFI 引导加载程序和相关文件,而不是 Linux 安装。)此错误不太可能导致您的问题,但可以想象它是一个促成因素。因此,我建议启动 Linux 应急系统并使用 GParted、、partedgdisk其他工具适当调整类型代码。使用 GParted 或parted从 Linux 分区中删除“启动标志”;或使用gdisk将类型代码从 EF00 更改为 8300。请注意,这些工具可能会显示其他ESP,这个带有 FAT 文件系统。您应该将其配置为 ESP(带有其“启动标志”或 EF00 类型代码,具体取决于您使用的工具)。

其次,我建议你从 Linux 的 BIOS 模式启动切换到 EFI 模式启动。这样就无需使用混合型 MBR,您现在正在使用的。混合 MBR 是丑陋而危险的黑客。您可以毫不费力地安装合适的 EFI 模式引导加载程序。最简单的设置可能是我的rEFInd,这是 rEFIt(现已停产)的一个分支;但是,我将要描述的过程仅适用于 3.3.0 及更高版本的内核。Ubuntu 12.10 及更高版本,包括 Ubuntu 12.04.2(但不是原始的 12.04)都带有合适的内核。过程如下:

  1. .zip从其下载 rEFInd 二进制文件下载页面。
  2. 在 OS X 下安装 rEFInd。使用install.sh脚本可以轻松完成。
  3. 安装 ext4fs 的 rEFInd 驱动程序。您可以通过将文件ext4_x64.efi从 rEFInd 包复制到/EFI/refind/drivers_x64/目录(您必须创建)来执行此操作。(这假设您安装到默认位置;如果您将 rEFInd 安装到您的 ESP 或手动安装在其他地方,则需要适当调整路径。)
  4. 重新启动。rEFInd 应该会出现。
  5. 在 rEFInd 中,使用箭头键选择其中一个 Linux 企鹅图标,rEFInd 应该将其识别为启动一个文件名以 开头的 Linux 内核vmlinuz
  6. 选中其中一个 Linux 内核,按两次 F2 或 Insert。将出现一个文本模式的文本编辑器。
  7. 添加ro root=/dev/sda2到启动选项并按 Enter。Linux 应该会启动。
  8. 在 Linux 中,运行rEFInd 附带的脚本。这将创建一个配置文件,下次启动时mkrlconf.sh无需添加到 Linux 选项中;相反,当您选择其选项并按下 Enter 键时,Linux 应该会直接启动。ro root=/dev/sda2

此时,您的系统基本可以正常运行。您可以使用程序删除混合 MBR gdisk(具体来说,键入x,然后n键入w),或者使用 或 GParted 对分区进行任何细微更改parted。您可能还想通过编辑 OS X 下的文件来调整 rEFInd 配置/EFI/refind/refind.conf;有关详细信息,请参阅 rEFInd 文档。

答案2

您是否尝试过选项启动?为此,您可以在启动时按住选项并可能修复它。其次,您可能安装不正确。我这样做了 2 次,然后才意识到我犯了一个错误。

答案3

我遇到过类似的情况,但是当我安装rEFit.dmg并安装后refind-bin。当我输入sudo [PATH of refined-bin]密码时,系统提示我(大致):

系统应该删除 bless 文件,因为它导致 rEFit 无法正常工作,您应该通过键入来删除它y

我这样做了,问题解决了。

相关内容