Roh*_*van 9 mac boot system-installation 14.04
我希望从我的 Mac 中完全删除 OS X 并单独安装 Ubuntu 14.04 LTS。
虽然我希望使用较新的 EFI 引导方法而不是传统的 BIOS 引导,但我不想使用 rEFInd 或任何其他第三方引导加载程序,而是想使用 Mac 的默认引导加载程序。
这样做的原因是我想消除由其他已知方法引起的大约 30 秒的延迟,并且还希望能够访问各种与 EFI 相关的实用程序。
您能否提供详细的分步方法以实现这一目标?
Roh*_*van 12
此过程将擦除 OS X 和您在机器上的任何其他数据。请确保在继续之前备份您的系统。
如果需要,您可能希望创建一个恢复磁盘,以便以后可以恢复 OSX。
有关详细说明,请参阅此页面。推荐使用UNetbootin,因为它是跨平台的并提供图形用户界面 (GUI)。
注意- 不要使用该+mac版本,因为它不支持 EFI 引导。
在 Mac 上从 USB 启动的技巧是在option您打开设备电源后立即按住该键。从此菜单中选择EFI 启动。

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

首先,当您重新启动/打开 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)
Run Code Online (Sandbox Code Playgroud)
您可能不会得到与此完全相同的结果,但您会有一些类似的选择。
现在,找到包含用户主目录的分区。
grub> ls (hd2,gpt2)/home
rohith/
Run Code Online (Sandbox Code Playgroud)
继续尝试,直到找到为止。
最后一步的结果有两部分:(hdX,gptY). 您需要保留该hdX部分,但要查看所有gptY选项以查找 /boot/grub 目录。
grub> ls (hd2,gpt2)/boot/grub
unicode.pf2 [...] grub.cfg
Run Code Online (Sandbox Code Playgroud)
现在您想将其设置为您的根以执行进一步的命令。
grub> set root=(hd2,gpt2)
Run Code Online (Sandbox Code Playgroud)
正确引导的唯一方法是使用驱动器的 UUID。
grub> ls -l (hd2,gpt2)
Run Code Online (Sandbox Code Playgroud)
记下 UUID。您必须在下一步中手动键入它。
grub> linux /boot/vmlinuz?Tab here!?.efi.signed root=UUID=?the UUID from above?
Run Code Online (Sandbox Code Playgroud)
GRUB 控制台可以完成 tab 补全,所以如果你只是输入 vmlinuz 部分并点击tab,然后点击 。并tab再次,你就不必键入整个文件名。确保efi.signed零件存在。
现在,设置初始 RAM 磁盘
grub> initrd /boot/initrd?Tab here!?
Run Code Online (Sandbox Code Playgroud)
您应该能够从硬盘驱动器启动命令
grub> boot
Run Code Online (Sandbox Code Playgroud)

您现在已经启动到新安装的 Ubuntu。下一步是通过将/boot/efi分区重新格式化为Mac 期望的 HFS+ 文件系统,并允许您直接从它启动,从而使启动自动且无痛苦。
现在,打开一个终端并输入
sudo add-apt-repository ppa:detly/mactel-utils
sudo apt-get update
sudo apt-get install mactel-boot hfsprogs gdisk grub-efi-amd64
Run Code Online (Sandbox Code Playgroud)
运行mount以获取已安装文件系统的列表,并查找在 /boot/efi 中安装的任何内容。卸载它。
sudo umount /dev/sda1
Run Code Online (Sandbox Code Playgroud)
我们现在使用gdisk删除VFAT分区并创建一个HFS+一个
sudo gdisk /dev/sda
Run Code Online (Sandbox Code Playgroud)
(请注意,该磁盘名称的末尾没有数字!)
按 p
确认第一个分区的类型为EF00。现在我们删除那个EF00分区。
按 d
在其位置创建一个新的 HFS+。
按 n
按回车键进入第一个和最后一个扇区选项。
输入AF00文件系统代码。
使用该p命令仔细检查您的更改,然后w进行写入。
现在我们有一个未格式化的 HFS+ 分区。使用以下格式对其进行格式化:
sudo mkfs.hfsplus /dev/sda1 -v ubuntu
Run Code Online (Sandbox Code Playgroud)
编辑 /etc/fstab
sudoedit /etc/fstab
Run Code Online (Sandbox Code Playgroud)
删除引用/boot/efiusing的行Ctrl+K。
现在,键入以下命令 -
sudo bash -c 'echo $(blkid -o export -s UUID /dev/sda1) /boot/efi auto defaults 0 0 >> /etc/fstab'
mount /boot/efi
Run Code Online (Sandbox Code Playgroud)
sudo bash -c 'echo "This file is required for booting" > /boot/efi/mach_kernel'
Run Code Online (Sandbox Code Playgroud)
安装 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"
Run Code Online (Sandbox Code Playgroud)
编辑一些故障排除:在 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.
Run Code Online (Sandbox Code Playgroud)
再次运行它后,strace我确定它不是在寻找名为 的文件/boot/efi/mach_kernel,而是/boot/efi/EFI/ubuntu/mach_kernel在创建该文件后调用的文件,然后重新运行grub-install一切似乎都有效。结束编辑
要设置默认的 EFI 引导条目,请运行
sudo efibootmgr
Run Code Online (Sandbox Code Playgroud)
摆脱额外的条目 -
sudo efibootmgr -b xxxx -B
Run Code Online (Sandbox Code Playgroud)
其中 xxxx 是从 sudo efibootmgr
现在,设置默认条目 -
sudo efibootmgr -o xxxx
Run Code Online (Sandbox Code Playgroud)
系统现在应该可以启动了!
Jason Heeris - 对于他的原始帖子,使用了 PPA。
Rohith Madhavan - 对于 Ask Ubuntu 上的帖子,稍作修改。
| 归档时间: |
|
| 查看次数: |
22384 次 |
| 最近记录: |