获取在Linux上的硬盘序列没有root权限

问题描述:

标题几乎说明了一切。对于我的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

在最新发行的硬盘序列号被存储在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 –

我通过添加引用Xavjer回答serverfault

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

礼物:ID_SERIAL=SATA_KINGSTON_SVP100_31JY100MY5SK。用这个。