For the last couple weeks I’ve been unable to install SP1 for Windows 7 x64. From time to time windows update tries to install it, and it always fails with:
ERROR_NOT_FOUND 0x80070490
There are a ton of people online trying to figure out this problem, with a wide range of suggestions and solutions, and quite often people resorting to reinstalling windows.
One users post sent me down a path that allowed me to resolve the problem, but it wasn’t completely clear from his post that what I was doing was working, so I wanted to elaborate on what I did and how I fixed the issue.
First, I did the following without any change:
- Run chkdsk
- Run sfs /scannow
- Run the System Update Readiness Tool
The post by Ben-IS was the one that got me going in the right direction:
The log flies that I frequently checked (and cleared out) were:
C:WindowsLogsCBSCBS.log (filled with stuff when you run the service pack install)
C:WindowsLogsCBSCheckSUR.log (filled when you run the System Update Readiness Tool)
C:Windowsinfsetupapi.app.log (this one was most important)
When I checked setupapi.app.log I and searched for “failed to” it would find a line like this:
!!! sto: Failed to find driver update ‘C:WINDOWSWinSxSamd64_usbport.inf_31bf3856ad364e35_6.1.7600.16788_none_19ba59901d3be89eusbport.inf’ in Driver Store. Error = 0x00000490
<<< Section end 2011/12/17 20:38:02.355
<<< [Exit status: FAILURE(0x00000490)]
So, given that line, I was then able to register the driver using the command:
pnputil -a C:WINDOWSWinSxSamd64_usbport.inf_31bf3856ad364e35_6.1.7600.16788_none_19ba59901d3be89eusbport.inf
So after doing that, I go back and run the SP install again, and guess what, it fails in exactly the same place with the same error. Crap.
I had copied the setupapi.app.log out of it’s folder so that a brand new one was created, so I went back and looked for the same “failed to” phrase and quickly found:
!!! sto: Failed to find driver update ‘C:WINDOWSWinSxSamd64_usb.inf_31bf3856ad364e35_6.1.7600.20934_none_27ac0e3841194697usb.inf’ in Driver Store. Error = 0x00000490
<<< Section end 2011/12/17 21:42:08.609
<<< [Exit status: FAILURE(0x00000490)]
But, if you look very closely, you’ll see that this is NOT the same error. It’s a different error. The first path ended in “89eusbport.inf” and the 2nd ended in “697usb.inf”.
After an even closer examination of the entire block that contained this error showed that it had gotten 1 line further than last time. And based on this header information:
>>> [Uninstall Driver Updates]
>>> Section start 2011/12/17 22:19:38.189
cmd: C:WINDOWSservicingTrustedInstaller.exe
sto: Driver Update Context:
sto: Image State = Specialized
sto: Image Architecture = amd64
sto: Transaction = CbsDriversAndPrimitives
sto: Driver Updates = 66
I knew that there were only supposed to be 66 drivers being worked on, and I had made it past 64 of them by this point. I went back to earlier log files and found that I had only gotten past 63 before. So I repeated the process a couple more times, each time getting 1 driver further until finally it installed completely.
I spent EASILY 20 hours on this over the past couple weeks. It was a giant pain in the butt, but I’m really glad to have resolved it because reinstalling everything on my dev laptop would have taken days.