如何在 Mac 上创建一个可持久化的 Ubuntu USB,可以从 Mac 或 PC 启动?

你好,我已经成功地使用unetbootin创建了一个实时的Ubuntu USB(12.04.3 64位,8GB LiveUSB),但它不是持久的,并且无法在Mac上启动。
或者,如果有人有任何关于如何编辑.iso文件以便从Mac启动并保持持久性的建议,那也太好了。我正在运行OSX Mavericks,所以应用程序也必须在Mavericks上运行。
我尝试按照http://ubuntuforums.org/showthread.php?t=2174630中的建议进行操作,选择了GUID分区(而不是MBR),然后在grub.cfg文件中添加了persistent单词。在我启动并更改了一些设置之后,我尝试使用ubuntu菜单中的重新启动选项重新启动,但没有成功。我手动关闭并重新打开了电脑,但第二次尝试启动时,我通过了Ubuntu标志,然后屏幕变黑。我多次尝试了这个过程,结果都是一样的。以下是我的grub.cfg文件中的文本内容:
if loadfont /boot/grub/font.pf2 ; 
then set gfxmode=auto insmod efi_gop insmod efi_uga insmod gfxterm terminal_output gfxterm 
fi 

set menu_color_normal=white/black   
set menu_color_highlight=black/light-gray 

menuentry "Try Ubuntu without installing" 
{ set gfxpayload=keep linux /casper/vmlinuz.efi persistent file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash -- 
initrd  /casper/initrd.lz } 

menuentry "Install Ubuntu" 
{ set gfxpayload=keep linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash -- 
initrd  /casper/initrd.lz }


menuentry "Check disc for defects" 
{ set gfxpayload=keep linux /casper/vmlinuz.efi boot=casper integrity-check quiet splash -- 
initrd  /casper/initrd.lz }

你使用的是哪个版本的Ubuntu和什么类型的Mac?你使用的是32位还是64位的镜像?请提供更多细节。 - Jo-Erlend Schinstad
1这是版本12.04.3,我正在使用64位的镜像。我有一个8GB的USB驱动器。 - Jeremy Gleeson
我也遇到了类似的问题。我成功启动了引导程序,但是它并不持久,而且在我的 grub.cfg 文件中添加了 "persistent" 后,启动时会卡在 Ubuntu 标志后的黑屏界面。@JeremyGleeson,你找到解决方法了吗? - user2347638
6个回答

你应该可以使用diskutil来完成这个任务。我最后一次在Sierra上使用了这种方法,所以对于更高版本的系统可能会有所不同。
$ diskutil list
$ diskutil eraseDisk FAT32 UBUNTU /dev/<YOUR USB DISK ID>
$ diskutil unmountDisk /dev/<YOUR USB DISK ID>
$ sudo dd if=<path to ubuntu live iso> of=/dev/<YOUR USB DISK ID>

一旦完成,您需要重新启动并从Live USB启动。
启动后,在终端中启动gparted。
选择USB驱动器,并选择其中的未分配分区。
创建一个新分区,将其标记为ext3/ext4(不确定其他文件系统是否可行,从未尝试过),并使用标签persistence。
退出gparted。
为您的新持久性分区创建一个挂载点。 $ mkdir -p /mnt/ubuntu_usb $ mount /mnt/ubuntu_usb
要启用持久存储,您需要一个persistence.conf文件。
$ echo "/ union" > /mnt/ubuntu_usb/persistence.conf
$ umount <DISK>

重新启动Mac并按住Option键。现在您应该有一个Ubuntu(持久性)的选项可以引导了。

克隆和可能的第二步
你可以使用一步或两步的程序。dd是一个强大但也危险的工具,在MacOS中“始终”可用。在开始克隆过程之前,请非常小心,检查和反复确认一切是否正确。
  • 一步:如果你找到一个[压缩]的Ubuntu [基于]系统的镜像文件,它是持久化的,并且可以满足你的需求,将其克隆到USB闪存驱动器或存储卡中。如果下载的文件是压缩的,在克隆之前需要解压缩,例如

    file.img.zip --> file.img

    file.img.xz --> file.img

    卸载目标驱动器上的所有分区并运行dd

    sudo dd bs=1m if=path_of_your_image.img of=/dev/rdiskn
    

    其中n是一个数字(例如,/dev/rdisk4)。

    这个链接中有一些提示。

  • 两步:下载并克隆一个[压缩]的Ubuntu [基于]系统的镜像文件,它是持久化的,并包含mkusb。

    从通过克隆制作成可引导的USB闪存驱动器或存储卡启动。

    下载所需的Ubuntu版本和风格的iso文件,以便安装为持久化系统。

    运行mkusb-dus并在另一个USB驱动器或存储卡中创建一个持久化系统

  • 链接

    在Mac OS上安装操作系统镜像(www.raspberrypi.org)

    help.ubuntu.com/community/mkusb

    help.ubuntu.com/community/mkusb/persistent

    带有持久化系统和mkusb的压缩镜像文件


有人能在Mac上成功运行吗?我按照这些步骤操作,但使用mkusb-dus创建的USB无法启动,尽管使用另一种方法写入时相同的映像可以启动。 :( - Derwent
@Derwent,请尽可能详细地描述你使用的方法。在每个步骤中使用了哪个操作系统?在每个步骤中使用了哪个工具以及如何使用它?你尝试安装的是哪个操作系统和版本(使用了哪个iso文件或img文件)?你是尝试克隆还是创建一个持久化的live系统? - sudodus
嘿@sudodus,我在Debian Stretch Livedisk上安装了mkusb-dus,并使用相同的live image在另一个USB上创建了持久性。我在这里使用了gnome image:https://cdimage.debian.org/debian-cd/current-live/amd64/bt-hybrid/ 不幸的是,在我的Macbook Pro Retina 11,3 Mid-2014上,它没有显示为可启动的,因为它有特殊的分区表要求才能启动。它将启动我dd'd到驱动器上的live disk,但不会启动使用mkusb创建的驱动器。Mkusb支持Mac硬件吗?谢谢。 - Derwent
  1. mkusb 的标准方法是克隆 ISO 文件或镜像文件。在执行此操作时,它“仅”在 dd 周围包裹了一个安全带,因此它应该适用于所有克隆映像有效的情况。在您的情况下,使用 dd 克隆有效,使用 mkusb 克隆也应该有效;2. 在 mkusb 中创建持久化 Live USB(驱动器)的方法适用于 PC 计算机,未在 Mac 硬件上进行测试。它可能有效也可能无效,这取决于硬件和 UEFI/BIOS 系统。
- sudodus
@Derwent,所以我的答案是Mac硬件不支持持久化的可启动驱动器。在某些情况下它可能会工作,但在mkusb的开发过程中并没有进行积极测试。一个可能有效的替代方法是在以下链接中描述的“自己动手”方法:https://help.ubuntu.com/community/Installation/iso2usb 和 https://help.ubuntu.com/community/Installation/iso2usb/diy 。如果您尝试了这种方法,请分享您的结果,我将修改我的答案。 - sudodus


1我尝试了这个,在启动并更改了一些设置之后,我尝试使用Ubuntu菜单中的重新启动选项进行重启,但没有成功。我手动关闭并打开了电脑,但第二次尝试启动时,我通过了Ubuntu标志,然后屏幕变黑了。我多次尝试这个,结果都一样。这是我从grub.cfg文件中的文本。 - Jeremy Gleeson
1如果加载字体 /boot/grub/font.pf2;那么 设置图形模式=自动 插入 efi_gop 模块 插入 efi_uga 模块 插入 gfxterm 模块 设置终端输出为 gfxterm设置菜单正常颜色为白色/黑色 设置菜单高亮颜色为黑色/浅灰色菜单项“在不安装的情况下尝试 Ubuntu” { 设置图形负载保持不变 linux /casper/vmlinuz.efi persistent file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash -- initrd /casper/initrd.lz } 菜单项“安装 Ubuntu” { 设置图形负载保持不变 linux /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash -- initrd /casper/initrd.lz } - Jeremy Gleeson
1菜单项 "检查光盘是否有缺陷" { 设置 gfxpayload=keep linux /casper/vmlinuz.efi boot=casper integrity-check quiet splash -- initrd /casper/initrd.lz } - Jeremy Gleeson
1如果你知道一种方法可以让GRUB自动引导到“试用Ubuntu而不安装”的选项,那将不胜感激。 - Jeremy Gleeson

如果您需要让Mac从Ubuntu USB启动,Ubuntu网站上有一份详细的指南解释如何将磁盘映像复制到USB上
另外,如果您可以使用Windows,可以下载Rufus。在选择映像类型时,请选择DD并选择所需的ISO文件(Ubuntu ISO是混合模式,意味着可以以ISO或DD模式复制)。DD是您想要的那个,这很重要。还请确保将分区方案/目标系统类型设置为MBR适用于BIOS和UEFI。
至于持久性,如果其他人能够补充/改进我的回答,请随时这样做,因为我没有设置持久卷的经验。

简化版:在grub.cfg中添加"persistent"导致了我的引导问题(卡在同一黑屏界面)。通过添加casper-rw文件来修复,现在我可以持久化使用啦 :)

背景:我正在运行High Sierra,安装的是Ubuntu 16.04,64位版本。使用Disk Utility将USB擦除并设置为MS-DOS(FAT32)格式。下载了Ubuntu ISO,并使用UNetbootin将其安装到U盘上。最初能够成功引导,但希望Linux能够识别我的MacBook上的触控板和键盘。进行了设置并重新启动后,所有设置都丢失了,无法持久化 :(

我在grub.cfg中添加了"persistent"后,在Ubuntu标志屏幕之后系统就卡住了。结果发现需要在U盘根目录下创建一个名为casper-rw的文件,方法是运行以下命令:

dd if=/dev/zero of=casper-rw count=3500

将3500替换为您希望您的Live USB拥有的存储容量大小。我了解到FAT32仅支持4GB以下的文件传输,所以您可能要考虑这一点。

我只在桌面上测试了几个文件,但引导和持久化都正常。

在这里得到了这个想法。

实际上,我正在使用2013年的Mac Air,它是64位的。我已经安装了64位的Ubuntu 13.10版本。我完全按照相同的指示进行操作,事实上我已经使用过很多次了。在这一点上,你可以尝试按照指示进行操作,这一次要按照原样进行。我的意思是选择MBR而不是GUID。如果你的启动文件夹中没有grub.cfg文件,那没关系。但是,请检查syslinux.cfg文件中是否有persistent这个词。如果有的话,应该可以完美运行。对我来说有效,希望对你也有效。尝试调整.cfg文件,你肯定能做到。