for the root stuff maybe take a look at unetbootin, they are doing something to get root privs, maybe you can copy that
I hate to bump this thread so much, and I am making progress in rebuilding my gui, but I found this interesting line of code while poking around in unetbootin (btw, they get sudo access via applescript on macs. Super ugly, I've found a slightly less ugly way to do it, but more on that later).
Code:
QString diskutilList = callexternapp("diskutil", "list");
QStringList usbdevsL = diskutilList.split("\n").filter(QRegExp("(FAT|Microsoft)")).join(" ").split(" ").filter("disk");
They use 'diskutil list' to get disks on a mac as well. They don't need to return a size, just the mount point, but the process is almost identical to what I came up with. They could probably have more readable code if they parsed a plist like I do, but I don't think they care as much as I do about the code being human-readable.













