我正在创建一个多启动闪存驱动器,上面有多个 Linux 发行版,我从 grub2 启动它。我目前有一个实时 Ubuntu 安装设置,其中 casper-rw 与 Ubuntu live 位于同一分区;因为我有几个不同的具有持久性的发行版,所以我使用持久路径启动参数将它们分开,这很有效。
但是,安装 Ubuntu 的分区是 FAT32 分区,我想将 casper-rw 移动到单独的 ext2 分区以绕过 4Gb 文件大小限制。我不知道该怎么做。我尝试执行类似 persistence-path=/dev/sdb2/ubuntu 的操作(并将 casper-rw 放在该目录中),但 persistence-path 似乎不知道如何导航设备(当我执行此操作时,我收到一个错误,看起来像是来自 overlayfs,关于 lowerdir 无效)。
在其他发行版中,我可以告诉它将持久性文件放在哪个设备上,并且可以将其与 vmlinuz 所在的设备分开。Ubuntu 可以做到这一点吗?如果可以,怎么做?需要说明的是,我不想创建 casper-rw 分区(因为我希望每个发行版都有单独的 casper-rw 文件)。我只想告诉 grub 在哪个分区中查找我的持久性文件,该分区与我的 Ubuntu 系统文件所在的分区不同。
答案1
YUMI 多重启动
由美将制作一个包含多个大于 4GB 的持久文件的多启动 USB。Persistent=path 不是必需的。
有一个用于 BIOS 启动的版本和一个用于 UEFI 启动的版本。
对于大于 4GB 的 casper-rw 文件,请从 NTFS 格式的驱动器开始。
如果我没记错的话,UEFI 版本仅适用于 FAT32,并且不适用于大型 casper-rw 文件。
https://www.pendrivelinux.com/yumi-multiboot-usb-creator/
也可以看看:Casper-rw 文件大于 4GB - 请确认
多启动完整安装 USB BIOS/UEFI
如今,USB 闪存驱动器越来越大,节省空间来启动压缩文件系统和 ISO 已经不再那么重要。
姆库斯布为自定义多启动 USB 奠定了良好的基础。下面介绍如何制作一个可同时启动 BIOS 和 UEFI 的完整安装 USB,然后进一步将其修改为多启动器(甚至使用 grub2 启动 ISO)。
使用韓國在安装程序 USB(2GB 或更大)上制作 Live 系统。
使用韓國使用默认设置在目标 USB 上创建持久系统,持久性大于 25GB(剩余的 NTFS 分区用作 Windows 可访问数据分区)。选择 upefi 以确保 grub 2.02 进行 ISO 启动。
- mkusb 完成后,立即打开 GParted 并删除 sdx4(ISO9660 分区)并将 sdx5 扩展到恢复的空间,sdx 是目标驱动器的设备名称。
在继续操作之前,请拔下或移除 HDD(可选,但在 UEFI 模式下强烈推荐)。
启动安装程序驱动器,选择尝试。
插入目标驱动器
开始安装 Ubuntu...
选择其他。
选择 sdx5(在目标驱动器上),然后单击“更改”。
- 选择使用为:ext4,格式和挂载点:/。
不要触碰任何其他分区(除非添加 /home 分区)。
选择 sdx5 作为引导加载程序安装设备。
完成安装。
从 sdx5/boot/grub 剪切 grub.cfg 并粘贴到 sdx3/boot/grub,覆盖现有的 grub.cfg 文件。
启动目标驱动器并运行 sudo update-grub 将所有驱动器添加到启动菜单。
多重启动
可以将多个操作系统(完整安装和实时/持久安装)添加到 USB。
按照上述建议创建一个驱动器,然后将扩展分区分成几部分(在本例中为 sdx5、sdx6、sdx7...)。
然后您可以在一个分区上安装 Ubuntu,并在其他分区上安装其他操作系统。
将 sdx5 划分为与操作系统数量相同的 ext4 分区。每个分区大小应为 8GB 左右或更大。
启动 Live mkusb 安装程序并插入目标驱动器。
在分区时选择“其他”。
对于 /,选择 sdx5。
将引导加载程序安装到 sdx5。
不要选中所有其他分区的格式框。
对 sdx6、sdx7 等以及您选择安装的操作系统重复此操作。
最后一次安装后,从 sdx6/boot/grub 剪切 grub.cfg 并粘贴到 sdx3/boot/grub,覆盖现有的 grub.cfg 文件。
启动闪存驱动器并执行更新 grub。这会将所有操作系统添加到 grub。
如果愿意的话,你可以添加一些 OS ISO:
在 NTFS 分区 sdx1 中创建一个名为 isos 的文件夹。
添加一些 ISO。
编辑 sdx3/boot/grub 添加类似以下内容的菜单项:
menuentry "xubuntu-18.04.1-desktop-amd64 Partition 6" { set isofile="/isos/xubuntu-18.04.1-desktop-amd64.iso" set root='(/dev/sdx,msdos2)' search --no-floppy --fs-uuid --set=root XXXX-XXXX loopback loop ($root)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject initrd (loop)/casper/initrd.lz }
将第六个(第七个和第八个)分区的 UUID 替换为 XXXX-XXXX
对于某些版本,vmlinuz 可能需要是 vmlinuz.efi。
如果需要,每个 ISO 都可以有自己的 casper-rw 和 home-rw 持久文件,但由于您需要向每个菜单项添加“持久路径”,因此它会变得有点复杂。
如果预计要进行 ISO 启动,请使用 19.10 之前的 grub 2.02,因为 grub 2.04 不适用于启动 ISO