我有以下 USB 闪存驱动器分区:
/dev/sdb1 * 204800 8593407 8388608 4G b W95 FAT32
/dev/sdb2 8593408 11460607 2867200 1.4G b W95 FAT32
/dev/sdb3 11460608 24043519 12582912 6G 7 HPFS/NTFS/exFAT
/dev/sdb4 24043520 120127487 96083968 45.8G 7 HPFS/NTFS
注意:
sdb1 = 具有持久性的 Lubuntux_64。sdb2
= androidx_86。sdb3
= Windows10_64。sdb4
= 通用存储。sdb1
之前有 100 MB 未分配。
为什么会这样?我尝试了多个多重引导软件,但没有一个能按预期工作。此配置有效,但我必须在引导所需的每个分区上手动设置引导标志。
问题是:如何将 grub 安装到 sdb(检测每个操作系统)以便让我选择要运行的操作系统?我不怕手动写东西,但我不知道在 grub.cfg 中写什么来指向所需的分区。
答案1
多重安装至 USB - BIOS/UEFI
姆库斯布为自定义多启动 USB 奠定了良好的基础。下面介绍如何制作一个可同时启动 BIOS 和 UEFI 的完整安装 USB,然后进一步将其修改为多启动器,甚至可以使用 grub2 启动 ISO。
使用韓國在安装程序 USB(2GB 或更大)上制作 Live 系统。
使用韓國使用默认设置在目标 128GB USB 上创建持久系统,持久性约为 25GB(剩余的 NTFS 分区用作 Windows 可访问数据分区)。
- mkusb 完成后,立即打开 GParted 并删除 sdx4(ISO9660 分区)并将 sdx5 扩展到恢复的空间,sdx 是目标驱动器的设备名称。
在继续操作之前,拔下或移除硬盘(可选但推荐,在 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 持久文件,但由于您需要向每个菜单项添加“持久路径”,因此它会变得有点复杂。
答案2
我知道这是一篇老帖子,但我寻找一些“完美”的解决方案,兼容 Windows 和 Linux(和 Mac),并且可启动……很长时间了。
在撰写本文时,我刚刚发现了这个名为“Ventoy”的解决方案。简单。功能强大。开源。
Ventoy 官方网站
存储库
轻松准备 USB 驱动器,它既可用于数据 + 多 ISO 启动,也可用于一些我(尚未)使用的功能,例如实时发行版的持久性。
我的 64GB USB 现在有 6+ 个可启动 ISO 以及许多 GB 的文件。完美
答案3
昨天我成功了,我将发布我的决心:
我有一个 Sandisk 64gb USB 闪存驱动器,我需要多个分区、多启动操作系统
- 步骤1:
我使用 GParted 创建了一个 MBR 分区表,其内容如下:
sdb1 -> 4gb ->formatted fat32(labeled Linux)<br/>
sdb2 -> 2gb ->formatted fat32(labeled Android)<br/>
sdb3 -> 5GB ->formatted fat32(labeled Windows)<br/>
sdb4 -> the rest of unallocated space -> formatted NTFS(labeled Stuff)<br/>
第2步:
使用 UNetBootin 我已经安装了:
sdb1 -> 带有 2gb 持久存储的 Xubuntu(最新版本)(Lubuntu 在使用 wifi 驱动程序重启后出现一些问题)
sdb2 -> android-x86_64-8.1
sdb3 -> 用于 windows10 安装我遵循了以下步骤:这
编辑 1:安装所有操作系统后,进入 GParted 并将 bootflag 设置为 sdb1(linux 标签分区)
步骤3:
我已经在 sdb1(Linux) 中安装了 grub,如下所示:
sudo grub-install --force --root-directory=/media/myusername/LINUX/ /dev/sdb1
像这样更改 /media/myusername/LINUX/boot/grub 中的 grub.cfg 文件:
如果 loadfont /boot/grub/font.pf2 ; 那么 设置 gfxmode=自动 安装 efi_gop 安装 efi_uga 修改 gfxterm 终端输出 gfxterm 菲 设置菜单颜色正常=白色/黑色 设置 menu_color_highlight=black/light-gray 设置超时=30 菜单项‘Xubuntu18.04 原版精选’{ 搜索--no-floppy--fs-uuid--set XXXX-XXXX syslinux_source/isolinux/isolinux.bin syslinux_配置文件/syslinux.cfg } 菜单项‘Android8.1 原版精选’{ 搜索--no-floppy--fs-uuid--set XXXX-XXXX syslinux_source($root)/isolinux/isolinux.bin syslinux_config文件($root)/syslinux.cfg } 菜单项‘Windows10_x64 原始选择’--class windows --class os { 修改ntfs 搜索--no-floppy--fs-uuid--set XXXXXXXXXXXXXXXX 启动管理器 }
笔记:
- 您需要用分区 UUID 替换 XXXX-XXXX。您可以通过运行以下命令获取:
blkid /dev/sdbX
其中“X”是分区号。 - 我要测试的内容:
- Xubuntu 一切正常。
- Android 我还没有测试过这个。
- Windows 10 直到分区选择。
- 如果此方法有任何问题,我将进一步编辑它。(很可能在接下来的几天内发生)