Ray*_*rth 7 partitioning boot usb system-installation
这个老问题听起来像我想要的:Copy ubuntu.iso to Usb Stick with two partitions
它被标记为重复:How do I install Ubuntu to a USB key? (不使用启动盘创建器)
但是答案都回答了一个不同的问题,即如何创建具有多个分区的可启动 USB。
我不想要简单可启动的东西;我想要一些可以用来安装Ubuntu 的东西(如果我只是用来dd
复制 iso ,我会得到什么),但是除了 iso 中的内容之外,USB 记忆棒还应该有一个或多个可写分区。
另一种可能的解决方案是使用Ventoy。直接从工具说明:
Ventoy 是一个开源工具,用于为 ISO/WIM/IMG/VHD(x)/EFI 文件创建可启动的 USB 驱动器。使用ventoy,您无需反复格式化磁盘,只需将映像文件复制到USB 驱动器并启动它即可。您可以一次复制多个 iso 文件,ventoy 将为您提供一个启动菜单来选择它们。Legacy BIOS 和 UEFI 都以相同的方式受支持。以相同的方式支持 MBR 和 GPT 分区样式。
我已经创建了一个可启动的 USB,我只是通过复制/粘贴过程复制了我的 Ubuntu ISO 文件,这样当 USB 记忆棒用作可启动驱动器时,它们会显示在菜单中。同时,我也可以使用这个 USB 存储我的个人数据(它们不会出现在 Ventoy 菜单中)。
这意味着当我使用这个 U 盘作为可启动驱动器时,我有一个这样的菜单(截图来自官方网站):
当我通过 Nautilus 打开它时,它就像一个普通的 U 盘,您可以在其中放置您的文件(截图来自我的 Ubuntu 20.04):
您可以从发布页面下载 Ventoy 。选择.tar.gz
版本,将其解压缩,然后在终端中转到包含Ventoy2Disk.sh
.
然后,如果您的 U 盘是/dev/sdb
,您可以运行:
sudo bash 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)
Run Code Online (Sandbox Code Playgroud)
Ventoy 安装中提供了更多详细信息。
另一个有趣的来源是RedHat.com上的这篇文章:Creating a multi-boot Linux desktop system
根据需要对 Pendrive 进行分区,在 FAT 分区中为 ISO 映像提供空间,第一个分区。
运行lsblk
以确定哪个设备是您的笔式驱动器,即/dev/sdb
FAT 分区的第一个分区,即/dev/sdb1
. 挂载它,即/media/user/PENDRIVE
将此分区标记为可引导,您可以从磁盘实用程序执行此操作。
运行这些命令:
警告!前面有危险的命令,你可能会破坏你的系统!建议:在虚拟机中执行此操作,或者,如果您有备用的随身碟,则在实时环境中执行此操作(更简单)。
sudo apt install grub-efi-amd64
dirs=(dev bin sbin etc sys usr proc lib lib64)
for dir in "${dirs[@]}"; do
mkdir -p /media/user/PENDRIVE/$dir
sudo mount --bind /$dir /media/user/PENDRIVE/$dir
done
sudo chroot /media/user/PENDRIVE/ grub-install --force --removable --target=x86_64-efi --efi-directory=/ /dev/sdb1
sudo chroot /media/user/PENDRIVE/ grub-install --force --removable --target=i386-pc --boot-directory=/ /dev/sdb
Run Code Online (Sandbox Code Playgroud)
等到命令完成。
卸载绑定的目录并删除它们:
for dir in "${dirs[@]}"; do
sudo umount /media/user/PENDRIVE/$dir
rm -r /media/user/PENDRIVE/$dir
done
Run Code Online (Sandbox Code Playgroud)
grub.cfg
在/media/user/PENDRIVE/grub/
其内容下创建一个文件:
set root='(hd0,1)'
configfile /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
挂载 Ubuntu ISO 并将grub.cfg
文件复制到/media/user/PENDRIVE/boot/grub/
更改文件¹,在本例中为 ubuntu-20.04.1-desktop-amd64.iso
设置根=“(hd0,1)” 设置 iso_path=/ubuntu-20.04.1-desktop-amd64.iso 环回循环 $iso_path 菜单项“Ubuntu”{ 设置 gfxpayload=keep linux (loop) /casper/vmlinuz iso-scan/filename=$iso_path file=/cdrom/preseed/ubuntu.seed 也许是无处不在的安静飞溅 --- initrd (循环) /casper/initrd }
准备好,您现在拥有一个带有您创建的分区的 EFI/i386 可引导笔式驱动器。
¹您可以更改所有条目,其余条目保持不变,在我的示例中,我正在简化。
如果您喜欢学习体验,您可以创建一个多分区、永久 USB 来从头开始安装 Ubuntu。
安装 grub(如果处于 BIOS 模式或从 Live USB 驱动器启动)运行:
sudo mount /dev/sdx2 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sdx
Run Code Online (Sandbox Code Playgroud)
如果已安装的系统处于 UEFI 模式,请引导至目标驱动器并运行上述命令。
*基于 sudodus 的 mkusb 启动
归档时间: |
|
查看次数: |
5138 次 |
最近记录: |