pointfish 2010-04-30
dmidecode以一种可读的方式dump出机器的DMI(Desktop Management Interface)信息。这些信息包括了硬件以及BIOS,既可以得到当前的配置,也可以得到系统支持的最大配置,比如说支持的最大内存数等。 DMI有人也叫SMBIOS(System Management BIOS),这两个标准都由DMTF(Desktop Management Task Force)开发。
dmidecode的输出格式一般如下:
----------------------------------------
Handle0x0002
DMItype2,8bytes
BaseBoardInformation
Manufacturer:Intel
ProductName:C440GX+
Version:727281-0001
SerialNumber:INCY92700942
----------------------------------------
其中的前三行都称为记录头(recoceHeader),其中包括了:
1、recodeid(handle):DMI表中的记录标识符,这是唯一的,比如上例中的Handle0x0002。
2、dmitypeid:记录的类型,譬如说:BIOS,Memory,上例是type2,即"BaseBoardInformation"
3、recodesize:DMI表中对应记录的大小,上例为8bytes.(不包括文本信息,所有实际输出的内容比这个size要更大。)
记录头之后就是记录的值:
4、decodedvalues:记录值可以是多行的,比如上例显示了主板的制造商(manufacturer)、model、version以及serialNumber。
dmidecode的使用方法
1.最简单的的显示全部dmi信息:
#dmidecode
这样将输出所有的dmi信息,你可能会被一大堆的信息吓坏,通常可以使用下面的方法。
2.更精简的信息显示:
#dmidecode-q
-q(--quite)只显示必要的信息,这个很管用哦。
3.显示指定类型的信息:
通常我只想查看某类型,比如CPU,内存或者磁盘的信息而不是全部的。这可以使用-t(--typeTYPE)来指定信息类型:
#dmidecode-tbios
#dmidecode-tbios,processor(这种方式好像不可以用,必须用下面的数字的方式)
#dmidecode-t0,4(显示bios和processor)
dmidecode到底支持哪些type?
这些可以在mandmidecode里面看到:
文本参数支持:
bios,system,baseboard,chassis,processor,memory,cache,connector,slot
数字参数支持很多:(见附录)
4.通过关键字查看信息:
比如只想查看序列号,可以使用:
#dmidecode-ssystem-serial-number
-s(--stringkeyword)支持的keyword包括:
-------------------------------------------------------------------------------------
bios-vendor,bios-version,bios-release-date,
system-manufacturer,system-product-name,system-version,system-serial-number,
baseboard-manu-facturer,baseboard-product-name,baseboard-version,baseboard-serial-number,baseboard-asset-tag,
chassis-manufacturer,chas-sis-version,chassis-serial-number,chassis-asset-tag,
processor-manufacturer,processor-version.
-------------------------------------------------------------------------------------
5.示例
5.1查看当前内存和支持的最大内存
Linux下,可以使用free或者查看meminfo来获得当前的物理内存:
#free
totalusedfreesharedbufferscached
Mem:8182532801079217174001484724737896
-/+buffers/cache:31244245058108
Swap:419295633044189652
#grepMemTotal/proc/meminfo
MemTotal:8182532kB
这里显示了当前服务器的物理内存是8GB。
服务器到底能扩展到多大的内存?#dmidecode -t 16
#dmidecode2.7
SMBIOS 2.4 present.Handle 0x0013, DMI type 16, 15 bytes.
PhysicalMemoryArray
Location:SystemBoardOrMotherboard
Use:SystemMemory
ErrorCorrectionType:Multi-bitECC
MaximumCapacity:64GB(可扩展到64GB)
ErrorInformationHandle:NotProvided
NumberOfDevices:4
但是,事实不一定如此,因此插槽可能已经插满了。也就是我们还必须查清这里的8G到底是4*2GB,2*4GB还是其他?
如果是4*2GB,那么尽管可以扩展到64GB,但是插槽已经插满,无法扩展了:
#dmidecode-t17
#dmidecode2.7
SMBIOS 2.4 present.Handle 0x0015, DMI type 17, 27 bytes.
MemoryDevice
ArrayHandle:0x0013
ErrorInformationHandle:NotProvided
TotalWidth:72bits
DataWidth:64bits
Size:2048MB【插槽1有1条2GB内存】
FormFactor:DIMM
Set:None
Locator:DIMM00
BankLocator:BANK
Type:Other
TypeDetail:Other
Speed:667MHz(1.5ns)
Manufacturer:
SerialNumber:BZACSKZ001
AssetTag:RAM82
Part Number: MT9HTF6472FY-53EA2Handle 0x0017, DMI type 17, 27 bytes.
MemoryDevice
ArrayHandle:0x0013
ErrorInformationHandle:NotProvided
TotalWidth:72bits
DataWidth:64bits
Size:2048MB【插槽2有1条2GB内存】
FormFactor:DIMM
Set:None
Locator:DIMM10
BankLocator:BANK
Type:Other
TypeDetail:Other
Speed:667MHz(1.5ns)
Manufacturer:
SerialNumber:BZACSKZ001
AssetTag:RAM83
Part Number: MT9HTF6472FY-53EA2Handle 0x0019, DMI type 17, 27 bytes.
MemoryDevice
ArrayHandle:0x0013
ErrorInformationHandle:NotProvided
TotalWidth:72bits
DataWidth:64bits
Size:2048MB【插槽3有1条2GB内存】
FormFactor:DIMM
Set:None
Locator:DIMM20
BankLocator:BANK
Type:Other
TypeDetail:Other
Speed:667MHz(1.5ns)
Manufacturer:
SerialNumber:BZACSKZ001
AssetTag:RAM84
Part Number: MT9HTF6472FY-53EA2Handle 0x001B, DMI type 17, 27 bytes.
MemoryDevice
ArrayHandle:0x0013
ErrorInformationHandle:NotProvided
TotalWidth:72bits
DataWidth:64bits
Size:2048MB【插槽4有1条2GB内存】
FormFactor:DIMM
Set:None
Locator:DIMM30
BankLocator:BANK
Type:Other
TypeDetail:Other
Speed:667MHz(1.5ns)
Manufacturer:
SerialNumber:BZACSKZ001
AssetTag:RAM85
PartNumber:MT9HTF6472FY-53EA2
根据上面输出可以发现,如果要扩展,只有将上面的内存条换成16GB的,才能达到4*16GB=64GB的最大支持内存。
附录:
dmidecode支持的数字参数:
TypeInformation
----------------------------------------
0BIOS
1System
2BaseBoard
3Chassis
4Processor
5MemoryController
6MemoryModule
7Cache
8PortConnector
9SystemSlots
10OnBoardDevices
11OEMStrings
12SystemConfigurationOptions
13BIOSLanguage
14GroupAssociations
15SystemEventLog
16PhysicalMemoryArray
17MemoryDevice
1832-bitMemoryError
19MemoryArrayMappedAddress
20MemoryDeviceMappedAddress
21Built-inPointingDevice
22PortableBattery
23SystemReset
24HardwareSecurity
25SystemPowerControls
26VoltageProbe
27CoolingDevice
28TemperatureProbe
29ElectricalCurrentProbe
30Out-of-bandRemoteAccess
31BootIntegrityServices
32SystemBoot
3364-bitMemoryError
34ManagementDevice
35ManagementDeviceComponent
36ManagementDeviceThresholdData
37MemoryChannel
38IPMIDevice
39 Power Supply本文摘自:http://www.sanotes.net/html/y2009/312.html