使用Rufus创建带有持久存储的Ubuntu Live USB驱动器时出现问题。

我正在尝试使用Rufus 3.9.1624创建一个带有持久存储(1 GB)的Ubuntu 18.04 USB驱动器(16 GB)。我按照以下设置运行了Rufus。然而,在启动USB驱动器时,我遇到了以下屏幕,显示BusyBox和initramfs提示符。我甚至尝试使用另一个USB驱动器,但是出现了相同的问题。但是,如果禁用持久存储,那么它可以正常工作(我还尝试使用较低的持久存储量,即100 MB)。是否还需要进行其他配置才能使其与持久存储一起正常工作?

欢迎来到Ask Ubuntu。你的casper-rw分区满了吗?这会导致持久化驱动无法启动。100MB太小了。 - C.S.Cameron
@C.S.Cameron,18.04 + 持久性 + 将 /cow 挂载到 /root 失败 = https://bugs.launchpad.net/bugs/1489855,请确保你记住这个问题,因为在 20.04 发布之前(它带来了自己的一些问题问题),我们将继续看到人们一遍又一遍地报告这个问题... - Akeo
@Akeo:据我回忆,这个问题始于大约14.04年,涉及在同一驱动器上使用casper-rw分区的Syslinux启动程序。这个问题不适用于使用casper-rw分区的Grub启动程序,例如mkusb和手工制作的Grub ISO多重启动程序。我几乎忘记了Rufus直到最近才包括持久性。我今天还没有尝试过使用Persistent 18.04的Rufus。 - C.S.Cameron
关于Syslinux引导程序的问题,你的说法是不正确的。如果你仔细阅读了这个错误报告,就会发现它与Syslinux无关(只要你创建了两个分区,并将ISO的全部内容复制到第一个分区,然后使用ISO中默认的GRUB UEFI引导程序以UEFI模式启动,这个问题就会出现)。所以,“Grub引导程序”确实存在问题。此外,你对Rufus是“Syslinux”引导程序的断言也是错误的(至少对于UEFI而言是如此,但在BIOS方面,我们只是使用ISO所使用的引导程序,如果Ubuntu在BIOS上使用GRUB,Rufus也会像对待其他镜像一样使用GRUB)。 - Akeo
@Akeo:如果你以正确的方式进行操作,制作一个使用持久分区的Grub2引导程序并不是问题。首先创建一个1MB的grub2 core.img分区,并标记为bios_grub。接下来添加一个250MB的FAT32 EFI分区,并标记为boot,esp。然后再添加一个足够大的ext4分区用于存放Ubuntu ISO的内容,最后再添加一个ext4 casper-rw分区和一个NTFS数据分区(如果需要)。将ISO的内容复制到根分区,并将boot和EFI文件夹重新复制到EFI分区。将EFI分区挂载到mnt,并安装Grub。在grub.cfg中添加set root=(hd0,3)。我认为Grub2不喜欢FAT32根分区。 - C.S.Cameron
@C.S.Cameron: "如果你以正确的方式做" 哦,是的,当然有一种"正确"的方式和一种"错误"的方式!而且我猜__你__是那个决定哪种是"正确"哪种是"错误"的人?你应该意识到,你描述的方法对于Windows用户来说非常不实用,因为他们无法挂载ext分区来复制数据(与创建一个空的ext分区相反,这并不难)。而且,你断言_"Grub2不喜欢FAT32根目录"_是完全错误的(这是一个可以验证的错误),正如我指出的错误报告所示。 - Akeo
2个回答

如果您进行快速搜索,您会发现许多带有错误的帖子:
mount: mounting /cow on /root failed: Invalid argument
overlay mount failed

由于Ubuntu 18.04存在一个重大错误MAJOR BUG,导致无法挂载位于同一驱动器上的持久分区,而这个错误只在Ubuntu 19.10中修复。因此,您必须选择以下操作之一:
  • 如果您想在Rufus中添加持久性,请使用Ubuntu 19.10。
  • 完全禁用持久性。
下次请尝试搜索您收到的错误信息,因为您应该能找到已有的问题并得到所需答案。

持久分区 18.04

从14.04到18.04版本,除非casper-rw分区位于独立的驱动器上,否则Syslinux引导的USB设备无法使用持久分区。

Mkusb(https://help.ubuntu.com/community/mkusb)使用Grub2进行引导,可以正常使用持久分区。

您可以将mkusb下载并安装到您的Live Rufus驱动器上,并使用它在第二个USB设备上安装持久化的Ubuntu。也可以将持久化的Ubuntu安装到已启动的Live Rufus驱动器上。(Can a Persistent Ubuntu install be made to the pendrive it was booted from?)

将Live USB转换为持久化USB

也可以通过使用casper-rw文件将Rufus Live USB更改为Persistent USB:我能将一个带有持久内存的Ubuntu USB转换成一个吗? 大小限制为4GB(或添加home-rw文件可达8GB)。

1除非casper-rw分区位于独立驱动器上,否则无法使用Syslinux引导的USB启动盘。这个说法是不正确的,它也会影响到EFI GRUB。另外,“Rufus使用Syslinux制作可启动的USB”也是错误的。以上有一些不准确的地方,请尽量予以纠正。 - Akeo
@Akeo:如果我的说法不正确,请向我们展示一个能够与持久分区一起工作的Syslinux安装程序。根据我的经验,使用mkusb和手动制作的Grub2安装可以正常使用相同磁盘上的持久分区。然而,对于Ubuntu 14.04至18.04版本的Syslinux安装来说,持久分区是无法正常工作的。当从BIOS模式启动时,Rufus 3.9 Ubuntu安装会显示Syslinux标头;而在尝试以UEFI模式启动时,它会显示GRUB标头,就像其他能在UEFI模式下正常工作的安装程序一样。 - C.S.Cameron
我的经验表明,使用mkusb和手动创建的Grub2安装的同一磁盘持久分区是有效的。然后,请阅读该错误报告,因为它指出了手动创建的GRUB 2 UEFI媒体的故障。您只需要创建两个分区,在第一个分区(FAT32)上提取整个ISO内容,并在第二个分区上设置持久分区,然后您将会遇到“挂载/cow到/root失败”的错误。我所描述的是一种常见的创建持久媒体的方法,不需要Rufus或mkusb,并且在18.04版本中完全失败。 - Akeo
我遇到的问题是,你似乎将Rufus呈现为Syslinux安装程序(这是不正确的),并将其视为有问题的实体(这也是不正确的)。因为mkusb团队似乎注意到了问题,并在他们的应用程序中添加了一个重要的解决方法(因为它似乎在GRUB/UEFI模式下工作,而不应该如此),而不是与Ubuntu开发人员合作解决此问题,这正是我们所做的。换句话说,你似乎在曲解问题,使其看起来像是Rufus特定的问题,这是非常不正确的。 - Akeo
事实是,Rufus并不添加Syslinux或GRUB,它只是遵循ISO使用的引导加载程序,并重复使用ISO维护者选择的引导加载程序。因此,当Ubuntu决定在BIOS中使用Syslinux,在UEFI中使用GRUB时,Rufus也会跟随这样做。所以,这就是你的推理中存在一个重大问题的部分,mkusb之所以能够工作是因为它“使用”了GRUB2,而Rufus之所以失败是因为它“使用”了Syslinux,这是不正确的,因为正如我解释的那样,你可能会遇到GRUB2持久性故障,而Rufus并不强制执行任何规定,而是按照ISO已经使用的方式进行操作。所以,请你能否解决这个问题? - Akeo
@Akeo:我不喜欢操作系统的控制权掌握在跨国公司手中。我认为Linux最好的销售工具是可启动的USB驱动器。我花了一些时间尽力帮助他人。SDC和mkusb很有趣且实用,但有点像对牧师讲教。UNetbootin、Universal和Rufus则满足了Windows用户的需求。持久性可启动驱动器甚至比Live驱动器更好的销售工具。Rufus很棒,但我绝对不认为mkusb以任何方式作弊。 - C.S.Cameron
我不喜欢操作系统的控制权掌握在跨国公司手中。这与技术问题有什么关系呢?我绝对不认为mkusb以任何方式作弊。mkusb恰好使用了一种难以手动复制的解决方法(以相当特定的方式创建4个分区),尤其是对于Windows用户来说更加困难。另一方面,如果你以最直接简单的方式创建只有2个分区的持久化设置,嘭!mkusb能够正常工作并不意味着这个错误的严重性无效。 - Akeo