Windows 8.1 missing font files after restart

Some days ago I rebooted my windows 8.1 system. After the reboot all my system texts were very cryptic - showing only some strange symbols. After some investigation I discovered that my c:\windows\fonts folder was nearly empty. So I copied the font files from another windows 8.1 installation to the nearly empty folder. As soon as I had copied the files the system texts were readable again.

But after another reboot the problem occured again - the systems font folder was empty again. Does anyone know why windows deletes my font files during a restart?


Solution 1:

This has happened to me twice now, both times after a failed font installation. The problem occurs not only after a restart, but also after logging out of and back into a Windows account.

I ended up solving it with a bit of a scattershot approach (mostly out of frustration), but everything seems to be working now after multiple reboots. You'll need a copy of a C:\Windows\Fonts directory from a PC that is not suffering from this problem.

  1. Copy the contents of a C:\Windows\Fonts directory from a PC that is not suffering from this problem and paste them into the afflicted C:\Windows\Fonts directory.
  2. Open up Regedit.
  3. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
  4. Export (just in case) and then delete the entire Fonts group. I also deleted the groups Font Management, Font Drivers, FontLink, FontMapper, and FontSubstitutes, though I re-added them later and suspect they were unrelated.
  5. AGAIN copy the contents of a C:\Windows\Fonts directory from a PC that is not suffering from this problem and paste them into the afflicted C:\Windows\Fonts directory.
  6. Reboot.

Solution 2:

Had the same issue and the selected answer didn't work, I just kept getting an endless crash of the UI (Explorer.exe) after logging in from a garbled login screen. So here is what worked off the command line.

On a working Mac/PC/Linux machine ...

  1. Download the default Windows 8.1 font pack from this post (direct link). The SHA256 hash of the .zip is

openssl dgst -sha256 Windows8.1-Default-Fonts.zip

SHA256(Windows8.1-Default-Fonts.zip)= d2c0cccc8f77f4d8198161cb452c9758608fdb70d64a9347c0b1d911b5d1af49

  1. Extract the .zip file above to a USB flash drive. Example: to D:\Fonts so you'd have something like D:\Fonts\Arial.ttf and so on.
  2. Download the powershell scripts from this post (direct link)
  3. Extract the .zip file to the same USB flash drive, to say D:\FontScripts\ so you have something like D:\FontScripts\Add-Font.ps1

On the affected computer ...

  1. Boot into Safe Mode with Command Prompt (see details below)
  2. cd c:\Windows\Fonts (enter) and del /f /s /q *.* (enter)
  3. type PowerShell (enter) into the command prompt
  4. type Remove-Item "hklm:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" (enter). We remove this because it's corrupt.
  5. Insert the USB flash drive
  6. Type D: (enter) then cd D:\FontScripts (enter)
  7. Type .\Add-Font.ps1 D:\Fonts (enter). You'll get errors about a missing registry settings. Ignore for now.
  8. Reboot. This will rebuild hklm:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts that we just removed in #4 above
  9. Boot into Safe Mode with Command Prompt (same as step #1)
  10. type PowerShell (enter)
  11. Type D: (enter) then cd D:\FontScripts (enter)
  12. Type .\Add-Font.ps1 D:\Fonts (enter)
  13. Reboot.
  14. Get a beer and don't install corrupt fonts.

Booting Windows 8.1 into safe mode

Detailed as option #2 in this blog post, listed here for completeness.

  1. Reboot the affected computer till you hit the login screen
  2. Click the power icon in the bottom right corner. If your fonts are REALLY messed up, this will just be a square box :(
  3. Press the SHIFT key and click the last menu option (it reads Restart on good systems)
  4. Select Troubleshoot => Advanced options => Startup Settings => Restart
  5. When it restarts, select #6 i.e. Safe Mode with Command Prompt