Answers:
简单地复制文件将无法启动驱动器。不仅使USB闪存驱动器可启动,而且分区表配置,有关驱动器内容组织的元数据会告诉PC是否可启动,以及它是否是MBR或GPT。
每个磁盘和分区上都有某种签名和元数据/魔术字符串。操作系统用于在系统上配置磁盘或附加驱动程序和装入磁盘的元数据。
但是,您可以使用许多工具克隆闪存驱动器,例如dd, EaseUS Todo Backup以及出色的开源Clonezilla和Rufus。(感谢Alex提醒您注意dd和Rufus)。
甚至还有自动复制闪存驱动器的电子设备。
dd
:简单cp
就可以完成工作-只需确保在设备节点上使用它而不是文件系统内容即可。
cp
只是复制设备节点。为避免混淆,我现在也删除了我的评论。
仅复制处理格式化分区中的文件。您将无法执行启动过程所需的特殊操作,例如设置启动标志,编写启动加载程序,有时甚至无法将常规文件复制到分区中的正确位置(读取:扇区)并设置文件的属性。 /权限。除非您幸运地拥有这些功能,否则由于以前的引导盘创建,将引导加载程序写入MBR的格式化工具等原因,您将需要执行更多步骤来使磁盘可引导
特别是在以BIOS模式引导时,BIOS会寻找第一个扇区(MBR),以查看是否存在有效的引导签名0xAA55。如果是,则它将加载该扇区并将控制权转移到MBR中的引导加载程序。MBR中描述了分区配置,因此不能说谎的分区里面,是不是你可以用普通工具复制。
此外,由于MBR太小而无法使用,因此大多数现代引导加载程序将引导过程分为多个阶段,而MBR中的引导代码将加载下一个阶段。进一步的内部阶段通常又被放置在隔板之外的区域中。有些人可能将其放在EBR中,但是grub通常将其第二阶段放在第一个分区和MBR之间的空白区域,称为MBR后间隙。这就是为什么如果未正确对齐分区,则grub没有空间放置其引导代码,从而导致嵌入错误
许多引导加载程序(如LILO或旧的Windows / DOS引导加载程序)还在MBR中提供硬代码信息,例如下一阶段或系统文件的位置。它们不能通过读取分区数据来工作,而只能读取一些硬编码扇区,因为它们将花费太多代码来解析文件系统,而很难将其压缩到MBR或MBR后间隙之类的狭小空间中。甚至grub也支持这种硬编码。这意味着某些系统文件必须位于逐个扇区的确切位置,而普通副本也无法做到这一点。这就是您看到“不可移动的系统文件”的原因 在运行Windows碎片整理程序或缩小文件系统时,有时实际上并不正确,因为只是Windows害怕移动这些文件,即使现代的引导加载程序要聪明得多,也不在乎这些事情。
毕竟,还需要将引导分区设置为活动分区,以使引导加载程序知道要引导的内容。这必须通过分区工具或手动进行十六进制编辑来完成,因为它也位于分区区域之外。
在UEFI中,事情要容易得多。它了解FAT文件系统(甚至是非标准实现中的更多文件系统),因此引导文件存储在EFI系统分区AKA ESP中。UEFI将* .efi应用程序加载到ESP中,然后再加载操作系统。
UEFI固件支持从可移动存储设备(例如USB闪存驱动器)引导。为此,可移动设备需要使用FAT12,FAT16或FAT32文件系统进行格式化,而引导加载程序则需要根据标准ESP文件层次结构进行存储,或者通过提供引导加载程序到系统文件的完整路径进行存储引导管理器。
因此,基本上,您只需要将* .efi文件复制到ESP并将系统文件放在正确的文件夹中即可。但是,仍然存在一个小问题,因为必须将包含* .efi文件的FAT分区在分区外部的MBR或GPT表中标记为ESP,这不能通过上述复制来完成。特别是分区类型必须从0Ch / 0Bh / whatever更改为MBR中的EFh以及GPT中的C12A7328-F81F-11D2-BA4B-00A0C93EC93B,因为ESP实际上不是FAT12 / 16/32,而是基于FAT文件系统系列
而且还有许多其他分区方案(例如BSD磁盘标签或APM)需要进行不同的修改才能启动。否则,USB记忆棒可能已经完全格式化而没有分区表(默认情况下,AFAIK Windows会这样做),因此使其可启动会有所不同。但是有同样的限制:您需要修改非分区区域
传统上,BIOS引导需要一个特殊的不可见标记。这里有几个例子:
在这种情况下,您不能简单地复制文件。由于缺少这些特殊标记,因此生成的驱动器将无法启动。
但是,UEFI引导是一种特殊,更智能的解决方案,它专门解决了这些问题。与往常一样,我建议阅读此博客文章,以简化UEFI入门。请特别注意后备启动部分。这也在这里进行了更详细的讨论。
您需要做的就是在固件将搜索的分区中特定路径中的文件。为获得最佳兼容性1,是的,这应该是GPT分区磁盘中标记为EFI系统分区的FAT32格式的分区。但是,大多数固件也会在MBR分区和未分区(超级软盘)磁盘上搜索(单个)分区。
这意味着UEFI引导真正需要的只是一个包含后备引导项的FAT32 1格式的单个分区。在x86_64架构上,这意味着您只需要一个\EFI\BOOT\BOOTx64.EFI
文件。您可以将一个闪存驱动器复制到另一个闪存驱动器(包括该文件),然后一切正常。
该标准需要1个 FAT32和GPT。MBR和superfloppy不是,AFAIK,但是对它们的支持在台式机硬件中非常普遍。笔记本电脑更深奥一些;平板电脑值得一提,而Mac EFI是独一无二的。
2 UEFI标准需要FAT32支持。某些固件也可能支持NTFS(尽管远远不能保证),您实际上可以在FAT32 ESP中嵌入NTFS驱动程序。