IMac – Get the UUID from a mostly dead hard drive

disk-utilityhard driveimac

I have a mostly dead internal hard drive in my '07 iMac. I've switched the machine over to an external FW800 drive but every now and then, on reboot, the mostly dead internal drive will mount on boot and it's mostly dead status causes no end of trouble on the machine. My Spotlight indexing chokes up trying to read it, LaunchBar complains and slows down, Disk Utility won't launch — it's not good having it active.

I can't unmount the drive it's so close to dead:

iansimac:~ root# diskutil unmount /dev/disk0s2
Volume Main  on disk0s2 timed out while waiting to unmount

I'd like to put an fstab entry together to stop it from mounting once and for all, but I can't the UUID for the drive. The diskutil call against it hangs up at:

iansimac:~ root# diskutil info /dev/disk0s2
   Device Identifier:        disk0s2
   Device Node:              /dev/disk0s2
   Part of Whole:            disk0
   Device / Media Name:      Main

   Volume Name:              Main
   Escaped with Unicode:     Main%FF%FE%20%00

   Mounted:                  Yes
   Mount Point:              /Volumes/Main
   Escaped with Unicode:     /Volumes/Main%FF%FE%20%00

   File System Personality:  Journaled HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended (Journaled)
   Journal:                  Journal size 81920 KB at offset 0x1d18000
   Owners:                   Enabled

   Partition Type:           Apple_HFS

It'll eventually time out, but it takes a long time to get there. I can't format the drive or wipe it, those actions fail. As does trying to repair it. It's just not worth the surgery on a late 2007 iMac to remove it and replace it so I'd like to leave it in place, but take it out of the way.

Is there some other way to get the UUID for the device that doesn't involve using the disk in anyway? Would it be cached in a file some place I could take a look at? I've looked at the output from diskutil and couldn't see a way to get it without involving the device. And the mount output doesn't say anything about UUIDs in its output.

Best Answer

Have you tried looking at the kernel log messages? If, as you said earlier, it tried to root from the drive at least once, you can try to find it in the /var/log/system.log, for example:

$ grep 'rooting\ via' /var/log/system.log
Oct 24 18:01:44 localhost kernel[0]: rooting via boot-uuid from /chosen: 4AB3D289-884F-379C-AF7B-************
Oct 25 11:21:57 localhost kernel[0]: rooting via boot-uuid from /chosen: 4AB3D289-884F-379C-AF7B-************
Oct 28 10:30:54 localhost kernel[0]: rooting via boot-uuid from /chosen: 4AB3D289-884F-379C-AF7B-************
...

Those logs are usually kept for months, so you should be able to get it.