One of more annoying things I’ve had to deal with lately involved a case where a Mac running 10.4 Tiger would start up, but get hung at the point where the Spotlight icon in the upper-right of the screen would appear.
None of the rest of the menu bar would appear.
Naturally, this happened after a kernel panic, at a time when my client was working against a deadline, and couldn’t afford to have me monopolizing their Mac looking for clues.
I had to work fast, but I also had to find the right answer.
After running the usual disk-scanning tools like fsck and getting nowhere, I grabbed my laptop and started a focused google search. Google produced a promising lead, which I quickly scanned and worked through all of its suggestions. I had never seen this problem before.
I tried booting to ‘safe mode’, but the menu bar refused to appear.
After a bit more research, I found that the ATSserver process was taking nearly all of the Mac’s CPU time. Strange. I googled “ATSserver” and found a post by none other than Mr. John “Daring Fireball” Gruber, a fellow mac-head with a blog. Gruber is a phenomenal writer, and was having similar startup troubles with his Mac recently.
That’s when I took a moment to review the situation. In general, the boot process was proceeding normally, but was hanging after displaying the Spotlight icon. ”So let’s assume that the spotlight system is working fine… what would load next?” I looked up from my laptop over to the Mac, when it hit me. ”The menu bar! The menu bar probably loads next!”.
Okay, so the menu bar… what’s involved there? Well, what is the menu bar? It’s a series of bits of text that you can click on. The mouse pointer had been working fine, so I didn’t think the mouse or its software were involved, but the text, the little words on the menu bar… they were missing!
After a bit more reading at Gruber’s site, I devised a plan that required a bit of trial-and-error. After several attempts, I found a solution that works reliably, and I wanted to document it here just in case anyone else has the same trouble.
I can’t guarantee that this will fix your startup issue, but it worked for us.
Here was the solution in our case:
Essentially, we deleted the system font caches related to the drawing of the menu bars. To do this:
- Boot to single-user-mode (hold down Command+S after the startup chime)
- After all of the text stops flying by, run ‘fsck -fy’, then ‘mount -uw /’ to scan the filesystem and then make it available to you.
- Change to the appropriate directory with ‘cd /Library/Caches/com.apple.ATS’ (The ATS bit stands for Apple Type Services, according to John Gruber)
- Look at the contents of the directory with ‘ls -l’. This will return you a screenful of text.
- Next, take a look at the right-side of the listing, you’ll see the names of directories, but they’ll all be 3-digits long. The reason for this is really boring so I’ll summarize it by saying that your computer keeps track of accounts with numbers instead of names. Generally, the numbers (for equally boring reasons) start with ’501′, with subsequent accounts that you create being ’502′, then ’503′, and so on.
- All we care about is that we find the line of this listing that has a) your account’s short-name in it, and b) the number on the very end of the line.
- Then, armed with that 3-digit number, we’ll delete the caches related to your account by typing in: “rm -r ./the-number” , replacing ‘the_number’ with the actual number, then hit return. To make sure it’s been done properly, type ‘ls -l’ again. Ideally, you’ll see a very similar listing as before, sans the line related to your account’s shortname.
- After this, we need to restart the mac, which is accomplished with a ‘shutdown -r now’.
The client looked over to find her Mac booting perfectly, and she was able to finish her project on time.