如果之前已经讨论过这个问题,我提前道歉,我尽了最大努力搜索,但找不到我想要的东西。
我的问题是,我有一个 Windows 8 vhd,我想将其更新到 8.1,据我所知,唯一的方法是使用虚拟盒 vm,因为 Windows 会认为它不是虚拟驱动器,它会安装(我还希望能够在更新到 8.1 后再次本地启动 vhd)。当我尝试在虚拟机中启动 vhd 时,出现错误“启动配置数据文件不包含操作系统的有效信息,错误 0xc0000098。我一直在尝试遵循这个建议:https://superuser.com/a/571912/317553但我被困在“选择文件夹“BCD”中的文件“BCD”,然后单击“打开”。请注意,该文件没有文件扩展名。”,因为我找不到任何 bcd 文件或文件夹。所以我的问题是,什么是最简单的方法来实现这一点,更重要的是,这是否可能?
到目前为止我已经尝试过:
“使用工具将 BCD-Bootsector 安装到驱动器。我使用了 NeoSmart 的 EasyBCD:启动该工具并选择 BCD 部署。在“创建可启动外部媒体”下,选择已安装 VHD 的驱动器名称,然后单击“安装 BCD”。-来自提供的链接中的答案,这会产生我提到的错误
答案1
使用虚拟机进行更新会大大减慢更新过程,但这似乎是将 Win 8 VHD 更新到 Win 8.1 的唯一方法。HYPER-V 可以运行 Windows 8 VHD,因此 Windows 8 的第二个本机安装可以作为更新的主机。
要使 VHD 在 VM 中可启动,请执行以下步骤:
A)使用 bootsect 将 MBR 和 PBR 记录写入 VHD 本身:
(在 Windows 8 中使用管理员命令提示符,假设 VHD 映射到 V:)
bootsect /nt60 v: /mbr
B)使用磁盘管理确保VHD单个分区标记为活动,如果没有,则标记为活动。
C)在VHD中创建BCD:
bcdboot v:\windows /sv:
如果您在 Windows 8 VHD 中启动,那么 V:将变成 C:!
最后一件事。Windows VHD 安装是本机安装 - 它使用所有计算机硬件以及虚拟磁盘层。VM 是不同的计算机硬件,因此您最终必须再次激活 Windows。
答案2
看来您的 BCD 有问题。
我从 Windows 7 VHD(使用 VirtualBox 创建)启动时也遇到了同样的问题。
这TechNet 上的这篇文章对我帮助很大(我会总结一下它的内容)。
您需要做的就是:
使用 Diskpart 附加该 VHD(该技术文章中有所解释)或使用磁盘管理
(按Win+ R,键入diskmgmt.msc
,点击Enter,选择Action
菜单 ->Attach VHD
)。使用 BCDTool 添加启动项(此处是文章中的文字)
使用位于 VHD 映像的 \System32 目录或 Windows PE 中的 BCDboot 工具将启动环境文件和启动配置数据 (BCD) 配置从 VHD 中的 \Windows 目录复制到系统分区。在具有 BIOS 固件的计算机上,系统分区是第一个硬盘的活动分区。例如,要从 VHD 映像使用 BCDboot,请在命令提示符下键入:
cd v:\windows\system32
bcdboot v:\windows在此步骤中,我使用了 Windows 7 安装盘(Win 8 的工作方式相同),从磁盘启动,进入恢复并运行命令行。然后我输入了最后 2 个命令。
(可能有很多替代方法可以使用工具、WinPE 磁盘等来完成此步骤)。重新启动计算机,选择操作系统并运行。
笔记:如果你的电脑是基于 UEFI 的,那么这将不起作用。看看这里再次获取说明。
希望能帮助到你!