I bought my first Mac, an iMac G4, in 2002. It came installed with Mac OS X 10.1 Puma, and I've been installing minor and major Mac OS X and macOS updates ever since, with the one exception of Mac OS X 10.7 Lion, which in my opinion was the worst Mac OS version ever (before now). My current machine is a 2014 MacBook Pro, which I had updated from Mavericks through Mojave. I did skip macOS 10.15 Catalina, however, which I've heard was very buggy, and I had been holding off as long as possible on macOS 11 Big Sur, which I've seen is very ugly. Ultimately, though, I couldn't wait any longer, because I need to run the latest Xcode beta in order to develop Safari extensions for iOS, and the latest Xcode beta requires Big Sur, so I finally decided to update to Big Sur on Saturday. This was a disaster.
Over the years I've seen many Mac bugs, and even some kernel panics, but I've never had a Mac OS update just fail to finish. What happened this time? I started with the latest version of macOS Mojave on my 2014 MacBook Pro, and I had plenty of free disk space for the update, more than 100 GB. I don't think I had any third-party kernel extensions installed. In fact, I uninstalled Little Snitch before updating, because I was still using an older version of Little Snitch with a legacy kernel extension, which isn't supported on Big Sur. The only thing "unusual" about my Mojave volume is that it had FileVault enabled.
The Big Sur update started fine, and it went through several reboots, as expected. At one point, though, about a third of the way through the progress bar on the black install screen with the white Apple logo, it got stuck. No "progress" at all was made for hours. There was no mouse pointer on the screen, but I tried the caps lock key, and it still lit up for a while, but then later I heard the Mac's fans rev up, and the caps lock key stopped working. The install progress still refused to budge. I was starting to worry.
Some friends told me that they had experienced something similar before, but they were able to get the update to finish by forcing their Mac to power off, and then rebooting. So I did this, maybe 4 hours after I started the update. When I rebooted, the Mac showed the lock screen for FileVault, and I successfully unlocked it with my password. But then it immediately went back to the black install screen, with the progress bar once again stuck at exactly the same point as before!
After more time waiting with no progress, I force powered off again. This time I booted into the recovery volume — which turned out to be a Big Sur recovery volume, obviously already successfully updated from the previous Mojave recovery volume. The funny thing is that as I examined the contents of the disk, it looked like the Big Sur update has finished successfully. The previous single Mojave boot volume had been split into a volume group, with a read-only System volume and a read-write Data volume. The System volume was the correct size, and had exactly as many files as the Big Sur volume I had been testing with on an external drive. I was able to mount the Data volume with my FileVault password, and browsing around with Terminal, it looked to have been updated for Big Sur. I ran First Aid on the disk from the recovery volume Disk Utility, and there were no errors. Everything looked good! So why was the install stuck? I tried resetting NVRAM, but that made no difference.
I had one more "solution" to try: booting into safe mode by holding down the shift key. And surprisingly, that worked! For some definition of working. When I booted with safe mode, and unlocked the volume with my password, it almost immediately finished with the install screen and finally got to the Big Sur setup screen. However, everything in the Big Sur setup was hanging and excruciatingly slow. The user interface took several seconds to react to every mouse click and key press. I didn't know the reason for that, but I tried to trudge through the setup and hope it got better after login. Yet after I chose the region (US English), the network, and other options, the setup wanted me to create a new user account. This shouldn't happen in a macOS update, because I already had a user account. Not wanting to overwrite anything, I decided to quit the setup (with the ⌘Q keyboard shortcut) and shut down the Mac again.
What to do now? At least I had made progress this time, so I decided to try booting again without safe mode, to see whether whatever had been stuck before was now unstuck. And maybe the setup would be faster without safe mode. But when I booted again, it went back to the black install screen again, and got stuck again at a third of the progress bar, the same place as before!
The only way I could get to the Big Sur setup was in safe mode. This was reproducible several times: it worked with safe mode, got stuck without safe mode. So I finally decided to just create a user account with the same name and password as the existing one in the Big Sur setup. By the way, when I looked at the Big Sur volume in Terminal from the recovery volume, I saw my user account in the
/Users/ folder, exactly as expected. I don't know why the Big Sur setup didn't recognize that. Anyway, this strategy did seem to work at first. I was able to finish the setup, login to Big Sur, and then the user interface performance was actually much improved, not as slow as in the setup. Unfortunately, I discovered that all was still not well. My user account, with the same name as before, was not an "admin" but rather a "standard" user account, and I couldn't authorize any actions as root. When I tried, I got a password dialog as usual, but the username was empty, and nothing I entered would work.
A Mac with no admin account is not very usable. There are a bunch of things you can't do, and many features didn't work right. So the operating system was effectively hosed. At this point, I decided that there was nothing more I could do with the update. Yet going back to Mojave was not an option, because Xcode's OS requirements still weighed on me. My only truly viable option was to erase the disk, do a "clean" install of Big Sur, and manually migrate my data from backup. This was tedious but seems to have been successful, and there was no getting stuck during the install. I did enable FileVault after clean installing Big Sur. The whole process has been a giant pain in the butt for me though. Not to mention confusing, scary, somewhat traumatizing. And I've been a Mac developer for many years, a so-called "power user"; I can't imagine how a "novice" Mac user would feel about an experience like this. No Mac user should ever have such an experience.
It's important to remember that Big Sur was released 9 months ago. I'm not an earlier adopter! I waited as long as I could. I was installing macOS 11.5.2. Shouldn't an operating system be safe and stable 9 months after release??
I still don't know why my Big Sur update got stuck. I don't think I'll ever know. It's too late: most of the evidence has already been erased, along with the disk. The memory of it will never be erased from my mind, though. My confidence in the Mac platform, which had been steadily decreasing over the past decade, has been severely shaken in the past few days. It just seems to me like Apple doesn't care at all about software quality anymore. The fancy new Apple Silicon chips are very fast, but who cares if the software stinks?!? The annual forced operating system updates are making me weary. I want to get off the treadmill. What's the point? Why does there have to be a schedule? Can Apple's own engineers even keep up with that schedule indefinitely? Despite the fact that the money is still flowing into the Mac, the cracks in the platform are showing. Everyone was forced to work from home during the pandemic, and that was a financial windfall for Apple, but I'm not sure why Apple has to continue to inflict these endless crappy software updates on us. I really feel, honestly, a hatred for Tim Cook and Craig Federinghi now. They can't be fired fast enough in my opinion. But I'm not an AAPL stockholder, just a Mac user and developer who has fallen out of love with Apple. I didn't worship Steve Jobs like some people did, but I've come to the sad conclusion that the culture of the company died when he did, and the only thing remaining now is a profit-hungry zombie corporation, trading on the longstanding trademark and reputation but not knowing how the reputation was made in the first place. After 19 years on the platform, this is the lowest of the low for me.
Back in August when I published this blog post I said "I still don't know why my Big Sur update got stuck. I don't think I'll ever know." But the situation has changed, and now we do know! The answer is in a blog post by Mr. Macintosh. (I'm assuming that's his legal birth name.) The Big Sur update can fail if there are more than 20,000 files in an obscure
com.apple.metadata.mdworker directory on disk. I just checked my system backup from before the Big Sur update, and the directory contained over 65,000 files. It's far too late for me now, the damage was already done months ago, but it's good to know that I'm not alone, and the failed update was not my fault. Hopefully this discovery will result in Apple taking a long hard look at its QA processes (but I doubt it, because Apple leadership are bozos).