如何克隆现有的 UEFI 可启动磁盘,以便副本完全相同?
我尝试创建新的可启动磁盘,使用相同的过程、相同的标签名称以及 GPT 分区的相同 UUID 和 PARTUUID 标签,但在我的笔记本电脑的启动菜单中,它显示了我曾经启动过的每个启动设备,作为单独的条目。
我不能简单地将一个磁盘映像复制到另一个磁盘上,因为 USB 磁盘的大小不同。
如何将一张可启动磁盘上的所有内容克隆到另一张可启动磁盘上?
UEFI 启动使用的标识符存储在哪里?
为什么 UEFI 设计如此愚蠢,以至于我的启动菜单会记住我曾经启动过的每个设备?我怎样才能删除该列表?
答案1
从您所写的内容来看,您错过了最重要的部分:
UEFI 将搜索默认命名的引导加载程序EFI/BOOT/BOOTX64.EFI
(不区分大小写)在 EFI 分区上。磁盘必须使用 GPT 分区表进行分区,且 EFI 分区具有类型UUID C12A7328-F81F-11D2-BA4B-00A0C93EC93B
。 EFI 格式为 FAT32。
您可以使用简单的分区工具cfdisk
来设置分区类型,或者sfdisk
如果您感觉特别勇敢的话。用于mkfs.vfat
格式化它。 EFI 分区的 UUID 和 PARTUUID 在启动时很少使用,但它们可能会在您的系统中用于/etc/fstab
挂载 EFI 分区。
EFI 分区内的其他文件名也是可能的,但对于可启动 USB 来说并不实用,因为您需要手动通知固件有关它们的信息。
我怀疑您只是忘记设置分区类型,或者无意中使用错误的 FS 类型进行格式化。
与传统启动不同,UEFI 可启动设备更容易复制,因为磁盘上没有隐藏的程序代码,它全部位于可安装文件系统的文件中。
唯一的技巧是,与传统引导系统一样,您可能需要保留 UUID 和 PARTUUID,以便 linux 知道要在哪里安装什么。
因此,将磁盘克隆到较小的磁盘上可以非常简单:
- 对新磁盘进行分区
- 使用相同的 FS 类型格式化分区
- 复制文件
- (重新)设置分区上的 UUID 和 PARTUUID
为什么 UEFI 设计如此愚蠢,以至于我的启动菜单会记住我曾经启动过的每个设备?我怎样才能删除该列表?
这不是 UEFI 规范的一部分,并且似乎是您的特定固件的错误。