Friday, July 30, 2010

Yet more thoughts on Apple

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.

5 comments:

Anonymous said...

Steve Jobs does not want to sell you a PC you want. He has decided how you should use a PC and what you should use it for - that's it. But that said I am surprised, Paul "Pharyngula" Myers is one of the hardest core Mac freaks around and sure would have a work around for this.

My 1st choice is a MS-Windows n-1 version, 2nd choice Ubuntu - and I am waiting for the Chrome PC. What do you need an OS for really?

km said...

What do you need an OS for really?

And what do we need GUI for? People were so happy with green screens.

Rahul Siddharthan said...

km -- a green screen, and emacs. That's all one really needs.

Rahul Basu said...

Rahul: As a 'veteran' Mac user (that is, all of three years) indeed Mac does hide some stuff from you though there are ways to make it disgorge that info. I backup regularly using Time Machine but even there, it is not a bootable format so you would still need the original CD to boot and then copy stuff back from Time Machine, if your system crashed. It's best to make a bootable disk and there are very simple ways to do this using Disk Utility. (Incidentally that's a remarkable utility which it very useful to learn to use).

I really don't think it's more difficult to debug a Mac. You find linux easier because you are used to it. There is really a lot of info out there. And there is a About: Macs site which I subscribe to which has nice stuff about common problems like this.

But the idea behind Mac OS is to take the 'user-friendliness' of Windows and the unix stability of linux and combine the two which I think it does admirably. Perhaps at some (minor) cost of openness. OTOH, it's not as if for a newbie, linux manuals are models of clarity...

Anonymous said...

km,

when you spend so much time as I do on a browser, what do I need an OS for?