我想使用以下步骤创建可启动的 Windows 7 vhd: http://www.microsoft.com/downloads/details.aspx?FamilyID=80ede31d-3509-407b-a896-0beea8705589&displaylang=en 但是,我想知道我是否也能使用 Virtualbox 访问 vhd。我打算在虚拟机中安装 VS2008,并在快速工作时在 Virtualbox 中使用它,在大量工作时在本机硬件上使用它。我不想用 VS2008 开发工作弄乱我的实际 Win7 安装。
答案1
我强烈建议您为 VB 和实际启动使用单独的 Windows 映像。是的,如果必须,请购买另一个许可证。VirtualBox 不会伪造您的真实硬件,至少您可能最终不得不多次重新激活 Windows 并失去许可证,因为 MS 认为您是盗版者。
答案2
我来这里是为了寻找同一个问题的答案。这个问题困扰了我几个月,所以我需要找到一个解决方案,我做到了。尽管这个问题已被标记为已回答,但尚未给出解决方案,所以我在这里为所有寻找答案的人填补空白。基本上,这与使任何不可启动的硬盘可启动的过程相同。您可以使用 Windows 的命令行工具来实现这一点。但是,我使用了第三方工具:
在 Windows 中挂载 VHD(控制面板 --> 计算机管理 --> 磁盘管理 --> 操作 --> 附加 VHD)
使用工具将 BCD-Bootsector 安装到驱动器。我使用了 NeoSmart 的 EasyBCD:启动该工具并选择 BCD 部署。在“创建可启动外部媒体”下,选择已安装 VHD 的驱动器名称,然后单击“安装 BCD”。
通过右键单击相应的“磁盘*”来卸载 VHD。
将 VHD 添加到 VirtualBox 中的虚拟机。
VHD 现在可以启动了。根据您运行的操作系统,您可能会遇到问题。我使用 Win8 x64 对此进行了测试。安装引导扇区后,我在 VirtualBox 中收到“未找到 winload.exe”错误。以下是修复方法:
在 Windows 中再次挂载 VHD。
下载 Visual BCD。启动它并选择“存储”-->“打开存储”并操作到已安装的 VHD 的驱动器。
在“BCD”文件夹中选择文件“BCD”,点击“打开”。注意该文件没有文件扩展名。
单击左侧“Loaders”下的启动项,您将在右侧看到其内容列表。
双击“应用程序设备”,并将“类型”和“驱动器”设置为“BootDevice”。对“OSDevice”执行相同操作。
关闭商店,卸载 VHD 并在 VirtualBox 中启动它。现在启动应该没有问题了。
如果您在 Windows 8 中收到“错误签名”错误,则需要通过从 Windows 8 安装光盘复制此文件来更新启动驱动器根目录中的“bootmgr”。它也位于那里的根目录中。
到目前为止,我在 VirtualBox 中使用相同的 VHD 并直接启动时没有遇到任何问题。尽管这项技术受到批评,但只要记住以下几点,它就相对轻松:
如果您只需要在其他操作系统中执行工作而不需要保留更改,请使用原始 VHD 的副本。
如果您需要更改,请创建一个还原点,以防 VirtualBox 驱动程序搞砸您的系统,尽管这种情况不太可能发生......
VHD 有自己的 BCD 存储,不会干扰您实际计算机的 BCD 存储。因此,修改 VirtualBox 的引导扇区不会对直接引导产生任何影响。万一出现错误,您始终可以重新安装 BCD 存储和引导扇区。
答案3
我认为这就像从一个外部硬盘启动两台不同的计算机。
每次 Windows 启动时,它都会找到不同的硬件,因此它会告诉您某些硬件被移除,某些硬件被添加(并为其添加驱动程序)。因此,如果模拟硬件与真实硬件足够相似,则可能没问题。但我认为,所有硬件卡住的可能性比正常情况要高一些。