『壹』 linux如何查看伺服器序列號
1、單獨查看伺服器的序列號
[root@localhost ~]# dmidecode -t system | grep 'Serial Number'
Serial Number: 2102310YPY10J30*****
2、單獨查看伺服器型號
[root@localhost ~]# dmidecode | grep "Proct"
Proct Name: PowerEdge R730
Proct Name: 0WCJNT
3、統一查看伺服器SN序列號和型號
[root@localhost ~]# dmidecode | grep "System Information" -A9 | egrep "Manufacturer|Proct|Serial"
Manufacturer: Huawei 廠商
Proct Name: RH2288 V3 型號
Serial Number: 2102310YPY10J3****** 序列號
4、查看內存條信息及使用情況(內存的插槽數,已經使用多少插槽.每條內存多大,下圖為16個內存插糟,用了12個插槽,每根內存條16G)《Linux就該這么學》一起學習linux
[root@localhost ~]# dmidecode -t memory | grep Size
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: No Mole Installed
Size: 16384 MB
Size: No Mole Installed
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: 16384 MB
Size: No Mole Installed
Size: 16384 MB
Size: No Mole Installed
『貳』 LINUX如何查詢工作站多硬碟的硬碟序列號
#不需要安裝額外軟體,直接查詢
為什麼我的行呢?你再用下面的參數試試。
sudo hdparm -I /dev/sda | grep Serial
Serial Number: WD-ABC2E30ETS28
Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
『叄』 如何讀取Linux內核磁碟序列號
這些信息通過讀取proc文件是可以獲得的,faild to open失敗可能兩個原因,1就是路徑出錯,2就是沒有打開許可權。
『肆』 LINUX 硬碟序列號
main不能是static吧,我的gcc版本是不允許的.
貌似別的頭文件還有問題.是內核的代碼么??
『伍』 linux下怎麼用c獲取硬碟物理序列號
1、在Linux系統中通過C語言獲取硬碟序列號,可以藉助於ioctl()函數,該函數原型如下:
intioctl(intfd,unsignedlongrequest,...);
ioctl的第一個參數是文件標識符,用open()函數打開設備時獲取。
ioctl第二個參數為用於獲得指定文件描述符的標志號,獲取硬碟序列號,一般指明為HDIO_GET_IDENTITY。
ioctl的第三個參數為一些輔助參數,要獲取硬碟序列號,需要藉助於structhd_driveid結構體來保存硬碟信息,該結構體在Linux/hdreg.h中,structhd_driveid的聲明如下
structhd_driveid{
unsignedshortconfig;/lotsofobsoletebitflags*/
unsignedshortcyls;/*Obsolete,"physical"cyls*/
unsignedshortreserved2;/*reserved(word2)*/
unsignedshortheads;/*Obsolete,"physical"heads*/
unsignedshorttrack_bytes;/*unformattedbytespertrack*/
unsignedshortsector_bytes;/*unformattedbytespersector*/
unsignedshortsectors;/*Obsolete,"physical"sectorspertrack*/
unsignedshortvendor0;/*vendorunique*/
unsignedshortvendor1;/*vendorunique*/
unsignedshortvendor2;/*Retiredvendorunique*/
unsignedcharserial_no[20];/*0=not_specified*/
unsignedshortbuf_type;/*Retired*/
unsignedshortbuf_size;/*Retired,512byteincrements
*0=not_specified
*/
……
};
2、源代碼如下
#include<stdio.h>
//ioctl()的聲明頭文件
#include<sys/ioctl.h>
//硬碟參數頭文件,hd_driveid結構聲明頭文件
#include<linux/hdreg.h>
//文件控制頭文件
#include<sys/fcntl.h>
intmain()
{
//用於保存系統返回的硬碟數據信息
structhd_driveidid;
//這里以第一塊硬碟為例,用戶可自行修改
//用open函數打開獲取文件標識符,類似於windows下的句柄
intfd=open("/dev/sda",O_RDONLY|O_NONBLOCK);
//失敗返回
if(fd<0){
perror("/dev/sda");
return1;}
//調用ioctl()
if(!ioctl(fd,HDIO_GET_IDENTITY,&id))
{
printf("SerialNumber=%s ",id.serial_no);
}
return0;
}
編譯完成後,執行效果如下:
『陸』 linux下怎樣查看硬碟序列號
root@localhost:~# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 3907029167 1953514583+ ee GPT
root@localhost:~# hdparm -i /dev/sda1
/dev/sda1:
Model=WDC WD2003FYYS-02W0B1, FwRev=01.01D02, SerialNo=WD-WMAY04598673
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=3907029168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
* signifies the current active mode
『柒』 linux系統下,C++編程獲得硬碟及主板序列號執行的時候不要加sudo
請問你解決了嗎