我有一台旧迷你电脑(Acer R3610 Revo),我把它改造成了一台通用服务器(主要用于运行 Docker 容器)。它安装了 4GB 的物理 RAM(规格和 BIOS 显示),但只有约 3GB 可供 Ubuntu 使用。它运行的是 Ubuntu 18.04。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic
经过一番阅读后,看起来这可能是由于 PAE(或缺少 PAE)造成的,但它运行的是 64 位版本,据我所知,这应该意味着 PAE 是默认安装的。
$ uname -a
Linux master_control 4.15.0-193-generic #204-Ubuntu SMP Fri Aug 26 19:20:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
然而,当我检查内核时,并没有提到 PAE,而很多在线资源都说应该有。
$ uname -r
4.15.0-193-generic
出于好奇,我尝试安装 pad 内核,但无法找到该包。
$ sudo apt-get install linux-generic-pae linux-headers-generic-pae
[sudo] password for master:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-generic-pae
E: Unable to locate package linux-headers-generic-pae
我快速地谷歌了一下,但很早就放弃了,因为我不确定在这种情况下这是否是正确的路线。
我认为部分内存可能是硬件保留的,于是进入 BIOS,将视频内存设置从自动(256MB)切换到 64MB(这是我能设置的最低值,但仍然能获得显示输出)。这有点帮助,使 Ubuntu 中的可用内存从大约 2.93GB 增加到 3.11GB(根据 htop 和其他输出)。
$ free -h
total used free shared buff/cache available
Mem: 3.1G 1.3G 368M 3.4M 1.4G 1.7G
Swap: 2.9G 0B 2.9G
有类似的讨论,但 1GB 似乎太多了……我不确定如果 APU 被限制为 64MB 会怎样 64 位系统只能看到 4GB RAM 中的 3GB
好奇我是否能够为 Ubuntu 释放最后约 1GB 左右的空间,或者它是否可能是硬件保留的,或者根本无法访问。
答案1
感谢@Terrance 提供一些我在搜索中没有找到的附加帖子。看起来这是基于 Atom 的机器(或者至少是这些宏碁)的设计。看起来像是常见问题没有人能克服这些困难,这个帖子建议我缺少的数量是为其他硬件保留的。
Aspire Revo R3600 或 R3610 可识别 3GB RAM / 为什么我的 Aspire Revo R3600 或 R3610 只能识别 4GB 内存中的 3GB RAM?
如果您在 Aspire Revo R3600 或 R3610 中安装了 4GB 的随机存取存储器 (RAM),操作系统会将其识别为仅 3GB。这不是由于软件限制,而是由于 Atom 处理器的架构。
原因
由于其设计,Atom 处理器可以处理高达 4 GB 的 RAM。部分内存将在系统启动期间分配给硬件资源,从而使操作系统无法看到这些内存。
解决
这是由于产品设计而产生的预期产品行为,并不表示产品故障或缺陷。
更多信息
系统缺失内存的使用方式如下:
- 256 兆字节 (MB) 被分配为视频内存。
- PCI硬件资源共计使用512MB。
- 256 MB 专用于 PCI Express 硬件资源。
有道理的是,在我将视频内存减少到 64MB 后,我在操作系统中得到了一些回报,而 PCI 资源使用的剩余 768 MB 左右将接近 4GB 减去一些四舍五入。