Fix Windows 10 Update errors(1909 to 20H2/21H1)

My Windows Update had kept failing. (Windows 10 1909 to 20H2)
But finally, I end up fixing errors and finish windows update!

Before start: Download Windows 10 Update Assistant and SetupDiag.


Download Windows 10 Update Assistant


First, stop Windows Update.
Go to Settings > Update & Security > Windows Update and click on the button that says "Pause updates for 7 days".
Next, go Download Windows 10 (Microsoft official) and click "Update now".
This will download "Windows 10 Update Assistant".
Now you can run Windows Update only when it suits you.

Check errors by SetupDiag


SetupDiag is a diagnostic tool that analyzing the Windows Setup logs. (It's made by Microsoft)
Go SetupDiag (Microsoft official) and click "Download SetupDiag".
After running SetupDiag.exe, it create following 3 files.


SetupDiagResults.log
SetupDiag.exe.config
Logs.zip

Open "SetupDiagResults.log" and search "Error" section.

In my case, Both 2 PC's log files say "Error: SetupDiag reports rollback failure found.".
First one's error code is "0xC1900101-0x20017", seems like caused by old driver.
Second one's error code is "0x800F0830-0x20003", and also the log file says "The new OS image is corrupt and cannot be repaired." and "You must free up at least "8801" MB of space on the System Drive, and try again.".
So I freed up storage for second PC.

Update drivers


There is a possibility that some old driver caused Windows update error, so I update following driver:
*Chipset
*Graphics card
*Sound card

Update BIOS and disable virtualization


Old BIOS also causes Windows update error.
My PCs are both ASUS Motherboard and have to update BIOS MANUALLY.
Check this article for more information.
How to update ASUS Motherboard BIOS(AI suite 3/EZ update/Asus Business Manager)

Some people says Windows update fails qhen "Virtualization" enabled, so I disable it in the BIOS.
If you using Virtual Box / Hyper-V / BlueStacks, this could have been the reason.
For ASUS Motherboard, select "Advanced" > "CPU Configuration" and disable "Intel Virtualization Technology".
For other manufacturer, search these words in the BIOS


Intel VT
Intel Virtualization Technology
VT-x
VMX

⚠CAUTION⚠
Don't change BIOS settings if you don't know what you are doing.
For example, many people on the internet says "Disabling USB Legacy Support fixed Windows Update error", but this is too dangerous.
"USB Legacy Support" is a feature that allows you to use USB devices before starting up windows.
If you only able to use USB keyboard, YOU'LL NEVER Enter BIOS AGAIN!
SO, PLEASE BE CAREFUL WHEN CHANGING BIOS SETTINGS!

Disable "Microsoft Print to PDF" and "Microsoft XPS Document Writer"


Open Control Panel and Select "Programs and Features" > "Turn Windows features on or off".
Then Check off "Microsoft Print to PDF" and "Microsoft XPS Document Writer ".
Also, delete "C:\$Windows.~BT\Sources\panther\compatscancache.dat".

Why I disabled these?


Windows update logs are located in "C:\$Windows.~BT\Sources\panther\" and I found XML file name starting with "CompatData".
That file contains 2 line of


Inf="****.inf" BlockMigration="True"

I searched .inf files at "C:\Windows\INF" and "C:\Windows\System32\DriverStore\FileRepository", and found out these are the features for "Microsoft Print to PDF" and "Microsoft XPS Document Writer".

I end up fixing errors and finish windows update!


I checked all things above and run Windows 10 Update Assistant, and there's no error this time!
BIOS updating and disabling virtualization, and turning Windows features off are seem especially important.