my new-ish computer (dual processor 1GhZ Mac G4, 1.2Gb RAM, two internal HDs, external HD, peripherals out the kazoo, yadda yadda yadda) started getting wobbly a few months after i brought it home. after an agonizing search for obvious hardware or software boojums, i finally concluded i had reached the point of last resort: complete system reinstall.
these words are enough to strike terror into most people who rely on magical boxes for their livelihood. i procrastinated for days, often sucking my thumb in the corner, rocking gently back and forth, before i summoned the courage to do it.
here, i recount the process of what was actually involved, if anything so that i can remember everything i did if i ever have to do it again <shiver>.
computer manufacturers will often tout the simplicity of their respective systems, how easy they are to install and maintain, blah blah blah. as my friend john would say, bollocks. reinstalling any of these systems is a monumental pain in the proverbial behind.
i have my system set up to do some things that your average user would never do, which makes the reinstall that much more protracted and byzantine. keep that in mind IF you decide to wade through the laundry list below…
TASK 1: back to hard disk basics
given that i didn’t know what software was corrupt or how its dirty little fingers were fouling my system, i decided to completely wipe my primary hard disk to start with a clean slate.
- spend about three hours backing up all crucial information to external hard disk, including data for all user accounts, system-level application support, web server data, and MySQL tables
- double-check to make sure you got everything
- shutdown and reboot using upgrade install disks
- forget to eject external Firewire hard disk
- remember that disk can be ejected from install-disk disk utility software, and eject it
- encounter problem with installer disk, which says it can’t install over an old version of the OS
- make the brilliant decision to wipe the disk so that it can install on clean partition
- realize while disk is being erased that the boot disk is an upgrade installer that will NOT install on an empty partition
- call ryan
- realize that i had another non-upgrade installer disk
- figure out how to manually eject a CD on reboot, which then interrupts boot cycle and allows me to insert the proper install disc
- install disc 2 is not recognized
- re-insert install disc, at which point it is recognized
- customize installation to bypass installing unnecessary fonts and language options
- begin installation
- restart half -way through at installer’s request
- complete installation with annoying registration wizard
TASK 2: get up to date
apple releases numerous system patches and updates for every major rev of their OS. every time you reinstall, your install disks are no doubt out of date, which requires reinstalling all system updates…
- install base system updates (package updater + a few odds and ends)
- run update tool again to install more system updates that couldn’t be installed until the OS patches were up to date (chicken and egg problem)
TASK 3: reinstall software
ok…now the operating system has been installed, and you’ve got a nice clean system with no user accounts, applications, or anything useful. you’ve got to reinstall all of your software.
- using a combination of install disks and about 20 different saved installers (backed up on external disk), reinstall all the stuff that you can
- spend at least an hour trying to dig up registration and serial numbers for all of the apps you just installed; many of these will be located in old email messages since you purchased things online…
- Reconfigure email to look up old email that has registration information
- Copy email preferences to pull all POP server information for all email accounts
- forget the password for most accounts – hey, why is it asking for this?
- remember that all Apple passwords are stored in a keychain
- copy keychain back to user account
- verify email now works again….it does.
TASK 4: reconsitute user accounts
there were three user accounts on my old system, at least one of which was no longer valid. gotta get everything back to normal here, too.
- copy core data back to my account, assiduously avoiding all those damn preference files that might be corrupt
- copy a few preference files that are necessary (e.g., terminal)
- copy necessary application support materials (iCal calendars, address books, cookies, bookmarks for Safari, etc)
- create new user account for elaine, and copy her data wholesale (since her account was not corrupt)
TASK 5: the devil is in the details
there’s all sorts of stuff under the hood that you tend to forget about. you set it up once and you never look at it again. you will need to remember when you reinstall…
- set up desktop preferences, general settings, and all the other stuff i didn’t copy over because i was paranoid that my system preferences were corrupt
- use NetInfo manager to enable root access; create root password
- as i use applications, copy over old preference files where necessary to restore things to a usable state
- turn on the Web server by enabling web sharing
- do about 27 other little things that i’m surely forgetting
TASK 6: don’t forget about your peripherals
did you forget about your printer? your scanner? of course you did.
- reinstall printer drivers
- reinstall scanner drivers
- configure printer as default
- plug in scanner and discover that it’s not being recognized after install of drivers
- scanner now recognized, and peripherals seem up to date…
TASK 7: oh yeah, super tech weenie odds and ends
this is the stuff that i always dread, because it usually involves getting down to the command line and reinstalling/reconfiguring a bunch of things that require lots of tweaks to get just right. most of this is stuff that would only be used if you needed to run a database-driven Web site on your machine with some kind of middle-tier scripting language (in my case, PHP).
- install MySQL 4.1.7
- install base package
- install startup item modifications
- re-initialize grant tables, permissions, etc.
- migrate backed up MySQL data
- libjpeg (with fink)
- libpng (with fink)
- libtiff (with fink)
- zlib (by hand)
- create configure script
- twiddle knobs on configuration parameters so that make recognizes locations of libjpg and libpng
- make and encounter numerous mysterious errors related to libxml
- perform Google search
- upgrade to libxml2 (with fink)
- make and make install for PHP
- copy php.ini to /usr/local/lib
- modify httpd.conf
- restart apache server to verify integrity of PHP install
boring boring boring. like i said, this entry was mostly for my benefit. i can never remember to do all of this stuff, and so each time i reinstall (and it’s happened at least twice in the last 2 years due to system upgrades), i go through the same discovery process again. normally i like discovery, but in the case of OS installs, i prefer a complete lack of mystery.