如果我将可启动 USB 驱动器复制到另一个 USB,它会创建重复的可启动驱动器吗?

如果我将可启动 USB 驱动器复制到另一个 USB,它会创建重复的可启动驱动器吗?

我觉得这个问题有点愚蠢,但用谷歌搜索似乎表明甚至无法将可启动驱动器上的数据复制/粘贴到另一个 USB?但即使我们能够复制它,为什么它不起作用?(即创建重复的可启动驱动器)

答案1

仅复制文件不会使驱动器成为可启动驱动器。不仅是 USB 闪存驱动器上的文件可以使其成为可启动驱动器,分区表配置,元数据关于驱动器内容的组织,它告诉 PC 它是否可启动,以及是否MBR 或 GPT

正如所指出的cyberciti.biz

每个磁盘和分区都有某种签名和元数据/魔术字符串。操作系统使用元数据来配置磁盘或连接驱动程序并在系统上安装磁盘。

不过,你可以使用多种工具克隆闪存驱动器,例如EaseUS Todo 备份以及优秀且开源的克隆兹拉鲁弗斯。 (谢谢亚历克斯关于 dd 和 Rufus 的提醒)。

甚至还有自动复制闪存驱动器的电子设备

答案2

复制仅处理文件里面格式化分区。您将无法执行启动过程所需的特殊操作,例如设置启动标志、编写启动加载程序,或者有时甚至将普通文件复制到正确的位置(阅读:部门) 并设置文件的属性/权限。除非您很幸运有这些东西可用,否则由于之前创建了启动盘、格式化工具将引导加载程序写入 MBR 等,您需要执行更多步骤才能使磁盘可启动


特别是在启动时BIOS 模式BIOS 会寻找第一部门膜生物反应器)看看是否有有效启动签名 0xAA55。如果是,则加载该扇区并将控制权移交给 MBR 中的引导加载程序。MBR 描述了分区配置,因此它不能位于分区内并且是这不是用普通工具就能复制的。

此外,由于 MBR 太小而无法使用,大多数现代引导加载程序将引导过程拆分为多阶段,MBR 中的引导代码加载其下一阶段。进一步的内部阶段通常再次被放入分区外的区域有些人可能会把它放在乙烯-丙烯腈但是 grub 通常将其第二阶段放在第一个分区和 MBR 之间的空白区域,称为后 MBR 间隙。这就是为什么如果没有正确对齐分区,grub 就没有空间放置其启动代码,从而导致嵌入错误

许多引导加载程序喜欢莉萝或者旧的 Windows/DOS 引导加载程序硬代码MBR 中的信息,例如下一阶段或系统文件的位置。它们不是通过读取分区数据来工作的,而是读取一些硬编码的扇区,因为解析文件系统需要太多代码,而这些代码很难挤进 MBR 或后 MBR 间隙等微小的空间中。即使grub 支持这样的硬编码虽然它很脆弱,因此不推荐。这意味着一些系统文件必须位于确切地点扇区方式,而普通副本无法实现这一点。这就是你看到的原因“不可移动的系统文件”在运行 Windows 碎片整理程序或缩小文件系统时,这有时实际上是不正确的,因为 Windows 太害怕移动这些文件,即使现代引导加载程序更大、更智能并且不关心这些事情。

毕竟你还需要将启动分区设置为活动分区让引导加载程序知道要引导什么。这必须通过分区工具或手动十六进制编辑来完成,因为它也放在分区区域之外。


UEFI事情就简单多了。它知道 FAT 文件系统(甚至更多非标准实现上的文件系统),因此启动文件存储在EFI 系统分区,又称 ESP. UEFI 加载 ESP 中的 *.efi 应用程序,然后加载操作系统。

UEFI 固件支持从可移动存储设备(例如 USB 闪存驱动器)启动。为此,可移动设备需要使用 FAT12、FAT16 或 FAT32 文件系统进行格式化,而引导加载程序需要根据标准 ESP 文件层次结构进行存储,或者通过向系统的引导管理器提供引导加载程序的完整路径来存储。

因此,基本上你只需要将 *.efi 文件复制到 ESP,并将系统文件放入正确的文件夹中。但是,还有一个小问题,因为包含 *.efi 文件的 FAT 分区必须是在 MBR 或 GPT 表中标记为 ESP分区之外,这不能通过像上面那样的复制来完成。特别是分区类型必须从0Ch/0Bh/任意到 EFh在 MBR 中C12A7328-F81F-11D2-BA4B-00A0C93EC93B在 GPT 中,因为 ESP 实际上不是 FAT12/16/32,而是基于 FAT 文件系统系列的独立文件系统


还有许多其他分区方案比如 BSD 磁盘标签或 APM,需要进行不同的修改才能启动。或者 USB 驱动器可能已被格式化没有分区表完全没有(据我所知,Windows 默认会这样做),因此使其可启动会有所不同。但同样的限制适用:您需要修改非分区区域!!!

答案3

传统上,BIOS 启动需要一个特殊的隐形标记。以下是一些例子

  • 如果是 MBR 分区(“硬盘”),则在分区表内
  • 如果是软盘/超级软盘(“ZIP 驱动器”),基本上整个驱动器的格式化都没有分区表,那么在前几个字节内
  • 如果是 CD,那么埃尔托里托

在这种情况下,您不能简单地复制文件。由于缺少这些特殊标记,因此生成的驱动器将无法启动。

然而UEFI 启动很特别,更智能,专门解决这些问题。与往常一样,我建议阅读这篇博文了解 UEFI 的简单入门。特别注意 fallback boot 部分。这部分也进行了更详细的讨论这里

要使此功能正常工作,您只需要在固件将搜索的分区中的特定路径中有一个文件。为了获得最佳兼容性1,是的,这应该是 GPT 分区磁盘中标记为 EFI 系统分区的 FAT32 格式分区。但是,大多数固件还会在 MBR 分区和未分区(超级软盘)磁盘上搜索(单个)分区。

这意味着 UEFI 启动真正需要的只是一个包含后备启动项的 FAT32 1格式的单个分区。在 x86_64 架构上,这意味着您只需要一个\EFI\BOOT\BOOTx64.EFI文件。您只需将该文件从一个闪存驱动器复制到另一个闪存驱动器,包括该文件,一切就应该正常工作。


1标准要求使用 FAT32 和 GPT。据我所知,MBR 和超级软盘不是,但台式机硬件对它们的支持相当普遍。笔记本电脑有点深奥;平板电脑则难以抉择,而 Mac EFI 则独一无二。

2 UEFI 标准需要 FAT32 支持。某些固件可能还支持 NTFS(尽管远不能保证),并且您实际上可以在 FAT32 ESP 中嵌入 NTFS 驱动程序。

答案4

这取决于你所说的‘复制’是什么意思。

在操作系统的 GUI 中复制并粘贴?不,这行不通 - 可启动 USB 所需的某些文件将被视为“隐藏”/不可见,并且不会被复制。

有几种类型的副本将要工作。这通常被称为“映像”新的 USB,以区别于“复制”其内容。执行此操作的最常见方式是使用命令行工具,但如果您需要,也可以使用图形选项。

这些背景信息应该足以让您的搜索步入正轨!

相关内容