Another failed attempt to update the Hacintosh led to a sleepless night putting everything back together. This time I really thought it was just going to work. In the end, things are more or less back the way I started and I’ve learned more about what I might do differently – next time!
I hadn’t planned on updating my OS again. I had been fine with 10.5.6 from the last update and that one was enough of a chore to dissuade me from doing an upgrade until it was required. Yesterday morning, after upgrading iTunes, the upgrade appeared to be required. I installed iTunes 9 for the new “LP” feature – a cool concept which gives you DVD-menu-like interactivity with liner notes but which actually only applies to a very small set of full length albums purchased on iTunes. I regret being lured in by the pretty pictures. You see, iTunes 9 installed fine, but then the iTunes store didn’t work. Now I don’t use the iTunes store that often but I’m not one to let a feature that I have used go away. So I decided I would install Safari 4, to meet the new store requirements. Except that Safari 4 required MacOS 10.5.7. Are you kidding me? Apple rarely engages in such Microsoft-like nonsense. But okay, the promise of a sexy new store and the possibility of turning my iTunes gift card balance into something cool with LP was enough to warrant the risk of the OS upgrade.
As regular readers of this blog know, upgrading a Hacintosh doesn’t always go as smoothly as upgrading a Macintosh. The Apple update procedures are of course written with a certain set of hardware in mind. Which means upgrades for Hacintoshes not running “retail” (more on that later) need to come from the Hacintosh community and not from Apple. First step: make sure Time Machine ran a recent backup. (Too much foreshadowing?)
I decided to use iDeneb’s 10.5.8 Combo Updater for the update. iDeneb is one of the better providers out there and the update would work regardless of the distribution I had used originally. Not much to the instructions other than run the update just like you do an Apple one. I did it and the update seemed to succeed. But then on reboot, I got the dreaded “you’re screwed” symbol like I did on the last update. When you boot in verbose mode, you can see it’s the result of the error “still waiting on root device”. I wasn’t too surprised by this since the update probably overwrote the special IOATAFamily kext required for the Dell E520’s unique SATA controller(s). (When booting the computer in Vista, you can see that Vista finds two SATA controllers – one is ICH8 2-port 2825 and the other is ICH8 4-port 2820; there are 6 theoretical ports on the computer but only 4 are actually implemented on the mobo: SATA0, SATA1, SATA4, and SATA5 – what a mess.) No biggie, though, because Dune had already updated his special IOATAFamily kext for 10.5.8. After installing this modified kext and the “you’re screwed” symbol did not go away, I realized how screwed I really was.
I did all the tricks I tried last time – swapping SATA ports, disabling SATA ports not needed to boot, updating com.apple.boot.plist with “rd” or “uuid” entries, manual modification of the IOATAFamily’s plugin AppleIntelPIIXATA based on hardware device numbers, etc.. All indicators pointed to me having had it right immediately after the update and yet it wasn’t working. Another member of the InsanelyMac forums, dr. vox, even was kind enough to send a couple of his kexts from his working install to me to try out but I kept getting the “still waiting on root device” error. As a last desperate attempt, I tried restoring all the old kexts from my Time Machine backup of 10.5.6 but still got the same error. Eventually I realized that my Dell E520 was not going to work with 10.5.8 the way I had things set up – a truly sobering realization after the hours I had put in and the state of the computer at the time.
At this point, I had two possible choices. Restore things the way they were or try another install method. I decided to try another install method because I would like to be in a position where I can update my Hac using standard tools. And since my initial build, there have been some advances in the Hacintosh community that allow you to use the “retail” version more easily. Early on in my Hac process, I bought a copy of MacOS Leopard on DVD just so I would have the license, never intending to actually use the physical media. But some Hacintoshes are built using the “retail” media and because they are, they can be upgraded through the normal Apple provided updates. It would be great if mine could be one of those.
I followed the guide written by blkhockeypro19 for an E520 retail install. First up was burning a CD with the dmg. I didn’t happen to have any software to do that but he mentioned PowerIso which I downloaded for my PC and used to create the CD. I won’t repeat the steps from his post here other than to say that things went pretty much exactly as he describes. The hex number of the disk to boot from sounds weird, but as he writes, the one that came up in brackets was 82 which corresponded to my optical drive that contained the CD. I did the install on a spare SATA hard drive (one that’s too noisy for normal use) so I wouldn’t break anything else. I did have to repartition the drive to be GPT but that’s pretty easy using Disk Utility. I blew past the ability to customize the install and ended up doing a full install that took an hour. Then, to reboot my hard drive, it was hex number 80 and it continued with the setup. (I did not have the setup loop problem which surprised me a little.) One of the options in setup is to build accounts from a Time Machine backup. I chose that and another hour later, the Mac looked like the one I had before I started the update except that it was still at 10.5.1, the version of the physical media I had purchased. So I did the update to 10.5.8 using the regular software update from Apple and it worked! Until I rebooted. “You’re screwed.” Knowing that this problem can be intermittent, I tried a number of times and it could not find the root device at all. That appears to be further proof that earlier versions would work better on the E520 than 10.5.8. (Not a good trend!) Still, I liked this setup and the Chameleon bootloader that was part of it. I’m going to hold on to the setup tools and drivers in case I ever want to try it again – if the problem with the E520 SATA controller(s) is ever figured out, this install will definitely be the way to go. (As a matter of fact, I liked it so much, I bundled up the software I needed and put it in this Zip file.)
But since that controller problem is not figured out, and since I had a working Hac before I started this, the only smart thing to do at this point was to restore what I had. It would mean that I was giving up on 10.5.8 (for now, for this Dell E520) and it would mean I would have to go back to iTunes 8 to get the iTunes store to work again. But it was the only choice that had any likelihood of working.
I started the Time Machine full system restore and another hour later, my computer was back to the way it was, pretty much. I say “pretty much” because there are a few things that don’t get backed up. Duncan Davidson has a good write-up on some of the specifics and his article has links to even more detail. But there were a few issues worth noting briefly, and one worth noting in detail. First the one worth nothing in detail is the bootloader. While the bootloader was fine on the original disk and the backup does not backup the bootloader, then in theory, a restore of the backup shouldn’t touch the bootloader. In practice, the bootloader was trashed and with it went any ability to boot any OS on the disk. Booting up the computer resulted in a blank screen after the BIOS. Now this new wrinkle had me worried. How could I do a restore of my data while preserving the ability to boot? Neither was optional and yet they were seeming mutually exclusive. I was so happy to find the answer at “2AMI’S WEBLOG”: How to manually Install DARWIN Bootloader. It worked perfectly. The bootloader returned to the way it was and that was the only hard part about the restore.
The minor issues were easily resolved. Mail initially acted like it was starting for the first time but then loaded all of the messages and accounts it had previously with the net result being a full restore. iSync and my phone were really confused. I had to empty out my phone and let iSync put everything back on it. Apparently, iSync got, well, out of sync.
Repairing iTunes was another matter. Apple doesn’t provide a downgrade mechanism and trying to install an old version of iTunes on top of the new results in an error saying a newer version is already installed. I got iTunes 8.2.1 from Apple’s KB article about running iTunes on an older computer. And Apple has a support post about rebuilding the iTunes library but to get that to work, I had to modify the contents of the library xml file to point to my alternate iTunes directory. (I’m a rebel and put Music on a separate drive which iTunes allows and works fine with usually, but you can tell that things like this rebuild and downgrade aren’t tested with an alternate directory.)
So 23 hours after I started the update process, the Hac was back the way it was when I started. It was a remarkable waste of a day but at the same time I learned a few things. 1.) Time Machine does a pretty good job at restoring the full system and that is a very good thing; 2.) A “retail” install is much preferable to a non-retail install and I look forward to operating on a retail install some day; and 3.) The Dell E520’s SATA Controller(s) setup is a problem that hasn’t truly been solved yet and will continue to cause trouble, likely even with Snow Leopard.