获取在Linux上的硬盘序列没有root权限
标题几乎说明了一切。对于我的Java程序,我想在Linux中获得HDD串行。起初,我打算用命令行“的hdparm -i/dev/sda上”,但后来我意识到,这需要root权限,这是我不希望我的程序有要求所以现在我正在寻找一种替代。获取在Linux上的硬盘序列没有root权限
理想情况下,我宁愿不使用JNI,但我不认为它的问题那么多,如果应用程序已经写了我和BSD下或类似的许可......
虽然我在这里,我也很感谢Mac的解决方案 - 再次,它不需要根/管理权限!
由于提前
在最新发行的硬盘序列号被存储在udev数据库,它可以在没有root权限进行查询:
/sbin/udevadm info --query=property --name=sda
(找ID_SERIAL,ID_SERIAL_SHORT;也有基于这些值的ATA驱动器的/ dev/disk/by-id/ata- *符号链接)。
udisks提供了更高级别的接口到这些数据和多(这也给而不需要根特权,这将需要用于调用,例如访问SMART属性,直接smartctl读取)。
就像刚刚提供的帖子Xavjer上的第一个答案的复制一样。 = P事实上,这是我的解决方案!并感谢您对udisk的额外补充 - 有趣! – Andy
-1 - 为plagarism –
我通过添加引用Xavjer回答serverfault。
在排序 udevinfo -q ENV -p /块/ SDA
礼物:ID_SERIAL=SATA_KINGSTON_SVP100_31JY100MY5SK
。用这个。
有大约一个很好的职位上serverfault,我希望你能在那里找到你的答案:) http://serverfault.com/questions/305205/linux-hard-drive-serial-number-as-non-根 – Xavjer