当在非本地存储上运行时,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 保持不变,设置仍将有效。