Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically retrieve an OS X disk partition UUID

I have a path to a partition. How can I retrieve UUID of that partition programatically without using terminal commands? An example will be more helpful.

like image 319
surendran Avatar asked Dec 12 '22 11:12

surendran


2 Answers

$ diskutil info / | grep UUID

Running this from C is left as an exercise for the reader.

If you want a partition other than the root, you can specify the mount point or device name (eg. disk0s2) in place of /.

like image 137
user57368 Avatar answered Jan 09 '23 07:01

user57368


You can use the Disk Arbitration framework (Apple reference). There is also a good summary at this blog by Chris Suter.

You can get the UUID by using the kDADiskDescriptionMediaUUIDKey. Aaron Burghardt described it well in this mailing list thread. Here is a quote from that link:

Once you have the DADisk, use DADiskCopyDescription to get a dictionary of properties, in which you will find the UUID with the key kDADiskDescriptionMediaUUIDKey (see DADisk.h for other keys that may be of interest). Note, a DADisk is a wrapper around an IOMedia object and the description dictionary corresponds directly to the properties in the IOMedia object. Also, CFShow() is useful for printing the description dictionary to the console.

like image 36
Dan Avatar answered Jan 09 '23 06:01

Dan