使用中のRAMスロットの数を決定する方法
1. 序章
通常、コンピューターのRAMスロットの数を知りたい場合は、ケースを開いて調べるか、モデルの仕様を検索することができます。 しかし、いくつかの便利なLinuxコマンドを利用する方がはるかに簡単です。
このチュートリアルでは、dmidecodeとlshwを使用して、システムの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番目のスロットにはメモリモジュールが取り付けられていないことがわかります。
ここで、空のスロットのみを印刷し、他のすべての情報を無視したいとします。 dmidecodeをgrepコマンドにパイプできます。
$ sudo dmidecode -t memory | grep "No Module Installed" -A 3
Size: No Module Installed
...
Locator: DIMM B
-A オプションを使用すると、grepはSizeエントリの後に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. 結論
この短い記事では、dmidecodeとlshwがハードウェア構成を調べるための便利なツールであることがわかりました。
メモリを照会すると、両方のコマンドで同様の出力が表示されるため、使用中または使用可能なスロットを明確に識別できます。