GUID

GUID

我将整个 SATA 硬盘(逐扇区)复制到了大小相同的新 SATA 硬盘上。在新硬盘上,我找到了所有分区(OS、诊断、恢复、ESP)和文件,但使用 UEFI 的电脑(DELL)拒绝在新硬盘上启动。

我唯一能接触到新硬盘的方法是将其设置在另一个 SATA 端口上,并以旧硬盘作为主驱动器进行启动。从那里,我尝试使用找到的解释这里但我不熟悉这些命令,而且我害怕接触到旧硬盘。我正在准备一个 USB 闪存,以便仅连接新硬盘即可启动 WINRE。如果您有任何想法或提示可以提供帮助,我将不胜感激。

答案1

GUID

在新奇的 UEFI 方案下,磁盘(甚至分区)全球唯一标识符

我曾经尝试将 Linux 系统从一个驱动器复制到另一个驱动器,但不更改 UUID(类似于 GUID),结果导致系统崩溃。您在复制驱动器时是否也遇到过类似情况?

这实际上只是猜测,但如果这是问题所在,那么您需要弄清楚新驱动器的 GUID 是什么,以及如何更新引导加载程序以使用它。


发现 GUID

拉维库马尔·普拉古尼在 technet 上发布了此内容

您可以使用以下方式查找磁盘的 GUID磁盘分区

开始>运行>cmd>diskpart>列出磁盘并检查 GPT

开始>运行>cmd>diskpart>列出磁盘>选择磁盘>uniqueid 磁盘并检查磁盘 ID

注意:运行磁盘分区具有提升的管理员权限的命令..

如果您需要分区的 GUID,您也可以使用 diskpart 来查找它。


更新引导加载程序

执行程序是 Windows 的启动配置数据编辑器。(您可能必须从管理员命令提示符运行它。)

我不确定如何使用这个工具来实现这个目的,但它是一个开始研究的好地方。

Windows GPT 常见问题解答来自微软的可能也会有帮助。


有关 UEFI、GPT 和 GUID 的更多解释这里(尽管是面向 Linux 的。)

答案2

现在我一直使用 USB 闪存通过 WINRE 启动计算机,并且只连接了我的新的 HDD。

我使用 diskpart 找到了新磁盘的 GUID。

我使用 bcedit 显示 ESP 分区的 BCD 条目。

我成功修改了 3 个变量,以便设置新的 GUID,因为它们包含旧的 GUID。
为此,我使用了以下命令:
bcdedit /store "path\BCD" /set {bootmgr} resumeobject {新的 GUID} bcdedit /store "path\BCD" /set {bootloadersettings} resumeobject {新的 GUID} bcdedit /store "path\BCD" /set {bootloadersettings} resumeobject {新的 GUID}

然后我重启了电脑,问题依旧。我可以看到 ESP 分区中的 BCD 文件有变量 bootmgr/resumeobject 返回了旧的 GUID!

最后,经过几个小时的研究,我执行了以下 3 个命令:
- Bootrec /fixmbr - Bootrec /fixboot - Bootrec /rebuildbcd 最后一个命令要求我在 BCD 中添加包含 Windows 的分区

...现在我的电脑启动正常了。

相关内容