It's been several months since we got our Mac Mini [1, 2]. Previously my wife used a Linux laptop. It worked well, except when it didn't, and I had to help out.
The Mac is just the same, except that when it works well, it works beautifully. Steve Jobs values aesthetics above everything else. But when it doesn't work...
So a few days ago she calls me to say the computer is not booting. I go over to look. Not only is she quite correct, but there's no way of telling what the problem is: all Apple gives you is a white screen with an Apple logo and an endlessly-spinning counter.
I go online with my laptop, and find that there are ways to boot differently by holding down various key combinations on boot. First I try "safe mode". It boots, and all seems well; but when I try the regular boot it fails again. And now "safe mode" doesn't work too.
Then I try "verbose" boot. This gives a scrolling screen of boot messages, of the kind familiar to Unix/Linux users. I see some messages about the filesystem but I don't understand them. The boot gets stuck at a point that I can't make sense of.
Then I try "single user". This time, I get a boot prompt that helpfully tells me to "fsck -fy". I do so, and after some churning, it tells me "filesystem cannot be repaired." I think, huh? I have seen serious filesystem errors on linux and unix, which can be repaired only at the cost of losing data: but I have never seen a filesystem that could not be repaired.
Googling gives me the dubious advice that repeatedly trying fsck should fix the problem, but it does not. I try the disk repair tool that comes from Apple's install DVD, but that too refuses to repair the filesystem.
Finally, "backup and reinstall" is the only way to go. I get a USB hard drive, use my unix skills to mount it and format it with the HFS+ filesystem in single-user mode, and back up all my wife's data (only a couple of unimportant files failed to get copied, luckily). And I reformat and reinstall, as any good Windows sysadmin would do.
Thoughts:
- This has never happened to me on linux, which I've been using on my own computers for 10 years now, and on other computers for even longer. A couple of times the filesystem was sufficiently corrupted that some important system files got lost, but all I had to do was copy them over from another machine or reinstall the affected package.
- Linux, like OS X, typically uses a "journalled" filesystem (usually ext3 or ext4 on linux, HFS+ on Mac). This means that, after an "unclean" shutdown, the filesystem need not be thoroughly checked. But even when the shutdown is not unclean, Linux systems are usually set up to check the filesystem automatically once every 30 days, or once every 100 mounts (reboots), or thereabouts. This is just a precaution: hardware and software errors can always count problems. As far as I can tell, Mac is not set up to do this. In fact, as far as we know, the machine was not shut off "uncleanly" at any time recently: what probably happened was that undetected filesystem errors grew until they became unrecoverable. Why does Mac OS X not schedule a periodic filesystem check? Is it because Jobs thinks users will get frustrated at that informationless, spinning progress indicator? If so, why not just tell the user that the filesystem is being checked? I'm sure most users won't mind.
- My wife -- and other non-techie users -- could not have recovered the computer on her own. From all accounts, Apple's customer service is good and very likely they'd have done exactly what I did, but they would have taken a few days rather than a few hours.
- We should have taken backups, and got away very lightly considering we didn't. After this incident, we bought a new USB hard drive and set up Apple's "Time Machine" on it. This, like all Apple software, is slick and shiny; how well it works remains to be seen, or hopefully will not need to be seen for a while.
- I strongly suspect that the "filesystem could not be recovered" message was not the truth, but an example of Apple's control-freakishness. The filesystem could perhaps be recovered only by losing a few files (a common-enough situation). Rather than let the user make that choice, Apple wants you to call customer service at the slightest sign of trouble -- by escalating that trouble, and also by hiding all useful information from the user, making it available only via arcane key combinations at boot time.
So if anyone out there is thinking of buying Apple: it's slick hardware and software, but in times of trouble, it's probably much harder to fix than Windows. And harder than other Unix-like systems, because it hides so much of its Unixness on the grounds of being user-friendly, or something. Still, for many people, the slickness probably makes up for anything else.