At first sight, this is one of those things that really doesn’t deserve comment. Upgrading the hard disk on a Mac is notoriously easy, and with even basic skills with a screwdriver you can usually complete the process in a couple of hours (depending on how much data you have on your computer). But this time it was far from straightforward, and the problem was so weird that I thought it would be useful to post about it here in case anyone else has the problem.
Fundamentally, upgrading a Mac hard disk is as simple as copying the contents of the existing drive onto a newer larger unit and then swapping them over. I use Carbon Copy Cloner to make my duplicates, but you can also use Super Duper or any other copy utility that guarantees to make a bootable copy of your drive. Plug the new drive into an external USB or FireWire housing and start the copy running. For a 250GB drive it will take anything up to about four hours to copy (particularly if you have lots of small files) and so start it running and watch a film. Or two.
Once the copy has completed, shut down your Mac and disconnect the power. Flip it over, and then depending on the model you open the case or remove the battery to get access to the existing drive. Carefully remove the mounting screws and even more carefully disconnect the cable from the drive. This is very fragile… I’ll say that again… this is VERY fragile, so be careful. And if you break it, it’s your fault, not mine. You have been warned. Lift out the old drive, insert the new one, replace all the mounting screws, close the case or re-insert the battery and turn your Mac the right way up again.
Switch it on. The first time you do switch the computer on it may well take a long time to start up. This is because it is looking for the old drive and has to wait until it times out before looking for the next one, but after a while it will boot up as normal. Then, to prevent that delay every time, go into system preferences, select Startup Disk, and choose the new disk as the drive to use to boot. Click Restart, and wait for your Mac to shut down and start up again.
And that is all there should be to it. Simple.
Except this time that was not where it ended. After doing all that I found that my Mac would freeze for 30-60 seconds at random intervals. It was as if the computer was having to wait for the drive to start or to catch up in some way. I fiddled around for ages with various settings, and eventually gave up and replaced the old drive. In case it was a faulty unit I had fitted I tried again with two other 500GB drives, but they both had the same problem. The original 250GB drive was fine, but whatever else I used would show this intermittent freezing problem.
So I started searching the web. And searching. And searching. I found a few posts from people saying that this was always caused by a faulty replacement drive, but since I had tried three separate ones from different manufacturers I thought that unlikely. So I kept on searching.
And then eventually I found reference to a slowly emerging problem with the SATA interface speed. You may or may not know that SATA hard disks can communicate with the computer at two speeds, the standard 1.5Gb/s and the newer 3Gb/s. In almost all cases 1.5Gb/s is fast enough as the data cannot come off the disk itself any quicker than that, but newer drives all have the capability of operating at the faster interface speed. Some SSD devices can work take advantage of the 3Gb/s transfer rate, but they are still relatively rare.
When the mid-2009 15″ MacBook Pro was shipped Apple did not think that the computer was capable of operating at the faster SATA speed, and so in the EFI firmware – the hardware-controlling layer of software – the speed was deliberately limited to 1.5Gb/s. But a patch, a firmware upgrade, issued late 2009 added the capability for the laptop to use the faster 3Gb/s interface speed. However, this did not make the hardware any more capable, it just told it that it could be used, giving the laptop the ability to switch to a speed that would never work.
But at that point the computer continued to work fine, and this is because of another little-known fact, and that is that Apple factory-fit hard disks are themselves locked so they can only operate at 1.5Gb/s. So with the disk only telling the laptop it could work at the slower speed the logic board never selected the faster speed and normal operation continued.
Step forward a few months however to the point where I tried to upgrade my drive, and all of the larger units I had were fully capable of working at 1.5Gb/s or the faster 3Gb/s. Put them in the computer and they tell the logic board their capabilities, and the next time a large data block is requested it tries to deliver it at the fast speed. But the logic board cannot accept it, and so the computer freezes, waiting for the operation to time out. Once it has failed the system automatically steps the speed down, and completes the transfer.
Brilliant. So an Apple-supplied EFI patch does not function on the hardware it was delivered to.
The firmware version that caused the problems was EFI v1.7, but v1.6 was the one locked to the lower speed and that one reputedly worked fine. Unfortunately Apple do not support any downgrades of firmware on any platform. The official ‘fix’ for this is to replace the logic board, something that with the laptop being out of warranty would be very expensive.
But then I found that there was an unofficial patch. Whether it was leaked from Apple or reverse-engineered by someone else was unclear, but a tool is available that can create a firmware downgrader from v1.7 to v1.6. It was not simple to set up as there were no instructions apart from a single post on MacRumours (that was apparently translated from Russian, via Polish, into English), and so getting it working was part dark-arts, and part guesswork, but eventually I hit on the right combination of things and got it working.
I zapped the EFI, restarted the Mac… and it worked.
So I now have a 3rd party 500GB hard disk in the laptop (I’ll boost that to 1TB over the weekend) and it all appears to be working fine.
The problem appears only on the 13″ and 15″ MacBook Pro Unibody early and mid-2009 versions. The 17″ does not exhibit this problem, nor (I am told) does the normal MacBook. I can say from experience that the older white MacBook 13″ does not have this issue either. If you do find yourself stuck with this problem and you want to downgrade your Mac from v1.7 to v1.6 firmware drop me a line and I will point you in the direction of the instructions and the files you will need. But only do it if you are confident in what you’re doing and are willing to take the risk, as it is possible that if it goes wrong it may turn your Mac into a shiny laptop-shaped paperweight with no actual function. You have been warned.
Graham