我有一根速度非常快的 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 和磁盘,发现磁盘/分区信息显示不同。
不管怎样,我拔下了 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-rw
为writable
- 对于可选
home-rw
分区,请将其替换casper-rw
为home-rw
6)创建多持久性文件夹
为每个需要持久的 ISO 文件在 FAT32 分区中添加一个唯一命名的文件夹。
writable
为每个文件夹添加标记的持久性文件。home-rw
根据需要向每个文件夹添加标记的持久性文件。
7)此时备份分区 1 /Boot 文件夹。
8)添加 Ubuntu 完整安装
从第二个 Live USB 或上述 USB
toram
模式启动 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