当前位置: 首页>>技术教程>>正文


grub2 – 如何让 live-USB 使用分区进行持久化?

, , ,

问题描述

我想将 Ubuntu 安装到 USB 硬盘驱动器,以便它可以在所有系统上运行,可以运行 LiveCD 并将持久数据存储在常规 ext4 分区而不是 casper-rw 文件上。在其他任何方面,它都应该像常规的 Ubuntu 安装一样。

问题

使用 Startup Disk Creator 可以将 LiveCD 映像放在 USB-device 上。更改可以持久化,但存储在大小限制为几 GB 的文件中。所述持久文件(除了受大小限制外)还有一个问题,即它不像普通分区上的数据那样可读。*

我的问题

那么我如何在 USB 磁盘上获取 LiveCD 以将更改存储在普通分区而不是持久性文件中呢?此外,持久更改不应该限制在几 GB 的大小,而是在需要时使用许多 100 GB 的整个分区。

我怀疑那里有一个教程,但我的 google-fu 不够好,无法找到它。

tl;博士:

Sytem 应在所有硬件配置上运行,具有 LiveCD 的全部功能,并存储在常规 ext4 分区上,而无需使用 ramdisks 和 casper-rw。 FU casper-rw。


*我知道可以从另一个操作系统挂载 casper-rw 文件并以这种方式获取数据,但这很麻烦。

最佳方案

这很容易做到,尽管 “casper-rw” 名称仍然会出现一次:)

  1. 你的目标U盘必须至少有两个分区;我推荐使用 GParted 创建一个新的分区表。

    • 第一个分区必须是 vfat/FAT32,并且最小大小为 750 MB(如果您使用的是 Live DVD 映像,则更大)。

    • 第二个分区应该是 ext4,大小为您希望持久存储的大小(无限制),但必须标记为 casper-rw(全部小写,无引号)

    • 当然,如果您愿意,您可以添加第三、第四、扩展/逻辑分区等。

    注意:我更喜欢使用 UNetbootin,因为它使编辑 syslinux 配置变得容易。您可以使用自己的 USB 创建器,但您应该适当修改以下步骤。另请注意,GParted 0.18.0 似乎在对 USB memory 棒进行分区时存在问题。因此,如果您遇到问题,请使用 Live GParted CD 进行分区。

  2. 使用 UNetbootin 将您选择的 live CD ISO 写入第一个 (vfat) USB 分区。

    • 为 UNetbootin 的持久性选项设置一个很小的大小(例如,10 MB)以使生活更轻松;别担心,我们实际上不会使用这个 casper-rw 文件。

  3. 一切都完成后,最后一步是删除在安装 live CD 的 vfat 分区上创建的小 casper-rw 文件,以便使用大的 ext4 casper-rw 分区。挂载此分区(此处为 sdb1 ),然后删除 /casper-rw

  4. 如果您使用了 UNetbootin,那么应该已经设置了持久性(通过 persistent 内核选项),所以安全地弹出 USB,您就可以开始了!

PS:如果您不想使用 UNetbootin 并且您在 Ubuntu 中使用“启动盘创建器”,那么您需要对 syslinux/txt.cfg 文件进行一些编辑,如下所示:


default live
label live
  menu label ^Try Ubuntu without installing
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper cdrom-detect/try-usb=true persistent noprompt floppy.allowed_drive_mask=0 ignore_uuid initrd=/casper/initrd.lz quiet splash --
label live-install
  menu label ^Install Ubuntu
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity cdrom-detect/try-usb=true persistent noprompt floppy.allowed_drive_mask=0 ignore_uuid initrd=/casper/initrd.lz quiet splash --
label check
  menu label ^Check disc for defects
  kernel /casper/vmlinuz.efi
  append  boot=casper integrity-check cdrom-detect/try-usb=true persistent noprompt floppy.allowed_drive_mask=0 ignore_uuid initrd=/casper/initrd.lz quiet splash --
label memtest
  menu label Test ^memory
  kernel /install/mt86plus
label hd
  menu label ^Boot from first hard disk
  localboot 0x80

次佳方案

自 14.04 以来,持久分区不适用于 syslinux 类型的安装,例如 SDC、UNetbootin、Rufus 等(除非分区位于单独的驱动器上)。尝试启动将以 BusyBox 结束。

Syslinux 6.03 完全支持 NTFS(以及许多其他文件系统),因此不再需要 4GB 的持久文件大小限制来满足 FAT32。 YUMI 和 RUFUS 一样使用 Syslinux 6.03。

https://www.pendrivelinux.com/yumi-multiboot-usb-creator/

https://rufus.akeo.ie/

Mkusb 是一个 grub2 类型的可引导闪存驱动器制造商,它使用 FAT32 分区进行引导,一个只写 ISO9660 分区用于操作系统,一个 ext4 casper-rw 分区用于持久性以及一个 Linux 和 Windows 均可访问的 NTFS 数据分区。

https://help.ubuntu.com/community/mkusb

它应该满足您的规格。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12169.html,未经允许,请勿转载。