I had an unfortunate thing happen today — my trusty Powerbook decided that it had had enough and that it was going to lose it’s mind. It froze while I was working on the new version of Kristin’s website (not up yet…)
At first I was like, hmm, that’s annoying. That feeling turned into, oh crap, my laptop is broken when it wouldn’t finish booting up.
A quick Google using my Treo reminded me of the OS X startup key command to enter single-user mode (it is
CMD+S). First, though, I tried the command for a verbose startup so I could see what the problem was (
CMD+V). Verbose startup indicated that something was wrong with the hard drive meta data. So I decided to try starting up in single-user mode and then ran
fsck -f to see if it could fix the problem. No love there.
This is the error message that showed up:
localhost:/ root# fsck -f
** Root file system
** Checking HFS Plus volume.
** Checking Extants Overflow file.
** Checking Catalog file.
Keys out of order
** Rebuilding Catalog B-tree.
** The volume New Hotness could not be repaired.
localhost :/ root#
At this point in time, I am VERY grateful that I had recently (~3 weeks ago) made a full backup of my entire drive (over 60GB of applications and data). All of the source code for my work projects are under version control (Subversion) so I’m pretty good there even without backups. But what about the new work that I had been doing on Kristin’s site? That wasn’t backed up, hadn’t been checked into version control yet, and had considerable amount of work done that was stored in the MySQL database.
After doing some research about possible ways to fix this error (going to go into the Apple store tomorrow morning to see if they have a DiskWarrior disk that we can use to try to fix the Catalog B-tree problem), I thought it would be a really good idea to get Kristin’s site source code onto another machine so I would have a backup of that. Oh, and maybe also it would be a good idea to copy the 1+GB of China pictures that I hadn’t backed up yet (but had deleted off my camera!). Also, email inboxes, and other home directory files that I knew weren’t part of the 3 week old backup.
Mounting my laptop in Firewire Target Disk mode (hold down
T during startup) didn’t work (it didn’t mount when I plugged it into Kristin’s laptop). Booting up using the install CD only gave me options to install a fresh system or use Disk Utility, which didn’t give me the options I was looking for.
So, the problem that I now faced was this: How do I mount a drive or get network access using Single User Mode?
Lots of searches didn’t turn up any solid answers, until I found this command on the MacOSHints forum archives:
So first I ran
mount -uw / to mount the root filesystem in writable mode. Next I ran the commands that I found. The
kextd command output a few errors, but exited cleanly otherwise. The
configd command got networking running. YAY!
Once that was running, I plugged in an ethernet cable between my laptop and Kristin’s, and turned on the built-in SSH server on her laptop using the System Preference panel (Sharing > Remote Login > Start). I was then able to successfully SSH into her system and copy over all of the needed files.
Hopefully I won’t need to utilize these backups, but it is a great relief to know that I have them if needed.
I hope this can be helpful if you get in a similar jam.
My System Specs:
I’m running the latest version of OS X 10.4.9, have 2GB ram and an upgraded hard drive in a 15″ PowerPC Powerbook.
DISCLAIMER: I’m pretty sure that my laptop is really screwed up right now, and has kernel panicked and segmentation faulted a couple of times during transferring of files. If you find yourself following these directions, then you are probably already screwed too. But know that I am not responsible for what you do and also I don’t know if my copying over these files may have in fact screwed things up even more than they already are. So, your mileage may vary, proceed at your own risk, etc.