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.