1. 序章

通常、コンピューターのRAMスロットの数を知りたい場合は、ケースを開いて調べるか、モデルの仕様を検索することができます。 しかし、いくつかの便利なLinuxコマンドを利用する方がはるかに簡単です。

このチュートリアルでは、dmidecodelshwを使用して、システムのRAM構成を取得します。

2. dmidecodeを使用する

まず、 dmidecode を見てみましょう。これは、BIOSのDMIテーブルを照会し、わかりやすい形式で表示するコマンドです。

このコマンドをスーパーユーザーとして実行する必要があります。

$ sudo dmidecode -t memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.1.1 present.

Handle 0x0049, DMI type 16, 23 bytes
Physical Memory Array
	...
	Number Of Devices: 2

Handle 0x004A, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0049
	...
	Size: 8192 MB
	...
	Locator: DIMM A
	...

Handle 0x004B, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x0049
	...
	Size: No Module Installed
	...
	Locator: DIMM B
	...

プロパティデバイス数でスロットの総数を確認でき、メモリデバイスセクションで各スロットの詳細を確認できます。

上記の例では、最初のスロットに8GBのRAMがあり、2番目のスロットにはメモリモジュールが取り付けられていないことがわかります。

ここで、空のスロットのみを印刷し、他のすべての情報を無視したいとします。 dmidecodegrepコマンドにパイプできます。

$ sudo dmidecode -t memory | grep "No Module Installed" -A 3
	Size: No Module Installed
	...
	Locator: DIMM B

-A オプションを使用すると、grepSizeエントリの後に3行を追加します。これは、話しているスロットを確認するのに十分です。

3. lshwを使用する

lshw コマンドは、他のソースとともにDMIテーブルを照会するため、dmidecodeが表示しない場合にメモリ情報を表示することがあります。 結果をJSON、HTML、またはXML形式で印刷できます。

dmidecode と同様に、スーパーユーザーとして次のコマンドを実行する必要があります。

$ sudo lshw -class memory
  ...
  *-memory
       ...
     *-bank:0
          description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2400 MHz (0.4 ns)
          ...
          slot: DIMM A
          ...
     *-bank:1
          description: SODIMM DDR4 Synchronous [empty]
          ...
          slot: DIMM B
  ...

上記の出力では、両方のスロットを確認できます。最初のスロットにはメモリモジュールがあり、2番目のスロットには何も取り付けられていません。 スロットが使用可能な場合、説明には[空]というメッセージが含まれます。

ここで、 dmidecode で行ったように、空のスロットのみを印刷したいとします。 同様に、lshwをgrepにパイプできます。

$ sudo lshw -class memory | grep empty -B 1
     *-bank:1
          description: SODIMM DDR4 Synchronous [empty]

この場合、grep-B引数を使用して、descriptionの前の行を取得しました。

4. 結論

この短い記事では、dmidecodelshwがハードウェア構成を調べるための便利なツールであることがわかりました。

メモリを照会すると、両方のコマンドで同様の出力が表示されるため、使用中または使用可能なスロットを明確に識別できます。