因最近工作要求,需要獲取Linux
環境上的硬盤序列號,經過多番嘗試,最終得到滿意的結果,先尋找過程梳理匯總如下。
最開始使用hdparam
命令來獲取,它是Linux
上獲取或設置硬盤參數的工具,包括測試讀寫性能以及緩存性能等。在本場景中涉及到的指令為:
hdparam -I /dev/sda
提示結果如下圖:
無法獲得想要的硬盤序列號,經過一番搜索發現,hdparam
是適用於SATA/IDE接口類型的硬盤,sdparam
適用於SCSI的硬盤,下載sdparam
后使用
sdparam --inquiry --page=sn /dev/sda
結果仍然是
猜測可能是在虛擬機上跑的linux,無法通過這兩個命令獲取,換個思路繼續。
繼續嘗試使用smartctl
工具來獲取,
smartctl -a /dev/sda
也無法獲得滿意結果。
最后使用lsblk
工具,
lsblk --nodeps -no serial /dev/sda
獲取到的結果為空,但通過如下指令:
lsblk --nodeps -no serial /dev/cdrom
/dev/cdrom
是光驅設備,通過上述命令,可以獲得光驅設備的序列號,硬盤和光驅同屬於存儲設備,那么通過上述獲取硬盤序列號的命令,應該是可以獲取的到,但實際獲取為空,這是為什么呢?
在網上找了一番也沒找到原因,希望有知道的讀者指點迷津。
總結
在linux上,可以通過lsblk --nodeps -no serial /dev/sda
命令來獲得硬盤序列號,注意,在虛擬機上運行的linux,獲取到的結果為空。