问题描述
我想将 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” 名称仍然会出现一次:)
-
你的目标U盘必须至少有两个分区;我推荐使用 GParted 创建一个新的分区表。
-
第一个分区必须是 vfat/FAT32,并且最小大小为 750 MB(如果您使用的是 Live DVD 映像,则更大)。
-
第二个分区应该是 ext4,大小为您希望持久存储的大小(无限制),但必须标记为
casper-rw
(全部小写,无引号)
-
当然,如果您愿意,您可以添加第三、第四、扩展/逻辑分区等。
注意:我更喜欢使用 UNetbootin,因为它使编辑 syslinux 配置变得容易。您可以使用自己的 USB 创建器,但您应该适当修改以下步骤。另请注意,GParted 0.18.0 似乎在对 USB memory 棒进行分区时存在问题。因此,如果您遇到问题,请使用 Live GParted CD 进行分区。
-
-
使用 UNetbootin 将您选择的 live CD ISO 写入第一个 (vfat) USB 分区。
-
为 UNetbootin 的持久性选项设置一个很小的大小(例如,10 MB)以使生活更轻松;别担心,我们实际上不会使用这个 casper-rw 文件。
-
-
一切都完成后,最后一步是删除在安装 live CD 的 vfat 分区上创建的小
casper-rw
文件,以便使用大的 ext4casper-rw
分区。挂载此分区(此处为sdb1
),然后删除/casper-rw
。 -
如果您使用了 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/
Mkusb 是一个 grub2 类型的可引导闪存驱动器制造商,它使用 FAT32 分区进行引导,一个只写 ISO9660 分区用于操作系统,一个 ext4 casper-rw 分区用于持久性以及一个 Linux 和 Windows 均可访问的 NTFS 数据分区。
https://help.ubuntu.com/community/mkusb
它应该满足您的规格。