The udisks project provides a storage daemon that implements 
well-defined D-Bus interfaces that can be used to query and 
manipulate storage devices.

It also includes a command-line tool, udisks(1), that can be 
used to query and use the daemon.

This requires sg3_utils and libatasmart.