如何从外部USB存储器启动Mac上的Ubuntu?
我希望从外部USB存储器(外部磁盘或闪存驱动器)在我的iMac上运行Ubuntu。
我可以轻松创建一个可启动的USB记忆棒,并使用它将Ubuntu 14.04安装到正确分区的USB设备上。 但是,与此处和其他地方的某些断言相反,重新启动后,Mac检测不到可引导的结果。
我已经广泛搜索了谷歌,我确信它可以让Mac启动它,但是我发现的指令要么太模糊( 安装Ubuntu和外置硬盘并在Mac上启动 )或者在一种情况下,太复杂了( http://www.rodsbooks.com/ubuntu-efi/ )很有意义。 但是,公共线程似乎使用rEFInd来重新启动引导选项。
所以,我设法将rEFInd安装在外部驱动器上的分区上,但它没有检测到Ubuntu的安装。 我在同一磁盘上有一个ext2 / boot分区,并将ext2_x64.efi复制到/ EFI目录中,但没有去。
我现在有点陷入困境,接下来的步骤必须是对bootloaders和EFI的详细研究。 但是,我认为我必须接近破解这一点,并希望有人可以指出某个地方的分步指南。
回顾一下:
- USB磁盘有ext2 / boot分区(上面有vmlinuz映像),以及安装了Ubuntu 14.04其余部分的ext4 /分区
- 安装后无法启动
- 将rEFInd放在另一个包含/ EFI目录的FAT32分区上
- 将ext2_x64复制到/ EFI / boot和/ EFI / refind
- 可以启动,rEFInd加载,有一个选项来启动ext2_x64.EFI(?)但没有Ubuntu / vmlinuz。
如果我能解决这个问题,我会在网上找到一个明确的指南!
好吧,我花了整整一天时间,现在我已经破解了它。
我真诚地希望其他一些可怜的灵魂从中获得一些价值。
这是一个有效的配方(至少在我的iMac上使用Ubuntu 14.04):
- 使用可启动USB启动,安装Ubuntu
- 按如下方式对USB进行分区:
- 200MB EFI启动分区
- 200MB ext2,挂载到
/boot
- 如果需要,可以交换空间
- 一个或多个其他分区以保持Ubuntu正常(例如ext4 on
/
)
- 完成安装,重启到OS X.
- 获取gdisk(OS X的pkg安装程序)和rEFInd二进制文件
- 从控制台执行“diskutil list”并记下设备名称和EFI分区(例如
/dev/disk3
,/dev/disk3s1
) - 请参阅http://www.rodsbooks.com/ubuntu-efi/上的 “修复安装”第6点中的gdisk配方
-
在USB的EFI分区上安装rEFInd。 从refind目录:
./refind-install -–usedefault /dev/disk3s1
(您可以将文件拖到命令提示符中以获取完整路径)
然后当你重新启动时,你可以“EFI Boot”到rEFInd,并且应该有一个选项来启动GRUB / linux。
我在这里更详细地记录了这一点: http : //coljac.net/2014/stuff/installing-ubuntu-onto-a-bootable-usb-stick-or-other-device-on-a-mac/
如果您不想更改Mac的默认启动加载程序,并且可以从任何Mac启动USB密钥,那么我找到了解决方案:
- 通过选择“试用Ubuntu而不安装”来启动Ubuntu实时版本
- 通过终端通过
ubiquity --no-bootloader
命令启动安装程序,防止任何引导加载程序安装 - 擦除并在目标USB驱动器上安装Ubuntu
- 重新启动Mac并使用Ubuntu live USB启动grub命令行,并在GRUB引导程序出现时按“c”
- 执行已安装的Ubuntu系统的手动启动
-
修复EFI分区:
-
安装所需的包:
$ sudo apt-get update $ sudo apt-get install mactel-boot hfsprogs gdisk grub-efi-amd64
-
使用
gdisk
和mkfs.hfsplus
用Apple HFS / HFS +替换现有分区 - 在
/etc/fstab
文件中用UUID=
替换现有条目/boot/efi auto defaults 0 0 UUID=... /boot/efi vfat defaults 0 1
- 运行
sudo mount /boot/efi
-
创建所需的目录和文件:
$ sudo mkdir -p "/boot/efi/EFI/$(lsb_release -ds)/" $ sudo bash -c 'echo "This file is required for booting" > "/boot/efi/EFI/$(lsb_release -ds)/mach_kernel"' $ 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 --bootloader-id="$(lsb_release -ds)"
-
保佑引导程序代码:
$ sudo hfs-bless "/boot/efi/EFI/$(lsb_release -ds)/System/Library/CoreServices/boot.efi"
-
创建GRUB配置:
$ sudo sed -i 's/GRUB_HIDDEN/#GRUB_HIDDEN/g' /etc/default/grub $ sudo sed -i 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=0.1/' /etc/default/grub $ sudo grub-mkconfig -o /boot/grub/grub.cfg
-
现在只需在启动时按住“Option”键即可从任何Mac启动系统。
带有Ubuntu条目的Mac启动菜单的图像
我在这里详细说明: Ubuntu安装在USB棒上,带有纯EFI启动(兼容Mac)
我跳过了解决方案中提到的整个gdisk。 这对我有用
./refind-install -–usedefault /dev/
我的故事(对于有相同问题的人有用 – 所以轮到我帮助社区了):我在2013年底的iMac上安装了外置USB 3.0硬盘上的Ubuntu。我在外部驱动器上创建了以下分区方案:
EFI (200MB FAT), BOOT (200MB EXT2) and / (20GB EXT4)
我选择将引导加载程序添加到外部驱动器(而不是iMac驱动器)安装成功后, 当我无法启动OS X时 , 我感到很震惊。这很奇怪,因为我没有在主驱动器上安装任何引导加载程序。 如果我删除了外部驱动器, 我会得到一个带有grub提示命令的黑屏!
在恐慌中,我在网上研究,我决定尝试rEFInd。 从.deb源安装后( http://www.rodsbooks.com/refind/installing.html – 建议从.deb文件安装以修复Ubuntu 16.x版本的问题 – #dpkg # dpkg -i refind_0.10.3-1_amd64.deb
)我可以启动我的OS X.
要恢复原始启动菜单(和沟渠Linux),您可以在OS X上使用启动磁盘实用程序,或者您可以安装EFI分区并使用“ sudo rm ...
”命令,删除“refind”和“Ubuntu” “该分区上的文件夹。
重新启动,一切都会像以前一样工作。
在外部驱动器上安装OSX的全新副本,然后将Ubuntu安装在与双启动系统相同的外部驱动器上。 一旦安装完成,Ubuntu将从USB驱动器启动,如果它已插入。如果USB驱动器被删除,您将获得一个Grub命令行。 只需输入“exit”即可启动内部OSX安装。 插入USB驱动器以加载Ubuntu。
这使得原始OSX安装不受影响。
我能够在64GB的USB闪存驱动器上安装Ubuntu然后安装Kubuntu,它运行得很好。 我刚刚安装了Kodi,它在闪存驱动器上运行得非常好。 我只有USB 2.0所以它有点慢。 我最终安装了Kubuntu,因为Plasma 5.0桌面环境在思考方面比Ubuntu使用的更加精致。
我希望这有助于简化一些事情。 这不是最优雅或最技术的方式,所以它并不完美,但它的工作原理。
我从来没有幸运的直接外部USB连接,但不久前我拿起了希捷GoFlex霹雳适配器,并能够轻松地在连接到它的外部SATA上启动27“iMac到ubuntu。我使用了rEFInd但没有确保它是必要的。希捷试图创造一种印象,你需要使用一个连接到它的驱动器,但标准笔记本电脑大小的SATA驱动器工作正常。我确实需要稍微垫片驱动器以正确安装shell。真的是你在这里寻找的答案,而且它不是一个廉价的解决方法(如果我没记错的话,大约80美元),但根据你的情况,它可能是值得的。