![多分区多操作系统可启动 USB](https://linux22.com/image/1118073/%E5%A4%9A%E5%88%86%E5%8C%BA%E5%A4%9A%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%8F%AF%E5%90%AF%E5%8A%A8%20USB.png)
我想创建一个恢复闪存驱动器。我有 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 了解多启动版本
但为了更好地理解它,您只需将 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 驱动器用作可启动驱动器时,我有一个这样的菜单(屏幕截图取自官方网站):
当我通过 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 循环安装这些驱动器。