由于我无法控制的原因,我将购买一台功能强大的笔记本电脑,配备 8GB RAM 和支持 64 位操作系统的 CPU - 但使用 32 位 Windows XP。如果我升级 RAM,Windows XP 将只能看到 2GB(没有开关boot.ini
)。
我可以安装任何允许我运行 Windows 7 64 位并利用机器上任何额外 RAM 的 VM 软件吗?
请原谅我对 VM 软件工作原理的无知,但是可以“作弊”吗?
答案1
简而言之,VM 将无法帮助您。
操作系统 [内核] 名称中的 32 位意味着它(及其应用程序)使用 32 位指针来寻址物理和虚拟内存。32 位应用程序无法同时访问超过 4 GiB 的内存,并且应用程序地址空间的一部分被内核占用:整个 4 GiB可能的内存地址分为两个区域:默认情况下,内核占用 2 GiB,应用程序占用 2 GiB。同样,这种划分仅适用于虚拟内存:两个应用程序可以同时使用这 2 GiB 内存,但从物理内存的不同部分获取。此限制也适用于内核。
你可以做两件事:
更改虚拟内存分割。这在任何 WinXP 安装上都是可行的,并将为应用程序提供额外的 1 GiB 内存:之后系统可以一次使用最多 4GiB 内存,但每个应用程序只能使用 3 GiB(而不是 2)。
使能够聚丙烯酰胺凝胶电泳(物理地址扩展)。这仍然允许应用程序使用不超过 2 或 3 GiB 的 RAM,具体取决于虚拟内存分割,但之后您的系统将获得对所有内存的访问权限(实际上最大值为 64 GiB;肯定不会满足)。
以下是两个 MSDN 文章的链接:一个是关于启用 3GiB 拆分(它不会告诉你如何启用 PAE,尽管它是 URI)还有另一个关于启用 PAE。总而言之,您需要在 boot.ini 中为您的内核添加/3GB
和/PAE
相应的开关(不要忘记备份旧的启动项!)。
最后:即使你同时启用 3GiB 拆分和 PAE,虚拟机不会获得超过 3GiB 的内存. 永远不要在 32 位系统上。
答案2
不,很遗憾。您可以激活聚丙烯酰胺凝胶电泳以获得更多功能,但它无法替代 64 位。
难道你就不能说服给你这台笔记本电脑的人吗?或者干脆直接安装 64 位 Win7?
答案3
您将能够在 32 位 Windows 上的虚拟机内运行 64 位/x64(只要您拥有与 VT 位或类似位兼容的 CPU),但是,它将无法看到额外的 RAM(除了 Phoshi 所说的 PAE,但同样,它不能替代 64 位 Windows)。
如果您有 Windows 7 x64 的备用副本,如果我是您,我会将其安装为我的主要操作系统并充分利用 8GB 内存。
答案4
这是可能的,前提是您的主板和处理器支持 CPU 虚拟化。从VirtualBox 手册:
VirtualBox 支持 64 位客户操作系统,即使在 32 位主机操作系统上也可以支持,只要满足以下条件:
您需要一个具有硬件虚拟化支持的 64 位处理器。
您必须为需要 64 位支持的特定 VM 启用硬件虚拟化;64 位 VM 不支持软件虚拟化。
如果您想在 32 位主机操作系统上使用 64 位客户机支持,您还必须为特定 VM 选择 64 位操作系统。由于在 32 位主机上支持 64 位会产生额外开销,因此 VirtualBox 仅在明确请求时才启用此支持。
我知道这也可以与 VMWare 一起使用。这里的基本思想是,如果您有一个支持虚拟化的 64 位处理器,那么这是可能的,因为虚拟机直接在 CPU 上执行代码。我不知道这是否允许您使用系统中的额外 RAM,但有其他事情能做使用额外的内存。
如果您将页面文件扩展到额外内存(使用上一个链接),理论上您可以恢复部分额外 RAM(尽管会有一些开销)。使用该方法,您最好使用 32 位客户机(以避免 32 位操作系统上的 64 位 RAM 地址开销)。