Windows 7 使用系统驱动器的 VHD 克隆启动至 VHD

Windows 7 使用系统驱动器的 VHD 克隆启动至 VHD

这似乎不是一个太难的问题,经过几次困难,我已经非常接近了。但我还是无法完全达到目标。

我在开发车间运行 Windows 7。我想开始使用 VS2010 来处理一些暂时不会发布的东西。我的老板说生产机器上没有测试版代码,但如果我可以在隔离环境(如虚拟 PC)中运行 VS2010,我可以为这个项目运行 VS2010。

好吧,我之前在 VPC 上使用过 Win7 的测试版和 RC 版,由于 VPC 环境的原因,速度非常慢。但每个人都对 Windows 7 的启动到 VHD 功能赞不绝口,这种功能只对磁盘进行虚拟化,而您实际上是在硬件上运行。速度应该会慢一点,但远不及 VPC 的速度损失。

我花了相当多的时间按照我想要的方式安装所有东西。所以我认为,我只需使用 Disk2VHD 克隆我的系统驱动器,然后从那里启动,然后将 VS2010 安装到那里。(我将大部分用户数据(包括我的所有项目)保存在单独的分区中,这样就不必复制并且仍然可用。)

好吧,我遇到了一些困难,主要是因为我使用的是旧版本的 Disk2VHD -(如果你想尝试,请获取最新版本。)但我最终还是让它启动了。(Scott Hanselman 有一篇关于启动 VHD 的很好的博客文章)。

但这并不是我所期望或希望的。我期望的是 VHD 将成为 C: 驱动器,而原始 (物理) C: 驱动器将被隐藏或安装在不同的字母下,从而被隔离并免受任何更改。

您实际上得到的是 VHD 变为 D: 驱动器,并且您从 D: 驱动器启动,但您的原始 C: 驱动器仍在那里。这还算可以接受,只是 VHD 上的注册表是 C: 驱动器上注册表的克隆,并且包含许多对 C: 的硬编码引用。因此结果是有些东西来自(并修改)D:(VHD),但有些东西来自(并修改)C:。(如果您打开 cmd 提示符并执行 SET 来查看您的环境变量,您将看到 D:\ 和 C:\ 路径的混合。)所以我实际上没有一个独立的环境。最重要的是,%ProgramFiles% 仍然设置为 C:\Program Files。

我真正需要的是一个可以以文件形式(而不是注册表项)访问已安装 VHD 上的注册表文件的工具,并且可以对从 C:\ 到 D: 的所有字符串进行全局搜索和替换。我还没有找到这样的程序。(我尝试使用名为 Registry Replace 的程序来执行此操作,但是,即使以管理员身份运行,注册表也不会允许您更改某些条目。)

有人知道吗?或者有其他方法可以解决我的问题(除了从头开始使用干净的 VHD 并在其上安装 Win7 和我的所有程序之外)?

答案1

免责声明:我没有从 VHD 进行任何启动或上述修复

参考此知识库文章。请务必将实际系统驱动器更改为其他驱动器。您可能还想取消分配该驱​​动器号,以进一步隔离。

答案2

对我来说有用。我猜如果我们在捕获 VHD 之前清理注册表项,可能就不需要更改 HKLM\MountedDevices 子项了。尚未测试;)

相关内容