为什么通过 USB 克隆的 SSD/原始设备无法启动?

为什么通过 USB 克隆的 SSD/原始设备无法启动?

这不是如何从根本上解决这个问题的问题(它已经解决了)。我只是想更好地理解。

我已经在这里找到了一个好的、合乎逻辑的答案:克隆的分区不位于完全相同的位置

但我对整个过程的理解仍有些问题。或者更确切地说——如何避免我遇到的麻烦。

这个场景(并不)经典:

  • 将 SATA HDD 克隆到 USB SSD(在我的例子中是 AOMEI 备份标准)

  • 将 SSD 放入笔记本电脑内(是的,我首先移除了 HDD;)

  • 开机 - 抱歉 - 没有奖励 - 没有启动 - 没有修复(因为扇区转移了 -> 修复)

所以现在我有了一个(恶心的?)想法,使用每个 USB 的原装 HDD 来启动。

  • 开机 - 抱歉 - 没有奖励 - 没有启动但可以修复(这是第一个问题,因为这些扇区没有移动)

  • 修复后我直接进入命令行-diskpart 和 co

  • 然后我来到bootrec /rebuildbcd我得到了两个都windows 系统提供修复 - 好的 - 但随后出现错误:“...失败...无法区分的系统”(或类似)

嗯,好的,这是一个克隆......(第二个问题:相同disk signature?如果是,如何改变?)

我用一个愚蠢的想法解决了这个问题:

bootrec /rebuildbcd重新开始了,但是扫描并在 C: (SSD) 上选择 Windows 我拔掉了 USB HDD - 然后 - 瞧:它成功完成了。然后我从 SSD 启动。

问题摘要:

  • 为什么原来的硬盘无法从 USB 启动?是因为磁盘 ID 相同吗?如果是,如何避免?(并遇到 Windows 激活问题?)

  • 导致“难以区分的系统错误”的‘因素’有哪些

  • 是否有可能在 USB 上修复 SSD 上的 EFI 系统(交换之前)?

答案1

根据计算机最初的启动方式,您的问题可以有两种不同的答案。事实上,据我所知,您对问题原因(更改分区位置)的解释仅适用于第一种情况(但需要注意的是,我对 Windows 启动的了解不如对 Linux 的了解,所以我可能误解了 Windows EFI 模式启动的这个细节)。两种启动模式(和情况)是 BIOS 模式和 EFI 模式。还有一些可能起作用的常见因素。

BIOS 模式

2011 年底之前售出的大多数电脑都基本输入/输出系统 (BIOS)固件。基于 BIOS 的计算机通过存储在主引导记录 (MBR) 中的引导加载程序进行引导,主引导记录是磁盘上的第一个扇区。我不会详细介绍所有细节,但大多数 BIOS 模式引导加载程序都高度依赖于磁盘上分区的起始扇区号。这是因为 MBR 太小,无法容纳完整的引导加载程序,因此 MBR 代码会从分区的分区引导记录 (PBR;分区的第一个扇区) 加载更多引导代码,进而加载其他代码(也经常用扇区号表示)。具体细节因操作系统和引导加载程序而异,但关键是扇区号在大多数情况下至关重要。因此,如果您的磁盘克隆操作改变了引导分区的起始扇区,而没有调整依赖它的引导加载程序代码或配置,则引导过程将失败。

还有其他分区细节会影响到某些事情,例如可引导分区上是否存在“引导标志”(又称“活动标志”)。由于引导代码驻留在 MBR 和 PBR 中,因此磁盘克隆操作也必须复制此引导加载程序代码。无法保证某些随机磁盘克隆程序会复制这些内容。(我无法具体谈谈你说你使用过的 AOMEI。)

注意最多(但不是全部)搭载 Windows 7 的计算机都使用 BIOS,所有 Windows Vista 和更早版本的计算机也都使用 BIOS(使用 Itanium 或其他特殊 CPU 的计算机除外)。从 2011 年底开始,制造商迅速从 BIOS 转向较新的 EFI/UEFI(下文将介绍),但大多数 EFI 都包含一项称为兼容性支持模块 (CSM) 的功能,该功能使这些计算机能够以 BIOS 方式(又称“传统模式”)启动。因此,可以在较新的基于 EFI 的计算机上以 BIOS/CSM/传统模式安装 Windows(甚至 Windows 8.x 和 10)。这样配置后,计算机的工作方式就像基于 BIOS 的计算机一样。

EFI模式

可扩展固件接口(EFI) 或其 2.x 变体,统一 EFI (UEFI) 是 BIOS 的替代品,从 2011 年底开始成为新电脑上的主流固件。但令人困惑的是,许多制造商在指代其 EFI 时使用术语“BIOS”。恕我直言,这是一种不好的做法,因为它会让人们认为 EFI 只是 BIOS 的小更新,但它们的启动方式确实截然不同。

EFI 启动方式涉及文件;MBR 和 PBR 不发挥特殊作用,也不保存启动代码。计算机知道要启动哪个引导加载程序文件,因为该信息由操作系统安装程序存储在 NVRAM 中。(一个特殊的后备文件名, EFI/BOOT/bootx64.efi, 供可启动的外部媒体(如 USB 闪存驱动器)使用。)与 BIOS 不同,EFI 了解分区,因此 EFI 引导加载程序通常不引用分区的起始扇区。因此,分区的起始扇区在 EFI 模式引导中不那么重要。

相反,EFI 模式启动依赖于某种方法来识别分区本身。这通常是通过全局唯一标识符(GUID;又名 UUID)与磁盘和分区相关的值。因此,如果磁盘克隆操作保留了磁盘和分区 GUID 值,则克隆的磁盘应该保持可启动状态。如果没有,启动过程可能会在某个步骤失败。我不知道 AOMEI 是否会默认保留 GUID 值。请注意,通常不鼓励复制 GUID,因为这些应该是独特的值;但是在克隆磁盘以便替换旧硬件的情况下,最好在新磁盘上复制 GUID 值,以便使新磁盘可启动而无需更改 NVRAM 条目。

另一个复杂因素是,许多 EFI 会主动清除 NVRAM 中的无效启动项。因此,如果你以某种方式将启动磁盘克隆到另一个启动磁盘,不是保留 GUID 值,如果您随后移除原始磁盘,计算机可能会“忘记”第一个磁盘是可启动的。因此,当您重新插入原始磁盘时,计算机可能无法启动。

共同因素

原则上,引导加载程序和操作系统配置可能依赖于文件系统序列号、UUID 或名称。这些值类似于分割GUID,但它们存储在文件系统数据结构中,而不是分区表中。我不知道 Windows 是否这样做,但大多数 Linux 发行版都这样做。

如果遇到启动问题,则必须使用以操作系统为中心的引导加载程序修复或重新安装程序来解决问题。具体细节可能因启动方法而异。例如,您不会使用在 EFI 模式启动时恢复 MBR 的工具。许多较旧的说明往往假设 BIOS 模式启动,因此不适用于较新的 EFI 模式安装。

相关内容