创建多操作系统多引导 USB SSD/棒时出现问题 - USB 不可见为安装目标

创建多操作系统多引导 USB SSD/棒时出现问题 - USB 不可见为安装目标

我有一根速度非常快的 Sandisk Extreme Pro 闪存棒。我还有一台联想 X1 Carbon G6 笔记本,里面有 1TB 三星 NVME,安装了 Windows 10,占据了整个 SSD。BIOS 配置了安全启动,Windows 安装在使用 BitLocker 加密的单个分区上。

我想在此 USB 驱动器上创建多启动多操作系统/实用程序安装,以便我能够:

  • 在此 USB 上以及将来在其他计算机上安装 Ubuntu - grub 菜单 - 安装 Ububnu 或启动 live CD(无持久性)
  • 从此 USB 上安装的 Ubuntu 启动并持久保存 - grub 菜单 - 启动 Ubuntu
  • 将 Windows 10 和 Windows 2019 安装选项 - grub 菜单 - 安装 windows 10/2019
  • 启动额外的工具,如分区管理工具等。

在另一台安装了 Ubuntu 的计算机上,我下载了 Ubuntu 20.03 LTS ISO 文件,并使用 mkusb 在棒上创建“持久”安装选项并将 ISO 提供给它。创建 USB 完成后,我查看了 gparted 和磁盘,发现磁盘/分区信息显示不同。

UBS 存储分区

不管怎样,我拔下了 USB 棒,将其插入 X1,按 F12 选择可启动设备并从 USB 棒启动。启动成功,我可以选择安装或尝试 ububntu。

我选择安装,然后一路选择安装位置。我有三个选项 - 与 Windows 启动管理器一起安装 Ubuntu、擦除磁盘和“其他”。我选择了最后一个选项,以便能够选择 USB 作为目标,但显示的唯一选项是现有的 NMVE 内置驱动器,这显然不是我想要的。

因此,根据这次经历,我有以下疑问:

  • 在使用 mkusb 创建 USB 记忆棒的过程中我错过了什么?
  • 如果 mkusb 不合适,我应该使用其他工具吗?
  • 为什么 gparted 和磁盘显示的磁盘/分区布局不同?
  • 实际上是否可以在启动 ubuntu 的同一设备上安装 ubuntu 还是需要不同的设备?

重申一下 - 内部 1TB nmve 驱动器应保持不变,所有修改/安装都需要在 USB 驱动器本身上完成。我应该能够启动 ubuntu,在其上安装所需的应用程序/数据,并将所有数据保存在 USB 记忆棒上。此外,在此之后,我想添加一个从其他 ISO 映像启动的选项。

提前致谢。

答案1

带有 Windows 安装程序的多启动 USB

1)安装mkusb和guidus:

sudo add-apt-repository universe
sudo add-apt-repository ppa:mkusb/ppa
sudo apt update
sudo apt install mkusb
sudo apt install usb-pack-efi

2)创建 Windows 安装程序

  • 启动mkusb,输入密码,选择安装(制作启动设备)。

  • 选择提取 Windows Installer。

  • 选择新版本,也适用于巨大的 Windows iso 文件。

  • 选择源文件。

  • 选择目标设备并接受以下窗口。

  • 该过程可能需要一段时间才能完成。

3)修改分区

  • 使用 GParted,将未使用的空间划分为一个 30GB 的 ext4 分区,标记为“ubuntu”,其余部分划分为一个扩展分区

  • 在扩展分区中添加一个标记为“持久性”的 FAT32 分区,每个持久操作系统最多有 8GB 的​​空间。

  • 添加一个标记为“isos”的 ext4 或 NTFS 分区。使“isos”分区足够大,可以容纳您想要启动的所有 ISO。如果您想要 Windows 也可以使用的 usbdata 分区,请将其设置为 NTFS。(ISO 启动可能更难关闭)。

在此处输入图片描述

  • 将 Linux ISO 文件添加到 isos 分区

4)修改GRUB引导程序

挂载标有 WININSTFAT 的启动分区并编辑 /boot/grub/grub.cfg,为每个需要持久性的基于 Debian 的 ISO 文件添加类似于以下内容的菜单项:

menuentry "ubuntu-20.04.2-desktop-amd64.iso persistent" {
       set isofile="/ubuntu-20.04.2-desktop-amd64.iso"
       loopback loop (hd0,5)$isofile
       linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash fsck.mode=skip persistent persistent-path=ubuntu-20.04.2
       initrd (loop)/casper/initrd
}
  • 将 /EFI/BOOT 从 ISO 复制到 sdx1 并覆盖 /efi/boot,这样 USB 就可以在 BIOS 和 UEFI 模式下启动。

  • 将 x86_64-efi 和 loopback.cfg 从 ISO 复制到 sdx1 /boot/grub。

5)创建持久文件:

sudo dd if=/dev/zero of=casper-rw bs=1M count=512
sudo mkfs.ext4 -F casper-rw
  • (将 512 替换为您所需的“MB 大小”,最大为 4000)
  • 对于 Ubuntu 20.04 及更高版本,请将其替换casper-rwwritable
  • 对于可选home-rw分区,请将其替换casper-rwhome-rw

6)创建多持久性文件夹

  • 为每个需要持久的 ISO 文件在 FAT32 分区中添加一个唯一命名的文件夹。

  • writable为每个文件夹添加标记的持久性文件。

  • home-rw根据需要向每个文件夹添加标记的持久性文件。

7)此时备份分区 1 /Boot 文件夹

8)添加 Ubuntu 完整安装

  • 从第二个 Live USB 或上述 USBtoram模式启动 Ubuntu Live。

  • 如果以 toram 模式启动,请卸载“isodevice”:sudo umount -lrf /isodevice然后重新插入它。

  • 开始“安装 Ubuntu”

  • 在“安装类型”中选择“其他”,点击“继续”。

  • 在引导加载程序安装的设备下选择目标驱动器。

  • 选择分区 sdx3 并单击更改,选择用作 Ext4,选择格式化此分区,安装点 =“/”,然后确定。

  • 如果要求写入以前的更改...请单击继续。

  • 单击立即安装。

  • 正常完成安装。

9)编辑 GRUB

  • 将 Windows 和 ISO 菜单项从 sdx1 /boot/grub/grub.cfg 复制到 sdx3 /boot/grub/grub.cfg。将它们粘贴到 /40_custom 下。

  • 复制 sdx3 /boot/grub/grub.cfg 以覆盖 sdx1 /boot/grub/grub.cfg。

10)确认一切正常。

  • 确认之前添加的菜单项仍然存在,如果没有,请用备份中的菜单项替换。

如果您有任何问题,请发表评论。

以下是 Ubuntu 论坛帖子的链接:https://ubuntuforums.org/showthread.php?t=2466133&p=14055230#post14055230

相关内容