首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在可引导USB上替换linux发行版ISO,保持额外的数据分区完整和可访问?

如何在可引导USB上替换linux发行版ISO,保持额外的数据分区完整和可访问?
EN

Unix & Linux用户
提问于 2022-12-23 08:57:35
回答 1查看 42关注 0票数 2

USB接口越来越大。除了USB可引导之外,我还想存储数据。我知道如何: 1.写ISO到USB 2.通过Gnome磁盘(都是GUI)添加分区.

现在,我希望能够取代ISO,保持这些额外数据的完整性和可访问性。怎么做?最好是w/out手动编辑磁盘上的十六进制数据,但是这个解决方案比没有解决方案好。提亚

我试过,但失败了如下。我读过如何使用标准工具复制整个磁盘的分区布局,其中建议使用sfdisk

我见过的大多数ISO文件如下所示:

代码语言:javascript
复制
sfdisk --dump linuxmint-20.2-cinnamon-64bit.iso 
label: dos
label-id: 
device: linuxmint-20.2-cinnamon-64bit.iso
unit: sectors
sector-size: 512

linuxmint-20.2-cinnamon-64bit.iso1 : start=           0, size=     4222944, type=0, bootable
linuxmint-20.2-cinnamon-64bit.iso2 : start=         640, size=        7936, type=ef

也就是说,某些分区表sfdisk不能写回(start 0不适合它)。

但是在通过gnome-disks创建分区之后:

代码语言:javascript
复制
sudo sfdisk --dump /dev/sda
label: dos
label-id: 
device: /dev/sda
unit: sectors

/dev/sda1 : start=     8433664, size=    57104384, type=83
/dev/sda2 : start=        4800, size=        8496, type=ef
# (note: the ISO I've tried to change from had start=4800 for ef).

因此,我保存了新行/dev/sda1,比如a.part,将新的ISO写入USB,通过gnome-disks创建分区,通过sfdisk --dump确认,然后通过gnome-disks删除数据分区,并执行sfdisk --append /dev/sda < a.part (参见下面的部分输出)。我看到了“分区表被修改了”,我的数据分区在新的分区表中。但USB棒已不再启动。

代码语言:javascript
复制
/dev/sda3: Created a new partition 3 of type 'Linux' and of size 24.4 GiB.
Partition #3 contains a btrfs signature.
/dev/sda4: Done.

New situation:
Disklabel type: dos
Disk identifier: 

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda2           4800    13295     8496  4.2M ef EFI (FAT-12/16/32)
/dev/sda3       14368768 65538047 51169280 24.4G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

增加(关于Ventoy):

我已经在用文蒂了。我仍然想要一些USB与我最喜欢的系统,以便我插入棒,按电源和系统加载无人照顾,而我做其他事情。我还记得在一些旧电脑上出现故障的Vetroy,所以再一次专用于直接引导棒是很有用的。

但是,如果Ventoy可以选择加载默认指定的文件(带有像GRUB引导菜单那样的延迟),这些问题就会得到缓解--无法找到这样的googling和读取https://www.ventoy.net/en/faq.html。似乎Ventoy内部使用GRUB引导,我打开了配置文件,看看是否可以添加默认的引导选项。

EN

回答 1

Unix & Linux用户

发布于 2022-12-23 11:25:47

好事情首先:由于超过10年的现代计算机支持UEFI启动从GPT分区USB设备,绝对没有什么特别的格式化/分区,您需要使它可引导!

所需要的只是有一个FAT32 32或exFAT格式的分区,该分区包含一个EFI/boot/boot{architecturename}.efi引导加载程序文件;我假设这是关于x86_64的,所以应该是EFI/boot/bootx64.efi。引导加载程序可以做它想做的任何事情--从直接加载从USB棒启动单个安装的Linux内核,到加载GRUB,然后加载多个Linux (或其他OSes)中的一个,再到链式加载引导加载程序,从CDROM磁盘映像加载引导加载程序(这就是.iso文件实际上是什么--这是一个历史上的好奇心-这仍然是将安装程序安装到USB棒上的主要方式);从技术上讲,启动一个小型Linux系统也是非常明智的,该系统可以使用其所有文件系统驱动程序分析整个USB,并提供从该Linux启动的Linux列表(例如kexec)。

有多个“多引导启用器”,可以扫描存储的.iso文件,只需让您选择一个启动。其中有很多都是令人讨厌的(当管理员们在客户端PC上到处跑来跑去启动或安装一些东西的日子已经结束了;网络引导变得非常容易,现代的OSes都有合理的远程访问和更新功能。)在服务器业务中,板管理控制器只允许您启动通过web控制台上传的文件,这是标准的。)老实说,我已经5年多没有使用过这些文件了。

其中大多数使用(D) GRUB来执行实际的引导;最常见(也可能仍然是最受支持的)一个是文托伊。你需要在你的棍子上安装一次冒险(不必要的,但最终,最容易的,破坏你的棍子上的数据,除非你不使用自动安装,并弄清楚如何做手动进入你现有的棍子里);

代码语言:javascript
复制
./Ventoy2Disk.sh -i -g /dev/sdYOURUSBSTICK

做这份工作。

之后,您只需将iso文件放到exfat分区中(实际上也可以将它们放在其他地方,并从GRUB手动浏览其他分区)。

你可以用棍子上的另一个分区(S)做你想做的任何事情。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/729403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档