如何确定正在使用的 RAM 插槽数量?

k0p*_*kus 173 linux command-line memory hardware

我忘记了我的笔记本电脑上安装了多少个 RAM (DIMM) 模块。我不想拧开它,而是想使用 bash 在控制台上查找它。我如何收集这些信息?

Chr*_*own 241

由于您没有提及,我假设这是在 Linux 上。以下任何一项都应该向您展示(使用 root):

dmidecode -t memory
Run Code Online (Sandbox Code Playgroud)
dmidecode -t 16
Run Code Online (Sandbox Code Playgroud)
lshw -class memory
Run Code Online (Sandbox Code Playgroud)

  • lshw 做到了。 (12认同)
  • 对于这些命令,您仍然需要使用 `sudo` 或 root。 (12认同)
  • `dmidecode -t memory` 等价于 `dmidecode -t 5,6,16,17`。 (2认同)

小智 40

让我们让不那么精通 shell 的用户更容易:

sudo dmidecode -t memory | grep -i size
Run Code Online (Sandbox Code Playgroud)

我的笔记本电脑上的输出是:

Size: 2048 MB
Size: 1024 MB
Run Code Online (Sandbox Code Playgroud)

...表明我安装了一个 1GB 模块和一个 2GB 模块。


小智 12

就我而言,

#dmidecode -t 16
Run Code Online (Sandbox Code Playgroud)

报告这个:

Handle 0x000A, DMI type 16, 23 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: None
        Maximum Capacity: 16 GB
        Error Information Handle: Not Provided
        Number Of Devices: 2
Run Code Online (Sandbox Code Playgroud)

我想指出的是,我在一个模块中只有 4 GiB 的 RAM。通过执行以下操作显示该信息:

 # dmidecode -t 17
Run Code Online (Sandbox Code Playgroud)

这显示:

# dmidecode 2.11
SMBIOS 2.7 present.

Handle 0x000B, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x000A
    Error Information Handle: Not Provided
    Total Width: Unknown
    Data Width: Unknown
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: ChannelA-DIMM0
    Bank Locator: BANK 0
    Type: Unknown
    Type Detail: None
    Speed: Unknown
    Manufacturer: Not Specified
    Serial Number: Not Specified
    Asset Tag: None
    Part Number: Not Specified
    Rank: Unknown
    Configured Clock Speed: Unknown

Handle 0x000C, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x000A
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 4096 MB
    Form Factor: SODIMM
    Set: None
    Locator: ChannelB-DIMM0
    Bank Locator: BANK 2
    Type: DDR3
    Type Detail: Synchronous
    Speed: 1600 MHz
    Manufacturer: Hynix/Hyundai
    Serial Number: 11111111
    Asset Tag: None
    Part Number: HMT351S6CFR8C-PB  
    Rank: Unknown
    Configured Clock Speed: 1600 MHz
Run Code Online (Sandbox Code Playgroud)

而且,如您所见,Bank 2 已满,Bank 0 为空。主板只有两个内存插槽,但它们必须是双通道的。


Sco*_*and 5

尽管 OP 更愿意避免拧开进行物理检查,但我强烈建议每个人都这样做,因为命令行探测的答案可能会产生误导。在我的笔记本电脑上,命令行探针说我有 4 个插槽(2 个已使用,2 个空),但在拧下我实际上有 2 个插槽(也许我在其他地方有 2 个隐藏的插槽,但移除底部面板时不可见):

sudo dmidecode | grep -A 9 "System Information"
System Information
    Manufacturer: Micro-Star International Co., Ltd.
    Product Name: CX61 0NC/CX61 0ND/CX61 0NF/CX61 0NE
    Version: REV:1.0
    Serial Number: FFFFFFFF
    UUID: 03000200-0400-0500-0006-000700080009
    Wake-up Type: Power Switch
    SKU Number: To be filled by O.E.M.
    Family: To be filled by O.E.M.


# -------

sudo dmidecode -t 16
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0024, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 32 GB
    Error Information Handle: Not Provided
    Number Of Devices: 4


# -------


sudo dmidecode -t 17
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0025, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 4096 MB
    Form Factor: SODIMM
    Set: None
    Locator: ChannelA-DIMM0
    Bank Locator: BANK 0
    Type: DDR3
    Type Detail: Synchronous
    Speed: 1600 MHz
    Manufacturer: 830B
    Serial Number: 91D82E7B
    Asset Tag: 9876543210
    Part Number: M2S4G64CB8HG4N-DI 
    Rank: 2
    Configured Clock Speed: 1600 MHz

Handle 0x0027, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: Unknown
    Data Width: Unknown
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: ChannelA-DIMM1
    Bank Locator: BANK 1
    Type: Unknown
    Type Detail: None
    Speed: Unknown
    Manufacturer: [Empty]
    Serial Number: [Empty]
    Asset Tag: 9876543210
    Part Number: [Empty]
    Rank: Unknown
    Configured Clock Speed: Unknown

Handle 0x0028, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 4096 MB
    Form Factor: SODIMM
    Set: None
    Locator: ChannelB-DIMM0
    Bank Locator: BANK 2
    Type: DDR3
    Type Detail: Synchronous
    Speed: 1600 MHz
    Manufacturer: 830B
    Serial Number: 20DC2E7C
    Asset Tag: 9876543210
    Part Number: M2S4G64CB8HG4N-DI 
    Rank: 2
    Configured Clock Speed: 1600 MHz

Handle 0x002A, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0024
    Error Information Handle: Not Provided
    Total Width: Unknown
    Data Width: Unknown
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: ChannelB-DIMM1
    Bank Locator: BANK 3
    Type: Unknown
    Type Detail: None
    Speed: Unknown
    Manufacturer: [Empty]
    Serial Number: [Empty]
    Asset Tag: 9876543210
    Part Number: [Empty]
    Rank: Unknown
    Configured Clock Speed: Unknown
Run Code Online (Sandbox Code Playgroud)

Ubuntu 14.04

  • @azorius `(可能未实现)` 意味着 bios/芯片组可以处理 4 个插槽,但主板制造商决定不包括 bios 可以在实际 MB 的物理领域中支持的可能插槽中的 2 个。由于 dmidecode 与 bios 对话,而不是实际的物理螺钉、螺栓和胶水,因此它只知道 dmi 表中的内容 - 即它可以处理 4 个插槽,但其中 2 个没有信息,所以 **假设**是它们只是被卸载,而不是不存在。 (5认同)