EFI在没有rEFInd的Mac上启动Ubuntu 14.04


8

我希望从Mac上完全删除OS X,然后单装Ubuntu 14.04 LTS。

尽管我希望使用更新的EFI引导方法而不是传统的BIOS引导,但我不想使用rEFInd或任何其他第三方引导程序,而是要使用Mac的默认引导程序。

原因是我想消除其他已知方法造成的大约30秒的延迟,并且还希望能够使用各种与EFI相关的实用程序。

您可以提供详细的逐步方法来实现此目的吗?

Answers:


10

此过程将擦除OS X和计算机上的所有其他数据。请确保在继续之前备份您的系统。

您可能希望创建一个恢复磁盘,以便在以后需要时还原OSX。

使用Ubuntu创建Live USB

请参阅此页面以获取详细说明。推荐使用UNetbootin,因为它是跨平台的,并提供图形用户界面(GUI)。

注意 -请勿使用该+mac版本,因为它不支持EFI引导。

从实时USB引导

在Mac上从USB引导的诀窍是option在打开设备电源后立即按住该键。从此菜单中选择EFI Boot

在此处输入图片说明

Ubuntu现在应该从USB启动。使用“ 擦除并使用整个磁盘”选项安装Ubuntu 。

在此处输入图片说明

首先,当您重新启动/开启Mac时,您会看到Mac引导加载程序的灰屏约30秒钟,然后是一个带有“?”的闪烁文件夹。内。如果现在插入安装程序USB,它将启动。如果不是,请尝试按住电源按钮以强制关闭电源,然后按照USB引导说明进行操作。

从硬盘手动启动

此时系统无法启动,因为Mac引导加载程序期望EFI分区被格式化为典型的Mac文件系统HFS +,而Ubuntu安装程序实际上将其格式化为VFAT。

在这一步中,我们将指示Live USB上的GRUB也从硬盘驱动器上新安装的Ubuntu启动。–这将需要进行认真的键入,但是以这种方式启动后,我们将准备在下一步中设置自动启动。

如果您使用的是桌面安装程序,请按住shift键以调出GRUB引导程序菜单。

当您看到GRUB引导菜单时,不要选择任何条目。而是按调C出GRUB控制台。

在grub控制台中,键入 ls

grub> ls 
(memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2)
(hd2,gpt1)

您可能不会获得与此完全相同的结果,但是会有一些类似的选择。

现在,找到包含用户主目录的分区。

grub> ls (hd2,gpt2)/home
rohith/

继续尝试直到找到它。

最后一步的结果分为两部分:(hdX,gptY)。您需要保留该hdX部分,但要通过所有gptY选项查找/ boot / grub目录。

grub> ls (hd2,gpt2)/boot/grub
unicode.pf2 [...] grub.cfg

现在,您要将其设置为进一步命令的根目录。

grub> set root=(hd2,gpt2)

正确引导的唯一方法是使用驱动器的UUID。

grub> ls -l (hd2,gpt2)

记下UUID。您必须在下一步中手动输入。

grub> linux /boot/vmlinuz〈Tab here!〉.efi.signed root=UUID=〈the UUID from above〉

GRUB控制台可以完成制表符补全,因此,如果您只键入vmlinuz部分并点击tab,然后点击。并tab再次,你就不必键入整个文件名。确保该efi.signed零件存在。

现在,设置初始RAM磁盘

grub> initrd /boot/initrd〈Tab here!〉

您应该能够从硬盘启动命令

grub> boot

在此处输入图片说明

设置自动启动

您现在已经启动到新安装的Ubuntu。下一步是通过将/boot/efi分区重新格式化为Mac期望的HFS +文件系统,并允许您直接从中引导,从而使引导自动且轻松进行。

1.安装额外的软件包

现在,打开一个终端并输入

sudo add-apt-repository ppa:detly/mactel-utils
sudo apt-get update
sudo apt-get install mactel-boot hfsprogs gdisk grub-efi-amd64

2.重新格式化EFI分区

运行mount以获取已挂载文件系统的列表,然后查找在/ boot / efi挂载的任何文件。卸下它。

sudo umount /dev/sda1

现在gdisk,我们用于删除VFAT分区并创建一个HFS +

sudo gdisk /dev/sda

(请注意,该磁盘名称的末尾没有数字!)

p

确认第一个分区的类型为EF00。现在我们删除该EF00分区。

d

在其位置创建一个新的HFS +。

n

按Enter键选择第一个和最后一个扇区。

输入AF00文件系统代码。

使用p命令仔细检查您的更改,然后w进行写入。

现在,我们有了一个未格式化的HFS +分区。格式化:

sudo mkfs.hfsplus /dev/sda1 -v ubuntu

3.更新文件系统表

编辑/ etc / fstab

sudoedit /etc/fstab

删除/boot/efi使用引用的行Ctrl+K

现在,键入以下命令-

sudo bash -c 'echo $(blkid -o export -s UUID /dev/sda1) /boot/efi auto defaults 0 0 >> /etc/fstab'
mount /boot/efi

4.在HFS分区上安装GRUB

sudo bash -c 'echo "This file is required for booting" > /boot/efi/mach_kernel'

安装GRUB并“祝福”文件系统。

sudo grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi
sudo hfs-bless "/boot/efi/System/Library/CoreServices/boot.efi"

编辑一些故障排除:在Ubuntu 14.04 Trusty Tahr上按照以下说明进行操作时,我收到以下错误消息grub-install

Installing for x86_64-efi platform.grub-install
error: Can't create file: No such file or directory.

在再次运行它之后,strace我确定它不是在寻找名为的文件/boot/efi/mach_kernel,而是在寻找一个名为的文件,/boot/efi/EFI/ubuntu/mach_kernel并在创建该文件并重新运行grub-install所有内容后似乎正常工作。结束编辑

5.消除启动延迟

要设置默认的EFI引导项,请运行

sudo efibootmgr

摆脱多余的条目-

sudo efibootmgr -b xxxx -B

其中xxxx是从以下位置获得的引导号 sudo efibootmgr

现在,设置默认条目-

sudo efibootmgr -o xxxx

系统现在应该可启动!

学分

Jason Heeris-对于他的原始帖子,使用了PPA。

Rohith Madhavan-对于Ask Ubuntu上的帖子,进行了较小的修改。


在step4中,您需要先挂载/ dev / sda1,然后再尝试安装grub
pshirishreddy 2015年

双启动有可能吗?我可以在MBP(8,2)上将ubuntu与OSX一起安装,而无需安装refitor refind。一切正常(除了我的外接显示器)。但是,我尝试在较新的MBP视网膜上进行相同操作,但无法继续进行下去。在试用模式下看起来非常好...外接显示器开箱即用,安装也很好。但是我不能让我的MBP视网膜也启动ubuntu。安装ubuntu使其启动后,我能做些什么?
马特·班纳特

我发现了efibootmgr额外的神秘性(尽管它只是偶然地对我有用)。手册页也不是很难掌握。我得到的选择是什么意思?我可以删除什么?(为什么我应该删除东西,难道仅仅是设置引导顺序就不够了吗?)
zrajm

刚刚在我后来的Mac Book Pro上使用“擦除磁盘并安装Ubunu”选项安装了Ubuntu 17.04。它会慢慢启动。有两个分区:/ dev / sda1“ BIOS Boot”和/ dev / sda2“ Linux Filesystem”安装在/。/ boot /目录位于/上。如果我调整分区的大小并创建HSF +分区/ boot /,是否应该能够创建EFI引导?
马丁
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.