Ubuntu 12.04 LTS 32位无法检测到4GB内存

我最近为一台已有的12.04 32位Ubuntu安装了4GB的内存条。但是系统没有识别出全部的内存,只显示了3.2GB。请看:
administrator@Root2:~$ free
             total       used       free     shared    buffers     cached
Mem:       3355256    1251112    2104144          0      48664     391972
-/+ buffers/cache:     810476    2544780

系统支持PAE功能,见:
administrator@Root2:~$ grep --color=always -i PAE /proc/cpuinfo
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dts
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dts

系统已经完全打补丁,并尝试运行手动PAE升级,请参考:
administrator@Root2:~$ sudo apt-get install linux-generic-pae linux-headers-generic-pae
[sudo] password for administrator: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
linux-generic-pae is already the newest version.
linux-headers-generic-pae is already the newest version.
The following packages were automatically installed and are no longer required:
  language-pack-zh-hans language-pack-kde-en language-pack-kde-zh-hans
  language-pack-kde-en-base kde-l10n-engb kde-l10n-zhcn
  language-pack-zh-hans-base firefox-locale-zh-hans
  language-pack-kde-zh-hans-base
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

我不确定还有什么其他方法可以识别已安装的完整物理内存,除非加载64位。 有什么想法吗? 谢谢!

uname -r 的输出

administrator@Root2:~$ uname -r
3.2.0-24-generic-pae

对我来说看起来是正确的。你需要64位操作系统。如果我没记错,32位操作系统下每个单独的进程受限于3 GB的内存,这就是你看到这个情况的原因。 - user60235
1我不认为每个进程的内存限制是问题所在。在我看来,某种原因导致PAE内核实际上没有运行。你有检查过吗?能否将uname -r的输出添加到你的问题中? - Eliah Kagan
@ Eliah: 是的,你说得对,我忽略了他是在看总共安装的内存,而不是每个进程的内存。 - user60235
@Eliah Kagan 请查看输出或当前版本:administrator@Root2:~$ uname -r 3.2.0-24-generic-pae - David
@gecko,“free”报告的是系统内存,而不是它自己的内存。看起来是主板出了问题。检查dmesg的输出或者/var/log/kern.log文件的内容,找到包含e820内存映射的部分,并将这些信息添加到问题中。 - psusi
3个回答

@fossfreedom - 问题已通过升级到最新版本的BIOS来解决。感谢你的提示!查看更改后的可用内存输出:
administrator@Root2:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          4026       1105       2921          0         45        311
-/+ buffers/cache:        748       3278

即使你使用的是Windows系统,你也无法看到全部4GB的内存分配。其中一部分被保留用于显存。如果你去制造商的网站上查看你的系统的技术规格,在内存部分会告诉你有多少已安装内存是可用的。

32位系统只支持最多3.2GB的内存。如果你想充分利用你的内存,应该升级到64位系统。

他可以使用超过3 GB的内存,只是不能在单个进程中使用。 :-) - user60235
5这个答案是错误的。通过运行PAE内核,可以克服32位存储器限制,从而可以访问高达64 GiB的RAM。请参阅http://en.wikipedia.org/wiki/Physical_address_extension#Linux。问题是为什么这不起作用。(对不起,实际上我并不是有意要点踩的,已经取消了点踩。) - Eliah Kagan
这个答案是错误的,接受它会发出错误的信号。 - Rinzwind
@Robert Hollander:是的,我会把它升级为64位来使其运行。显然,我尽量避免这样做,但不幸的是似乎没有其他选择。非常感谢大家的建议!非常感激! - David
@David - 其他评论者是正确的 - 这个答案是错误的,你或许需要考虑接受这个答案对其他人未来的有用性。谢谢! - fossfreedom
@fossfreedom:我已将其作为答案删除。感谢你指出这个问题。我进一步搜索了这个问题,但没有太多的运气,所以除非有人能提供更好的替代方案,否则我会选择升级。 - David
1@David - 你的电脑是什么品牌和型号?请将这个信息添加到你的问题中。例如,可能是BIOS问题,可以参考这个问答链接:http://askubuntu.com/questions/80721/only-3-2-gb-of-memory-being-used-on-a-64-bit-system - fossfreedom
@fossfreedom 这是戴尔Vostro 200。我也在考虑可能的BIOS问题。稍后会更新。 - David