背景
有人给我一台 2007 年中期的白色旧 MacBook 让我玩,我想在上面双启动 Ubuntu。CD 驱动器坏了。CPU 是 64 位的。
我目前所做的:
我下载了 ubuntu 16.04 LTS 作为 iso 并将其转换为 img。(我曾经
hdiutil convert -format UDRW path/to/ubuntu.iso -o path/to/ubuntu.img
这样做过)我在 Mac 上安装了 rEFInd。
使用 GUID 分区管理器将 USB 驱动器分区为 OSX Journaled
感谢 Rod Smith,我参加了这次活动
ioreg -l -p IODeviceTree | grep firmware-abi
,并获得了<"EFI32">
有趣的是
一旦我使用sudo dd if="path/to/ubuntu.img" of="/dev/rdiskN"
USB 驱动器,它就会从 GUID 分区方案切换到 Apple 分区管理器。这会导致我的 USB 驱动器无法启动,因为 OSX 无法识别它,并且 rEFInd 无法启动它,并显示大量“未从 LocatDevicePath 找到”信息。
我该如何解决这个问题以及我需要做什么?
提前致谢!
答案1
首先,这台电脑太旧了,我不能 100% 确定它的 CPU 和 EFI 位深度。这些是批判的您需要了解的详细信息,以便您下载正确的 Ubuntu 版本并使用正确的安装程序。简而言之,大多数现代计算机都有 64 位 CPU 和 64 位 EFI,因此在它们上安装 64 位 Ubuntu 是合适的。然而,第一代基于 Intel 的 Mac 使用的是 32 位 EFI,大部分(或许是全部)都是 32 位 CPU。这些需要 32 位 Ubuntu——但是 32 位 Ubuntu 映像不支持在 EFI 模式下启动,这使事情变得复杂。进一步的复杂因素是,一些早期的 Mac(主要是第一代 32 位之后的第一次修改)使用 64 位 CPU 但使用 32 位 EFI。它们可以通过跳过一些环节使用以 EFI 模式安装的 32 位 Ubuntu,或者通过跳过更少的环节使用以 BIOS 模式安装的 64 位 Ubuntu,或者通过跳过其他环节使用以 EFI 模式安装的 64 位 Ubuntu。简而言之,它们确实很复杂,很难解释。
尽管如此,当我在 Google 上搜索“macbook 2007 规格”时,我得到的结果是这一页,这表明您的机器可能具有 64 位 CPU 和 64 位 EFI。如果这是正确的,事情就简单多了。为确保万无一失,请在 OS X 终端窗口中运行以下命令:
ioreg -l -p IODeviceTree | grep firmware-abi
这应该返回EFI32
或EFI64
。如果是前者,停止!您将踏上一段狂野的旅程,需要做更多挖掘并决定做出哪些妥协。如果前面的命令返回EFI64
,请继续...
您说您将.iso
下载的文件转换为文件.img
,但没有说明您是如何做到这一点的。在大多数情况下,这是一个不必要的步骤,更有可能产生问题而不是解决问题。从广义上讲,有两种方法可以将 Ubuntu 安装.iso
文件写入 USB 闪存驱动器:
- 使用
dd
-- 您可以使用该dd
程序将.iso
文件写入 USB 闪存驱动器。这样做是因为 Ubuntu 的.iso
文件使用了一种怪兽格式,这种格式既可以作为光盘 ISO-9660 文件系统读取,也可以作为硬盘的分区表和相关文件系统结构读取。最多(但不是全部)计算机在通过以下命令写入 USB 闪存驱动器时可以正常读取此格式sudo dd if=image.iso of=/dev/disk2
。这将传输image.iso
到(OS X)/dev/disk2
;根据您的系统需要更改两个文件名。 - 使用传输工具-- 类似项目联合国网启动(适用于 Linux、OS X 和 Windows)和鲁弗斯(仅限 Windows,这是我上次检查的)可以读取
.iso
文件并创建可启动的 USB 闪存驱动器。这些工具中的大多数都可以创建可以在 BIOS/CSM/传统模式或 EFI 模式下启动的映像,但从此类映像启动时存在例外和系统间怪癖。因此,我不能保证任何给定的程序都能为您工作;但是,Rufus 通常是这些程序中声誉最好的,因此如果您可以访问 Windows 系统,您可能想先尝试一下。
实际上,您可能需要尝试两个或更多工具来创建可启动的 USB 闪存驱动器;您只需一个接一个地尝试,直到成功为止。
重新索引应该正确准备好磁盘后,即可检测磁盘是否可启动。不过,有几个注意事项:
- 您可能需要按下 Esc 键才能让 rEFInd 检测外部磁盘。这是因为外部磁盘有时在固件中注册的速度很慢,因此它们不会立即显示在 rEFInd 的菜单中。按下 Esc 键会导致 rEFInd 对可启动设备进行新的扫描,从而解决此故障。
- 您可能会看到两个外部介质条目,一个用于在 BIOS/CSM/旧版模式下启动,另一个用于在 EFI 模式下启动。我建议尽可能在 EFI 模式下安装,因此您应该使用 EFI 模式启动条目。此条目可能被描述为启动“后备加载程序”,并且可能有一个通用图标,而不是 Linux 或 Ubuntu 图标。相比之下,BIOS 引导加载程序可能有一个 Linux 图标和一个包含“旧版”一词的描述。
- 在 Mac 上以 BIOS/CSM/传统模式启动外部媒体是一个碰运气的提议。它可能工作正常,或者 rEFInd 可能会抛出错误。如果 rEFInd 失败,您可以在启动计算机时按住 Alt(或 Option)键。这应该会调出固件的内置启动管理器,它可能(也可能不会)更好地在 BIOS 模式下启动 USB 驱动器。这个困难是我支持进行 EFI 模式安装的原因之一(但也有其他原因)。
- 如果你要使用 rEFInd,你可能希望在“安装前尝试”模式下启动 Ubuntu 安装程序,启动终端,然后输入
ubiquity -b
。这将导致安装程序设置 Ubuntu没有安装 GRUB,这是多余的。如果您直接启动安装程序,GRUB 将被安装,这可能会接管启动过程。在某些情况下,GRUB 可能无法启动 OS X。这个问题可以克服,但完全避免它可能会简化事情。另一方面,如果您出于某种原因必须在 BIOS 模式下启动 Ubuntu,您将需要 GRUB,因此您应该确保它已安装。
只要我发现的表明您的机器具有 64 位 EFI 的信息正确,这些信息就足以帮助您入门。