9.3.6. 您的 RAM 没有被识别?
在某些情况下,内核无法识别您的所有内存(RAM),这会导致系统使用的内存少于所安装的内存。您可以使用 free -m 命令找出正在使用的 RAM 量。如果显示的总内存与您的预期不匹配,则很可能至少有一个内存模块有故障。在基于 BIOS 的系统中,您可以使用 Memtest86+ 工具测试系统内存 - 详情请查看 第 23.2.1 节 “加载内存(RAM)测试模式”。
注意
有些硬件配置在系统保留的 RAM 中有一个部分,且对主系统不可用。值得注意的是,带有集成图形卡的便携式计算机将为 GPU 保留一些内存。例如,具有 4 GiB RAM 和集成的 Intel 图形卡的笔记本电脑将仅显示大约 3.7 GiB 的可用内存。
另外,kdump 崩溃内核转储机制(在大多数 Red Hat Enterprise Linuxnbsp 上默认启用)机制 ;Linux 系统为主内核崩溃时保留一些内存。使用可用命令时,预留内存也将不显示为可用 。有关 kdump 及其内存要求的详情,请查看 Red Hat Enterprise Linux 7 内核崩溃转储指南。
如果您确定内存没有任何问题,您可以尝试使用
mem=
内核选项手动设置内存量。
过程 9.7. 手动配置内存
- 启动计算机并等待启动加载器菜单显示。如果您将引导装载程序超时时间设置为 0,请按 Esc 键 来访问它。
- 当显示启动加载器菜单时,使用光标键突出显示要引导的条目,然后按 e 键编辑此条目的选项。
- 在选项列表中,找到内核行 - 即以关键字
linux(或者在某些情况下是 linux
16
)开头的行。在该行末尾附加以下选项:mem=xxM
将 替换为您在 MiB 中有的 RAM 量。 - 按 F10 或 Ctrl+X 使用编辑的选项引导您的系统。
- 等待系统启动并登录。然后,打开命令行,然后再次执行 free -m 命令。如果命令显示的 RAM 总量与您的预期匹配,请将以下内容附加到
/etc/default/grub
文件中的GRUB_CMDLINE_LINUX
开头的行,以使更改永久:mem=xxM
将 替换为您在 MiB 中有的 RAM 量。 - 更新了该文件并将其保存后,刷新引导装载程序配置,以使更改生效。以 root 权限运行以下命令:
#
grub2-mkconfig --output=/boot/grub2/grub.cfg
在
/etc/default/grub
中,上面的例子类似如下:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release.*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root vconsole.font=latarcyrheb-sun16 rd.lvm.lv=rhel/swap $([ -x /usr/sbin/rhcrashkernel.param ] && /usr/sbin/rhcrashkernel-param || :) vconsole.keymap=us rhgb quiet mem=1024M" GRUB_DISABLE_RECOVERY="true"