多分区多操作系统可启动 USB

多分区多操作系统可启动 USB

我想创建一个恢复闪存驱动器。我有 8 GB 闪存驱动器 [Kingston Data Traveller]。我还有所需的 .iso 文件 a>Ubuntu 13.10 b>启动修复磁盘 c>AVG 救援 CD

我希望创建 4 个分区(每个可启动 .iso 3 个,一个用于数据存储)。另外,我希望有一种方法,让我每次从 USB 启动时都可以选择要启动哪个操作系统。

那么,有没有办法在 USB 上安装 GRUB 以及其他三个实时发行版?以及如何创建这样的设置?

答案1

我没有用过 MultiSystem,但我见过有人推荐它,还有其他几个。MultiBootUSB - 使用 grub2 从 Pendrive / 闪存驱动器 / USB 磁盘安装和启动多个 Linux

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

请参阅 yumi 了解多启动版本

http://www.pendrivelinux.com/

但为了更好地理解它,您只需将 grub2 安装到闪存驱动器,创建您自己的带有启动节的 grub.cfg,然后将 ISO 复制到闪存驱动器中。与此链接中的硬盘安装非常相似。

https://help.ubuntu.com/community/Grub2/ISOBoot

要将 grub2 安装到闪存驱动器中,默认 /media 现在会根据版本而变化。新版本将用户添加到路径中。还假设 sdb 为闪存驱动器,如果不确定,请确认是否正确。标签分区 - 如果标签是 grub2 并安装:

sudo grub-install --root-directory=/media/grub2 /dev/sdb

较新的版本也使用 $USER 名称自动挂载,这个版本标记为 MC4GB,用户为 fred

sudo grub-install --root-directory=/media/fred/MC4GB /dev/sdb

在创建 grub.cfg 时,启动驱动器始终是 hd0,因此如果直接从闪存驱动器启动,设置将是 hd0,Y,其中 Y 是分区,通常为 1。

loopback loop (hd0,1)$isofile

否则示例如下:

https://help.ubuntu.com/community/Grub2/ISOBoot/Examples

MC4GB 中 grub.cfg 中的第一个条目

set default=0 
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
set gfxpayload=800x600

menuentry "Ubuntu 13.04" {
set isofile="/boot/iso/ubuntu-13.04-desktop-amd64.iso"
loopback loop (hd0,1)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile nomodeset 
initrd (loop)/casper/initrd.lz
}

menuentry " " {
set root= 
}

注意,由于我有 nVidia,因此我向所有条目添加了 nomodeset。此外,新版本现在使用 vmlinuz.efi 进行 BIOS 和 UEFI 启动。旧版本只是 vmlinuz。其他发行版可能需要不同的启动参数。在上面的示例线程中查找示例或安装并检查 ISO 的启动参数。

答案2

经过测试的解决方案Ubuntu 20.04 及更高版本是使用文图伊。直接从工具描述来看:

Ventoy 是一个开源工具,用于为 ISO/WIM/IMG/VHD(x)/EFI 文件创建可启动的 USB 驱动器。使用 ventoy,您无需反复格式化磁盘,只需将映像文件复制到 USB 驱动器并启动它即可。您可以一次复制多个 iso 文件,ventoy 将为您提供启动菜单以供选择。传统 BIOS 和 UEFI 均以相同的方式受支持。MBR 和 GPT 分区样式均以相同的方式受支持。

我创建了一个可启动的 USB,只需通过复制/粘贴过程复制我的 ISO 文件即可,这样当 USB 棒用作可启动驱动器时,它们就会显示在菜单中。同时,我还可以使用此 USB 来存储我的个人数据(它们不会出现在 Ventoy 菜单中)。

这意味着当我将此 USB 驱动器用作可启动驱动器时,我有一个这样的菜单(屏幕截图取自官方网站):

ventoy 菜单

当我通过 Nautilus 打开它时,它就像一个普通的 USB 棒,你可以在其中放置文件(屏幕截图取自我的 Ubuntu 20.04):

鹦鹉螺

Ventoy 没有 deb 格式,也没有安装脚本,所以你需要从发布页面。如果您下载了.tar.gz版本(在下面的例子中我将引用版本 1.0.61),则可以通过在终端中发出以下命令来提取它:

sudo tar xzf ventoy-1.0.61-linux.tar.gz -C /opt

考虑到/opt 文件夹的含义,我认为/opt就目标文件夹而言这是最好的选择。

现在,您需要至少授予Ventoy2Disk.sh和权限VentoyGUI.x86_64

sudo chmod +x /opt/ventoy-1.0.61/Ventoy2Disk.sh /opt/ventoy-1.0.61/VentoyGUI.x86_64

现在您就可以使用它了。要创建一个映射为/dev/usb(始终使用lsblk以正确识别您的 USB 磁盘!)的可启动 USB,并使用 GPT 分区,您可以运行

sudo bash /opt/ventoy-1.0.61/Ventoy2Disk.sh -I -g /dev/sdb

以下是提供的参数列表Ventoy2Disk.sh

Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
  CMD:
    -i   install ventoy to sdX (fail if disk already installed with ventoy)
    -I   force install ventoy to sdX (no matter installed or not)
    -u   update ventoy in sdX
    
  OPTION: (optional)
   -r SIZE_MB  preserve some space at the bottom of the disk (only for install)
   -s          enable secure boot support (default is disabled)
   -g          use GPT partition style, default is MBR style (only for install)

否则,你可以使用图形界面运行 Ventoy:

sudo /opt/ventoy-1.0.61/VentoyGUI.x86_64

更多详细信息请参阅Ventoy 安装

另一个有趣的来源是这篇文章RedHat.com:创建多启动 Linux 桌面系统

答案3

这是用于在多重引导闪存驱动器的第二个分区上引导 iso 的菜单项(sudodus 向我建议的)。

menuentry "ubuntu-12.04-desktop-i386 Partition 2" {
    set isofile="/ubuntu-12.04-desktop-i386.iso"
    set root='(/dev/sda,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 启动修复磁盘和 AVG 救援 CD 的菜单项可能与 Ubuntu 的形式不同。MultiBootUSB 脚本应该会告诉您如何编写这些。

答案4

多重引导完整系统安装

自从第一次提出这个问题以来,闪存驱动器的大小已经增加。现在使用完整系统安装制作多启动驱动器是相当合理的。

完整安装比永久安装更稳定、更安全,但速度较慢。它们更善于利用​​磁盘空间,因为不需要固定大小的 casper-rw 文件或分区。它们在安装操作系统时用处不大,因为安装操作系统时启动 ISO 就可以了。

  • 使用 GParted 在大型闪存驱动器上创建 GPT 分区表。

  • 创建与操作系统数量相同的 ext4 分区。每个分区大小应为 8GB 左右或更大。

  • 以 UEFI 模式启动 Live 驱动器并插入大型目标驱动器。

  • 在分区时选择“其他”。

  • 对于 /,选择 sdc1。

  • 将引导加载程序安装到 USB 驱动器的根目录。

  • 不要选中所有其他分区的格式框。

  • 如果需要,安装时选择主目录的加密,对我来说,闪存驱动器上的全盘加密不起作用。

  • 对 sdc2、sdc3 等以及您选择安装的操作系统重复此操作。

  • 最后一次安装后,启动闪存驱动器并执行更新 grub。这会将所有操作系统添加到 grub.cfg

您可以为想要实时启动或持久启动的任何 ISO 留下一个分区,以制作安装程序闪存驱动器,然后使用 grub.cfg 循环安装这些驱动器。

相关内容