我有一台装有 Windows 7 和 Debian 操作系统磁盘分区的计算机。在Windows 7操作系统上登录时可以看到该计算机具有12GB RAM。然而,Debian 分区只能识别略低于 4GB 的内存。为什么会这样,我该如何解决这个问题?
当我运行“free”命令时,我看到 RAM 量减少了,并且当我尝试在 Virtual Box 中创建虚拟机时,虚拟机允许的最大 RAM 量也达到了同样的低量。据我了解,(这并没有说太多......)操作系统分区只是磁盘分区而不是RAM分区。
编辑:
运行 Debian 6“Squeeze”32 位
“free”命令的输出
total used free ....
Mem: 3619800 386568 3233232 ...
-/+ buffers/cache: 66944 3552856
Swap: 497972 0 497972
我没有安装 Gnome,所以我不太确定如何截屏。但在 VirtualBox 中,您可以设置虚拟机的 RAM 分配,并且在此 Linux 分区上,该选项的最大容量为 3584MB。
答案1
4GB内存需要32位来存储地址。大多数 32 位处理器架构只能寻址 4GB 内存,较旧的 x86 CPU 也不例外。
最新的 32 位 x86 CPU 可以通过称为PAE.1 64 位 x86 CPU 始终具有 PAE。
PAE 需要 Linux 内核编译选项。如果没有此选项,内核只能寻址 4GB RAM,并且其中一些内存会因为被显卡等外设使用而丢失。但使用此选项时,内核将无法在没有 PAE 功能的处理器上运行。
Debian 的默认内核与大多数 x86 处理器兼容,但无法利用最新处理器的某些功能,例如 PAE。要使用超过 4GB 的 RAM,请安装启用 PAE 的内核并重新启动到其中。在 Debian squeeze 上,您需要linux-image-2.6-686-bigmem
包裹。
如果您有 64 位 CPU,则可以安装 64 位内核:linux-image-2.6-amd64。借助 64 位内核,您可以使用超过 4GB 的 RAM,并且可以运行 32 位和 64 位应用程序。或者您可以安装整个 64 位发行版(amd64
架构)。要查明您的处理器是否是 64 位处理器,请运行grep -w lm /proc/cpuinfo
— 如果出现一行flags : … lm …
,则说明您拥有 64 位 CPU。
请注意,在 32 位系统上,大小为虚拟的内存仍然限制在4GB。在 Linux 上,这分为 1-3GB 用于内核和 1-3GB 用于进程。这是进程中可寻址内存的限制; 32 位系统可以使用超过 4GB 的 RAM,因为每个进程最多可以使用 1-3GB 的 RAM。因此,如果您想运行 RAM 超过 3GB 的 VirtualBox 虚拟机,则需要安装 64 位发行版。