在分区上创建可启动的 Ubuntu USB,而不是覆盖整个 USB 驱动器

在分区上创建可启动的 Ubuntu USB,而不是覆盖整个 USB 驱动器

我有一个 64 GB 的 USB 闪存盘,其中有两个分区,大约 10 GB(第一个)和 54 GB。

我使用的是 macOS,我知道如何通过使用创建可启动的 USB 驱动器,diskutil erasedisk然后dd将最新的 Ubuntu 安装程序 .iso 映像复制到 USB 设备。这将删除所有先前存在的分区,然后将整个 UBS 驱动器设置为一个可启动卷。

有没有办法保持第二个分区完好无损,只使用第一个 10GB 分区来设置 Ubuntu 安装程序,以便设备仍然可以启动?

如果需要,我还可以删除 10GB 分区并创建一个较小的分区或其他东西来代替它。但我只想保持第二个分区(54GB)原样。

答案1

简单的 mkusb ISO 引导程序

在修改后的 mkusb 闪存驱动器上启动操作系统 ISO 很容易。

使用 mkusb 制作一个持久 USB 驱动器,使用你选择的默认操作系统,https://help.ubuntu.com/community/mkusb

在 usbdata 分区 sdx1 中创建一个名为 ISOs 的文件夹。

将要启动的 ISO 添加到此文件夹。

将菜单条目添加到 /sdx3/boot/grub/grub.cfg 以循环安装 ISO。

样品:

menuentry "Ubuntu-18.04 64-bit ISO" {
    set root=(hd0,1)
    set isofile="/ISOs/ubuntu-18.04-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile splash --
        initrd (loop)/casper/initrd.lz
}

menuentry "GParted 64-bit ISO" {
    set root=(hd0,1)
    set isofile="/ISOs/gparted-live-0.31.0-1-amd64.iso"
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live union=overlay username=user config components noswap noeject toram=filesystem.squashfs ip='' nosplash findiso=$isofile splash --
    initrd (loop)/live/initrd.img
}

menuentry "Clonezilla 64-bit ISO" {
    set root=(hd0,1)
    set isofile="/ISOs/clonezilla-live-2.5.5-38-amd64.iso"
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live live-config nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\"   ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788   ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile splash --
    initrd (loop)/live/initrd.img
}

如果您不需要持久性,您可以删除 casper-rw 分区。

您可以保留或删除 ISO9660 分区。

可以根据需要扩大或缩小 usbdata 分区。

相关内容