EFI在没有rEFInd的Mac上启动Ubuntu 14.04
我希望从我的Mac中完全删除OS X并单独安装Ubuntu 14.04 LTS。
虽然我希望使用较新的EFI启动方法而不是传统的BIOS启动,但我不想使用rEFInd或任何其他第三方启动加载程序,而是希望使用Mac的默认启动加载程序。
这样做的原因是我希望消除由其他已知方法引起的大约30秒延迟,并且还希望能够访问各种与EFI相关的实用程序。
您能否提供详细而循序渐进的方法来实现这一目标?
此过程将擦除OS X和计算机上的任何其他数据。 请确保在继续之前备份您的系统。
您可能希望创建一个恢复磁盘,以便您可以在以后恢复OSX(如果需要)。
使用Ubuntu创建Live USB
有关详细说明,请参阅此页面 。 建议使用UNetbootin ,因为它是交叉平台并提供图形用户界面(GUI)。
注 – 请勿使用+mac
版本,因为它不支持EFI启动。
从Live USB启动
在Mac上从USB启动的技巧是在打开设备电源后立即按住option
键。 从此菜单中选择EFI Boot 。
Ubuntu现在应该从USB启动。 使用Erase安装Ubuntu 并使用Entire Disk选项。
首先,当您重新启动/启动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
,然后点击。 再次选中,您不必输入整个文件名。 确保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
命令仔细检查更改,然后写入。
现在我们有一个未格式化的HFS +分区。 格式化为:
sudo mkfs.hfsplus /dev/sda1 -v ubuntu
3.更新文件系统表
编辑/ etc / fstab
sudoedit /etc/fstab
使用Ctrl+K
删除引用/boot/efi
的行。
现在,键入以下命令 –
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 – 对于他的原始post,使用了PPA。
Rohith Madhavan – 关于Ask Ubuntu的post,稍加修改。