MacOS – Mavericks unusable (beach ball) when CoreStorage fails

hangmacbook promacosssd

I have a Late 2008 MacBook Pro running OS X 10.9.1 (13B42)

I've upgraded it with a 180GB Intel SSD 520 series (model INTEL SSDSC2CW180A3), which replaced the SuperDrive CD-rom, and I setup a Fusion Drive with my main Hitachi HTS543232L9SA02. Both disks now look as one for a total of ~500GB.

Since I've upgraded to Mavericks I've noticed this impossible issue with the beach ball of death. At some times it just makes my life miserable.
I think I've tracked it down to this message log that keeps appearing at the exact moments when the computer freezes:


22/01/14 17:16:04,000 kernel[0]: CoreStoragePhysical::issueUnmap: unmap returned e00002ca

That's it, it never changes the returned e00002ca. I couldn't find any sort of information about the issue. Any idea?

Below is the configuration of the fusion drive as being seen by the System Information tool:

Hitachi HTS543232L9SA02

NVidia MCP79 AHCI:

  Vendor:   NVidia
  Product:  MCP79 AHCI
  Link Speed:   3 Gigabit
  Negotiated Link Speed:    1.5 Gigabit
  Physical Interconnect:    SATA
  Description:  AHCI Version 1.20 Supported

Hitachi HTS543232L9SA02:

  Capacity: 320,07 GB (320.072.933.376 bytes)
  Model:    Hitachi HTS543232L9SA02                 
  Revision: FB4AC50F
  Serial Number:    081216FB1400LEJHVM3F
  Native Command Queuing:   Yes
  Queue Depth:  32
  Removable Media:  No
  Detachable Drive: No
  BSD Name: disk1
  Rotational Rate:  5400
  Medium Type:  Rotational
  Partition Map Type:   GPT (GUID Partition Table)
  S.M.A.R.T. status:    Verified
  Volumes:
EFI:
  Capacity: 209,7 MB (209.715.200 bytes)
  BSD Name: disk1s1
  Content:  EFI
disk1s2:
  Capacity: 319,21 GB (319.213.174.784 bytes)
  BSD Name: disk1s2
  Content:  Apple_CoreStorage
Boot OS X:
  Capacity: 650 MB (650.002.432 bytes)
  BSD Name: disk1s3
  Content:  Apple_Boot
  Volume UUID:  A3B8405D-F6D7-3E1E-B368-9FC0EF7283BD

INTEL SSDSC2CW180A3

NVidia MCP79 AHCI:

  Vendor:   NVidia
  Product:  MCP79 AHCI
  Link Speed:   3 Gigabit
  Negotiated Link Speed:    1.5 Gigabit
  Physical Interconnect:    SATA
  Description:  AHCI Version 1.20 Supported

INTEL SSDSC2CW180A3:

  Capacity: 180,05 GB (180.045.766.656 bytes)
  Model:    INTEL SSDSC2CW180A3                     
  Revision: 400i    
  Serial Number:    CVCV30350908180EGN  
  Native Command Queuing:   Yes
  Queue Depth:  32
  Removable Media:  No
  Detachable Drive: No
  BSD Name: disk0
  Medium Type:  Solid State
  TRIM Support: Yes
  Partition Map Type:   GPT (GUID Partition Table)
  S.M.A.R.T. status:    Verified
  Volumes:
EFI:
  Capacity: 209,7 MB (209.715.200 bytes)
  BSD Name: disk0s1
  Content:  EFI
disk0s2:
  Capacity: 179,7 GB (179.701.792.768 bytes)
  BSD Name: disk0s2
  Content:  Apple_CoreStorage
Boot OS X:
  Capacity: 134,2 MB (134.217.728 bytes)
  BSD Name: disk0s3
  Content:  Apple_Boot
  Volume UUID:  8E3ACF9F-6DE9-3F12-BB8B-8B76ABDDFBA8

Best Answer

This is a complicated setup which makes troubleshooting a little difficult, so you are going to have to test multiple things and simplify. Also, it sounds like you made your own fusion drive instead of buying an officially supported configuration so it could be that OS X just doesn't support doing this with your drives.

  • Check the state of Core Storage to see if things look correct on the logical disk level. In Terminal, type: diskutil cs list
  • Assuming everything is Online and good, you should scan the logical volume for errors. In Disk Utility, select your logical volume and "Verify Disk" followed by "Verify Disk Permissions". You might have a few disk permission errors which probably aren't your issue but you should watch out for disk errors thrown by Verify Disk.
  • [Read completely before typing any commands. I am not liable for your data loss] Assuming everything checks out, then there is probably a hardware issue with one of the individual disks in the pair. Open Terminal and type diskutil list to list out the individual drives in your machine. You need to identify the actual hardware drives and not the logical drives that are created as part of Fusion or any encryption in use. It should be something like /dev/disk0 and /dev/disk1. Once you have identified your actual physical drives, you can try forcing a read of every sector on each drive to cause bad sectors to be remapped if one of your drives is failing. In Terminal type sudo dd if=/dev/rdisk0 of=/dev/null bs=64k. This will ask you for your password. Note the 'r' in front of rdisk0. Also, replace the number after rdisk with the numbers you determined earlier for your physical disks. This will take a long time. It will read every single part of your hard drive and send the data that it reads to nowhere since we don't care about interpreting what is being read and just want it to be accessed. If sectors on the drive are bad, then they will balk when they are read and the drive should internally remap the bad locations to a reserved set of new ones. Once you have done this for both drives, the drives should stop having read/write errors assuming there was a small section that was bad on one of the drives which was able to be remapped. WARNING. Typing the previous sudo command incorrectly could erase your computer. Also, if one of your hard drives is failing and about to die, then forcing a complete read of the hard drive could cause too many bad sectors to be remapped and cause your drive to fail. Ideally you backup all data before doing this. Also, even better would be to read the SMART tables off of each drive and look at the reallocated sector count. The number should be 0. Unfortunately, I don't know if an OS X utility will let you do this while your drives are combined using Fusion. You might have to pull them out and test on a different machine. A non-zero reallocated sector count means the drive is already failing and forcing a full read may kill the drive or may revive it if the damage is minor. Ideally you would perform a full wipe of the drive instead of doing a read since this is much better at flushing out bad sectors but that would also erase all of the data on your drive.
  • If the previous suggestion didn't work or is too scary, then don't use Fusion in an unsupported configuration.