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

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

问题

使用Startup Disk Creator ,可以将LiveCD图像放在USB设备上。 可以使更改持久,但存储在大小限制为几GB的文件中。 所述持久性文件(除了受到大小限制)存在的问题是它不像正常分区上的数据那样可读 。*

我的问题

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

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

TL;博士:

Sytem应该在所有硬件配置上运行,具有LiveCD的全部function,并且可以存储在常规的ext4分区而不使用ramdisks和casper-rw。 FU casper-rw。


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

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

  1. 您的目标USB磁盘必须至少有两个分区; 我建议使用GParted创建一个新的分区表。

    • 第一个分区必须vfat / FAT32 ,最小大小必须为750 MB(如果使用实时DVD映像,则为更大)。
    • 第二个分区应该是ext4 ,大小适合您想要的持久存储(无限制),但必须标记为casper-rw (全部小写,无引号)

    在此输入图像描述

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

    注意:我更喜欢使用UNetbootin,因为它可以轻松编辑syslinux配置。 您可以使用自己的USB创建器,但应该适当地修改以下步骤。 另请注意,GParted 0.18.0似乎在划分USB记忆棒时遇到问题。 因此,如果您遇到问题,请使用实时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文件进行一些编辑,如下所示:

默认直播
标签直播
  菜单标签^尝试Ubuntu而不安装
   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  -
标签live-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  -
标签检查
  菜单标签^检查光盘是否有缺陷
   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  -
标签记忆
  菜单标签测试^内存
   kernel / install / mt86plus
标签高清
  菜单标签^从第一个硬盘启动
   localboot 0x80

自14.04以来,持久性分区无法与syslinux类型的安装(如SDC,UNetbootin,Rufus等)一起使用(除非分区位于单独的驱动器上)。 尝试启动将以BusyBox结束。

Syslinux 6.03完全支持NTFS(以及许多其他fs),因此不再需要满足FAT32的4GB持久文件大小限制。 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

它应该满足您的规格。

值得注意的是,我如何制作永久性闪存驱动器:

Boot Live CD或Live USB。 插入闪存驱动器。 开始gparted。

创建2 GB FAT32分区(位于栏的左侧)。 (大小是可选的,额外的空间可用于文件存储和传输到Windows机器)。

在其右侧创建一个4 GB的ext2分区,标记为“casper-rw”。 (ext3和ext4也有效)。

在剩余空间中创建一个分区并将其标记为“home-rw”。 (可选,创建一个单独的主分区)。

关闭gparted。 卸载并重新安装闪存驱动器。 启动“创建一个实时的usb启动盘”,(usb-creator)。 选择“关闭时放弃”。 按“制作启动盘”。当usb-creator完成时,转到Live USB的根文件夹进入syslinux目录,(或对于根目录中的UNetboot)。使syslinux.cfg文件可写替换文件syslinux的内容。 cfg:

 default persistent label persistent say Booting a persistent Ubuntu session... kernel /casper/vmlinuz append file=/cdrom/preseed/ubuntu.seed boot=casper persistent initrd=/casper/initrd.lz quiet splash noprompt -- 

关机,删除CD,重启。

第一次启动转到用户和组,并以管理员身份创建一个帐户,如果需要,可以使用密码。

注意:上面的代码将绕过Try / Install和Language屏幕。