2011-10-01 171 views
3

標題幾乎說明了一切。對於我的Java程序,我想在Linux中獲得HDD串行。起初,我打算用命令行「的hdparm -i/dev/sda上」,但後來我意識到,這需要root權限,這是我不希望我的程序有要求所以現在我正在尋找一種替代。獲取在Linux上的硬盤序列沒有root權限

理想情況下,我寧願不使用JNI,但我不認爲它的問題那麼多,如果應用程序已經寫了我和BSD下或類似的許可......

雖然我在這裏,我也很感謝Mac的解決方案 - 再次,它不需要根/管理權限!

由於提前

+0

有大約一個很好的職位上serverfault,我希望你能在那裏找到你的答案:) http://serverfault.com/questions/305205​​/linux-hard-drive-serial-number-as-non-根 – Xavjer

回答

-1

在最新發行的硬盤序列號被存儲在udev數據庫,它可以在沒有root權限進行查詢:

/sbin/udevadm info --query=property --name=sda 

(找ID_SERIAL,ID_SERIAL_SHORT;也有基於這些值的ATA驅動器的/ dev/disk/by-id/ata- *符號鏈接)。

udisks提供了更高級別的接口到這些數據和多(這也給而不需要根特權,這將需要用於調用,例如訪問SMART屬性,直接smartctl讀取)。

+0

就像剛剛提供的帖子Xavjer上的第一個答案的複製一樣。 = P事實上,這是我的解決方案!並感謝您對udisk的額外補充 - 有趣! – Andy

+2

-1 - 爲plagarism –

0

我通過添加引用Xavjer回答serverfault

在排序 udevinfo -q ENV -p /塊/ SDA

禮物:ID_SERIAL=SATA_KINGSTON_SVP100_31JY100MY5SK。用這個。