使用 Ubuntu 创建 Live USB

使用 Ubuntu 创建 Live USB

我希望从我的 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 上的帖子,做了微小的修改。

相关内容