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.
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.