Yesterday, when I tried to run the 10.4.6 updater on my Dual G5, it locked up just before the end of the progress bar -- all apps went spinning beachball, and force quit had no affect. I had no choice but to power down manually, after waiting about 45 minutes to make sure it was really and truly locked up.
When the machine rebooted, it booted onto another partition, which was running 10.2.7. That was a bad sign. The 10.4 partition showed up, and all data seemed usable. I quickly made another backup of my key user files (even though I was current as of the day before), then set out to fix the drive. Disk Utility found and fixed a couple problems, but I still couldn't select the partition as my startup drive. Disk Warrior wasn't able to rebuild the directory -- it hung on the final "writing new directory" step. Stumped at this point, I could have restored an old clone, but there's well over 100GB on that partition, and that would take a long time. So instead, I opted to do an archive and install of OS X, with the Retain User Settings option enabled. This archives your current OS X installation, installs a new copy of OS X, then moves all your user data into the new system.
After rebooting and running the Combined 10.4.6 Updater, along with about 15 other updates, the machine was basically perfectly healthy again -- except for the various Unix bits I had installed myself -- things like customizing my Apache configuration file, all my web site stuff in the WebServer directory, my MySQL installation (along with all the databases), and my PHP installation (I use the version on entropy.ch, not the bundled PHP). All of these things live in the Unix side of the system, which was obviously wiped clean with the new OS X install.
Getting them back was relatively trivial, but I thought I'd take a few minutes to document what steps I took...
Fixing PHP and MySQL turned out to be very easy, since the complete installations live in the /usr/local folder. You just have to copy that folder back from the Previous System folder to the proper location in the new setup. (Note that I'm showing cd commands just to make the lines a bit shorter and the context clearer; you could clearly specify the full path on the cp command itself.)
$ cd /Previous\ Systems.localized/Previous\ System\ 1/usr/
$ sudo cp -Rp local /usr/local
The -Rp means "copy Recursively, Preserving as much of the date, time, flag, mode, user ID, and group ID values as possible." Once that was done, I just had to copy back my customized httpd.conf file:
$ cd /Previous\ Systems.localized/Previous\ System\ 1/etc/httpd
$ sudo cp httpd.conf /etc/httpd/httpd.conf
With these steps done, I had all my MySQL databases back, my customized Apache configuration file, and a full PHP install, along with my tweaked php.ini file (as it resides in the /usr/local/php folder). What I didn't have back were all the websites from the WebServer folder. I got these back in the Finder, just by dragging and dropping from the Previous System's WebServer folder into the new WebServer folder.
Mac OS X Hints
http://hints.macworld.com/article.php?story=20060404073229506