I did a clean install of my mac from a usb key. Following that, everything worked perfectly in high sierra. Then, i used migration assistant to restore from my latest time machine backup. Following the restore, all of my fonts on not only the login screen, but also everything on the desktop and finder have become question marks with boxes around them. My question is, how do i restore the system fonts to get my fonts back into human readable form? See the screenshots below.
I’ll assume you have already tried a safe boot to rebuild the font cache and you legitimately have a system level corruption where the font database cannot retrieve even a system font.
- Boot to internet recovery if you can and verify that Disk Utility gives the boot volume a clean bill of health. A failing storage device would explain why a good backup on a good system would end up with corrupt fonts.
- Boot to internet recovery (or local recovery) and connect to the internet and download a fresh copy of macOS to reinstall over the top of the data.
Once that’s done, you can be sure you have a good install and then go back to isolating how the user account got corrupted.
- Boot to single user mode (or recovery) and mount the files stem as read/write and remove
/var/db/.AppleSetupDonefile so you can make a brand new admin account.
If this new admin account is also corrupt, you’ll need to perform a full erase install and/or seek hardware service since known good OS can’t be installed on an erased drive.
If this new admin account is fine with fonts, now you know the user account you migrated has the issue so you would decide to pick apart the font database / library for that user and re-enable all fonts in FontBook app - remove any third party font management tools. Or you could hand migrate that user’s files to a clean working account and walk away from the user corruption.
Sorry for so many if / then / else, but this isn’t a simple - press this one button to restore the fonts when you’re migrating user data to a system that’s not sure it’s working.