Monday, July 28, 2014

Windows 10: sfc and dism cannot repair corruption


There are several posts along this line, but the fixes that answered other questions did not solve my problem.



  • Windows 10 Pro

    • Upgrade from W7 Pro, but then did a "Reset" as I was having some problems with a screen saver, and wanted to get a cleaner install, without doing a reformat.


  • I ran sfc /scannow and the response was that corruption was found, but could not be repaired (see relevant portion of CBS.log below)

    • The corrupt file was stated to be malgunbd.ttf


  • I then tried various DISM commands


    dism /online /cleanup-image /restorehealth


    dism /online /cleanup-image /restorehealth /source:wim:d:\sources\install.wim:1 /LimitAccess



as well as trying other sources. These all returned the message:



Error: 0x800f081f


The source files could not be found.



along with the reference to look at a Microsoft article about specifying the source.


The source above is a recently downloaded ISO from MS. I also tried a .cab file downloaded by one of the posters here, but it did not seem to contain the relevant font files.


I tried replacing malgunbd.ttf with the same font file from another W10 computer on which sfc /scannow runs without error. That did no good (and makes me wonder of the database that sfc uses to determine whether system files are valid is, itself, corrupted).


I understand that with W10, a repair/reinstall can be done that will just replace the system files, leaving previously installed programs, settings, and data undisturbed. But it seems overkill if the problem is just a single font file.


Here are the relevant portions of cbs.log and dism.log


- CBS.log


2015-09-23 21:00:12, Info                  CSI    000050ad [SR] Cannot repair member file [l:24{12}]"malgunbd.ttf" of Microsoft-Windows-Font-TrueType-MalgunGothicBold, Version = 10.0.10240.16384, pA = amd64, nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-09-23 21:00:12, Info CSI 000050b0 [SR] Cannot repair member file [l:24{12}]"malgunbd.ttf" of Microsoft-Windows-Font-TrueType-MalgunGothicBold, Version = 10.0.10240.16384, pA = amd64, nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-09-23 21:00:12, Info CSI 000050b1 [SR] This component was referenced by [l:252{126}]"Microsoft-OneCore-Fonts-DesktopFonts-windows-Package~31bf3856ad364e35~amd64~~10.0.10240.16384.aa769378d5daebe8af8c9f1c3efdd70e"
2015-09-23 21:00:12, Info CSI 000050b2 [SR] This component was referenced by [l:346{173}]"Microsoft-Windows-Client-Features-Package-AutoMerged-windows~31bf3856ad364e35~amd64~~10.0.10240.16384.Microsoft-Windows-Client-Features-Package-AutoMerged-windows-Deployment"
2015-09-23 21:00:12, Info CSI 000050b5 [SR] Could not reproject corrupted file [ml:42{21},l:40{20}]"\??\C:\WINDOWS\fonts"\[l:24{12}]"malgunbd.ttf"; source file in store is also corrupted
2015-09-23 21:00:12, Info CSI 000050b8 [SR] Repair complete
2015-09-23 21:00:12, Info CSI 000050b9 [SR] Committing transaction
2015-09-23 21:00:12, Info CSI 000050be [SR] Verify and Repair Transaction completed. All files and registry keys listed in this transaction have been successfully repaired

Due to the length of the relevant portions of the dism.log file, I have just posted a link. The file comprises the last two runs of DISM, as in the commands above. The first run was with no source specified; the second was with the install.wim file specified.


Thanks for any help.


EDIT
Being concerned that my file path specification might be incorrect, and in view of magicandre's answer, I executed the following command, with the following result:


PS C:\WINDOWS\system32> dism /get-imageinfo /Imagefile:d:\sources\install.wim
Deployment Image Servicing and Management tool
Version: 10.0.10240.16384
Details for image : d:\sources\install.wim
Index : 1
Name : Windows 10 Pro
Description : Windows 10 Pro
Size : 13,736,528,128 bytes
The operation completed successfully.

And then the actual attempt to cleanup the image:


PS C:\WINDOWS\system32> dism /online /cleanup-image /restorehealth /source:wim:d:\sources\install.wim:1 /LimitAccess
Deployment Image Servicing and Management tool
Version: 10.0.10240.16384
Image Version: 10.0.10240.16384
[==========================100.0%==========================]
Error: 0x800f081f
The source files could not be found.
Use the "Source" option to specify the location of the files that are required to restore the feature. For more information on specifying a source location, see http://go.microsoft.com/fwlink/?LinkId=243077.
The DISM log file can be found at C:\WINDOWS\Logs\DISM\dism.log

Answer



I was finally able to repair my Windows installation such that SFC returned a normal result.


Using a freshly downloaded USB image of W10, I did an inplace upgrade as suggested in magicandre1981's comments.


After that, there was a different file that was corrupt and could not be repaired.


Again, DISM did not initially repair this. However, I was able to determine that the file in question was located in the C:\windows\winsxs and also the C:\windows\system32 folders.


Since the previous installation did not flag that file as corrupt, I figured I could use the previous installations copy of that file as a good file.


Before running DISM again, I executed the following from an elevated command prompt and then re-booted the machine, as per instructions in an article at thewindowsclub.com which is not presently accessible. I'm not sure if the reboot is necessary, as that is not mentioned in another article.


net stop wuauserv
cd %systemroot%\SoftwareDistribution
ren Download Download.old
net start wuauserv
net stop bits
net start bits
net stop cryptsvc
cd %systemroot%\system32
ren catroot2 catroot2old
net start cryptsvc

By running DISM, and using c:\windows.old\windows\winsxs as the Source, I was able to repair the store. And then running SFC resulted in the original file being repaired.


Why this is happening, I have no idea. On a different machine, (and different internet connection/ISP) the upgraded (from W7) W10 installation also showed a corrupt file when running SFC. On that machine, DISM was able to repair it using the default Windows Update as a source.


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...