BCDEdit 将设备设置为不可用卷 GUID

BCDEdit 将设备设置为不可用卷 GUID

当在非本地存储上运行时,bcdedit无法将device引导加载程序的参数设置为非本地可用的设备。该怎么做?

尤其: 我正在尝试设置外部 BCD 以更正 Parallels 中 VM 中运行 bcdedit 的参数。这是必要的,因为外部 BCD 指向另一个分区,导致无法启动 Windows(错误:找不到 Bootloader)。

Windows 7 所在的分区是/dev/sda4\Device\Harddisk0\Partition4。但是,运行 Windows 的虚拟机中的分区也是 Partition4,但包含在 VM 用作硬盘的映像文件中。


使用 gdisk、diskutil 或 blkid 获取的卷/分区 GUID 设置设备参数,如下所示

bcdedit /store externalBCD /set {default} device \\Volume{77AA5A80-B903-458A-9A48-C8F07BFC1081}

或者像这样

bcdedit /store externalBCD /set {default} device partition=Volume{77AA5A80-B903-458A-9A48-C8F07BFC1081}

不起作用。错误是“此表单中的设备无效”(德语翻译)或“无法设置 Elementdata”(德语翻译)

使用如下 Devicetree 设置设备参数

bcdedit /store externalBCD /set {default} device partition="\Device\Harddisk0\Parition4"

只是将其更改为C:,它将无法在 VM 外部的 BCD 上工作,因为 Windows 所在的分区不会映射到 VM 外部的 C:。

答案1

事实证明,BCD 在内部通过卷的 GUID 存储分区。使用 时bcdedit,它会将 GUID 转换为任何“更简单”的路径。因此,即使将 BCD 移动到不同的系统,只要卷 GUID 保持不变,设置仍将有效。

答案2

如果你将 BCD 导入到注册表项

在此处输入图片描述

您可以在 bootmgr 键下看到磁盘签名(4 字节)和分区偏移量(8 字节)。没有卷 GUID 或卷标。

对于 USB,它也使用签名和偏移量,没有 USBSTOR PNP mountdev ID 或任何其他东西,与 MountedDevices 不同

相关内容