如何从外部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 
    • 使用gdiskmkfs.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美元),但根据你的情况,它可能是值得的。