I lost a days work yesterday to a corrupt internal hard drive on my not even a year old MacBook pro and I wanted to share the double secret way to get around the roundabout of contradictions in the output from Apples Disk First aid program that kept me spinning all day.
First of all this is my first disk corruption on anything Mac in a decade or more than doesnt appear to be related to a failing hard drive. At least I hope its not a failing hard drive as its the non replaceable internal SSD drive. I did spring for AppleCare on this machine so if it is failing they will fix it for me eventually but lets hope that is not the problem. I hope its just the kernel panics Ive been having lately for no reason that I can find that are causing it and not a hardware failure. Im still on Mohave on this machine so its not the current issues with the latest Catalina update that have caused this.
After BBEdit just froze spinning beach ball while trying to save a file I was working on I began to suspect if it wasnt a disk issue so ran disk first aid which returns a long list of dstream allocation issues or missing objects or something like that. So I rebooted to Recovery Mode to try to do the repair. The error after watching it chew on the disk for hours was that it couldnt actually repair the disk and I should try running it instead on the Container object. Except that the containers and lower order structures are not listed in Disk First Aid when running in Recovery mode… So the first challenge was just that I have had to run this so rarely that I didnt immediately know that I could turn that on under the View toolbar item. Once turned on it did show the container and I ran it again.
The problem then was that it couldnt unmount the container as some other volume on it was still mounted. Well of course it is, its the recovery partition. So… you cant fix the non-recovery partition if youre booted from the recovery partition? Well thats frustrating. And you cant actually bot from an external drive without turning that on also in recovery mode so a couple more reboots and restarts to get that even allowed. I wasted a couple more hours trying to get the machine to boot from my external clone disk created by Carbon Copy Cloner which is supposed to be bootable. Except it was not bootable. It got stuck in a loop saying that a software update was needed to boot from that disk. So I would click update and it would go through the motions of downloading and running an update and then restart and tell me again that an update was needed to boot from this disk. Repeat 3 or 4 times just to be sure
So to sum up, the only way I could get this machine to boot where it wasnt running from the recovery partition or anything else on the root disk was to use the Network boot mode where it downloads an OS boot image from Apple over the internet into memory and then boots from that. Which is a neat trick but I didnt imagine Id need it considering how many bootable backups I keep synced every night for backup. To do that you need to hold down both command and option while holding the R key and rebooting. It will then let you sign into your WiFi and start downloading the image. Took about 8 or 9 minutes on my network to get the data and boot up. Once I was running from there I was able to select again show all from the View toolbar item, select the disk container object and run disk first aid on that. Several hours later it had repaired everything and run the check again just to be sure. I havent done any extensive testing but my files that I was working with yesterday seem fine this morning though there is still plenty of time to find other corrupt things. Im happy to have gotten it to fix the issues but angry that the process was so roundabout and frustrating. It didnt used to be so complicated to repair a disk!
In any case, thank you for letting me vent about the experience and I hope you tuck that bit of info away into your heads in case you run into the same boot to recovery mode to repair this type message when youre already booted into recovery mode!