如何从外部 USB 存储在 Mac 上启动 Ubuntu?

Col*_*jac 18 mac boot usb uefi

我希望从外部 USB 存储设备(外部磁盘或闪存驱动器)在我的 iMac 上运行 Ubuntu。

我可以轻松创建一个可启动的 USB 记忆棒,并使用它来将 Ubuntu 14.04 安装到正确分区的 USB 设备上。但是,与此处和其他地方的某些断言相反,重新启动后,Mac 未检测到结果可启动。

我已经在 Google 上进行了广泛的搜索,我确信可以让 Mac 启动它,但是我发现的说明要么太模糊(在外置硬盘上安装 Ubuntu 并在 Mac 中启动),要么在一种情况下,太复杂(http://www.rodsbooks.com/ubuntu-efi/)没有多大意义。但是,常见的线程似乎是使用 rEFInd 来重新调整引导选项。

所以,我已经设法在外部驱动器的分区上安装了 rEFInd,但它没有检测到 Ubuntu 安装。我在同一个磁盘上有一个 ext2 /boot 分区,并将 ext2_x64.efi 复制到 /EFI 目录中,但没有成功。

我在这一点上有点卡住了,接下来的步骤必须是对引导加载程序和 EFI 的详细研究。但是,我认为我必须接近破解此问题,并希望有人可以在某处指向分步指南。

回顾一下:

  • USB 磁盘有 ext2 /boot 分区(上面有 vmlinuz 映像)和 ext4 / 分区,安装了 Ubuntu 14.04 的其余部分
  • 安装后无法启动
  • 将 rEFInd 放在另一个包含 /EFI 目录的 FAT32 分区上
  • 将 ext2_x64 复制到 /EFI/boot 和 /EFI/refind
  • 可以启动,rEFInd 加载,有一个选项可以启动 ext2_x64.EFI(?) 但没有 Ubuntu/vmlinuz。

如果我能解决这个问题,我会在网上某处放置一个清晰的指南!

Col*_*jac 25

好吧,我花了一整天的时间在它上面,现在我已经破解了它。

我真诚地希望其他一些可怜的灵魂能从中得到一些价值。

这是一个有效的方法(至少,在我的 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-install -–usedefault /dev/disk3s1
    
    Run Code Online (Sandbox Code Playgroud)

    (您可以将文件拖入命令提示符以获取完整路径)

然后当你重新启动时,你可以“EFI Boot”到 rEFInd,并且应该有一个启动 GRUB/linux 的选项。

我在这里更详细地记录了这一点:http : //coljac.net/2014/stuff/installing-ubuntu-onto-a-bootable-usb-stick-or-other-device-on-a-mac/

  • 4天过去了!&现在我在这里,谢谢你:) (3认同)

mmi*_*ier 8

如果您不想更改 Mac 的默认引导加载程序并且可以从任何 Mac 引导您的 USB 密钥,这里是我找到的解决方案:

  • 通过选择“Try Ubuntu without installation”来启动 Ubuntu live 版本
  • 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
      
      Run Code Online (Sandbox Code Playgroud)
    • 使用gdiskmkfs.hfsplus用 Apple HFS/HFS+ 替换现有分区

    • 替换现有条目UUID=... /boot/efi vfat defaults 0 1中的/etc/fstab文件,UUID=<your usb EFI partition uuid> /boot/efi auto defaults 0 0
    • 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'
      
      Run Code Online (Sandbox Code Playgroud)
    • 安装 GRUB:

      $ sudo grub-install --target x86_64-efi --boot-directory=/boot --efi-directory=/boot/efi --bootloader-id="$(lsb_release -ds)"
      
      Run Code Online (Sandbox Code Playgroud)
    • 保佑引导加载程序代码:

      $ sudo hfs-bless "/boot/efi/EFI/$(lsb_release -ds)/System/Library/CoreServices/boot.efi"
      
      Run Code Online (Sandbox Code Playgroud)
    • 创建 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
      
      Run Code Online (Sandbox Code Playgroud)

现在只需在启动时按住“Option”键,即可从任何 Mac 启动系统。

带有 Ubuntu 条目的 Mac 启动菜单的图像

我在这里详细说明了:U盘上的Ubuntu安装纯EFI引导(Mac兼容)