我希望从我的 Mac 中彻底删除 OS X 并单独安装 Ubuntu 14.04 LTS。
虽然我希望使用较新的 EFI 启动方法而不是传统的 BIOS 启动,但我不想使用 rEFInd 或任何其他第三方引导加载程序,而是想使用 Mac 的默认引导加载程序。
这样做的原因是我想消除其他已知方法造成的大约 30 秒的延迟,并且希望能够访问各种 EFI 相关实用程序。
您能否提供一个详细的、逐步的方法来实现这一点?
答案1
此过程将清除 OS X 和您机器上的任何其他数据。请确保在继续操作之前备份您的系统。
您可能希望创建恢复磁盘这样,您可以在以后需要时恢复 OSX。
使用 Ubuntu 创建 Live USB
參閱这一页了解详细说明。联合国网启动之所以推荐,是因为它是跨平台的并且提供了图形用户界面(GUI)。
笔记- 请勿使用该+mac
版本,因为它不支持 EFI 启动。
从 Live USB 启动
option
在 Mac 上从 USB 启动的技巧是在打开设备电源后立即按住该键。选择EFI 启动从此菜单中。
Ubuntu 现在应该可以从 USB 启动。使用擦除并使用整个磁盘选项。
首先,当您重新启动/打开 Mac 时,您将看到 Mac 引导加载程序的灰色屏幕约 30 秒,然后看到一个轻轻闪烁的文件夹,里面有一个“?”。如果您现在插入安装程序 USB,它应该会启动。如果没有,请尝试按住电源按钮强制关闭电源,然后按照 USB 启动说明将其启动。
从硬盘手动启动
此时系统无法启动,因为 Mac 引导加载程序希望 EFI 分区格式化为 HFS+(典型的 Mac 文件系统),而 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
按回车键可选择第一个和最后一个扇区选项。
输入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
系统现在应该可以启动了!
致谢
杰森·希里斯- 对于他的原始帖子,使用了 PPA。
罗希斯·马德哈万- 对于 Ask Ubuntu 上的帖子,做了微小的修改。