Category Archives: Insider stuff

SetupDiag.exe Unveils Upgrade Gotchas

If you read this blog, you already know I finally got my Lenovo X380 Yoga upgraded to 21313 earlier this week. I’d been fighting a bugcheck error for the two prior Dev Channel upgrades before that. Along the way, I found myself  looking for diagnositic info about the failed upgrade.  A Microsoft tool SetupDiag.exe unveils upgrade gotchas, so I started using it. With this post, I want to shed more light on this nice little tool, based on recent experience.

How SetupDiag.exe Unveils Upgrade Gotchas

The program is a log analysis tool that focuses on Windows Setup log files. As the MS Docs page for SetupDiag says:

It attempts to parse these log files to determine the root cause of a failure to update or upgrade the computer to Windows 10. SetupDiag can be run on the computer that failed to update, or you can export logs from the computer to another location and run SetupDiag in offline mode.

That latter offline capability is nice, because it means you can boot an otherwise unbootable machine using rescue media. Once booted, you can then suck the files you need from the problem PC and analyze them on a working machine instead.

Note 1: consider bookmarking the already-quoted MS Docs page. It includes an always-current download link to the latest SetupDiag.exe version. (V160 is current as of Feb 17, 2021 only.)

Note 2: SetupDiag.exe requires .NET Framework 4.6 (or newer). See this WindowsCentral story for multiple .NETversion check methods  in PowerShell (3) or Cmd.exe (1).

Working with SetupDiag.exe

Starting with Windows 10 2004, SetupDiag.exe is included with Windows Setup on Windows 10 ISOs and other install images. Paraphrasing the MS Docs item, it says:

During the upgrade process, Windows Setup extracts its sources files to a directory named %SystemDrive%$Windows.~bt\Sources . With Windows 10, version 2004 and later, setupdiag.exe is also installed to this directory. If there is an issue with the upgrade, SetupDiag will automatically run to determine the cause of the failure.

Thus, so long as you don’t clean up after an attempted upgrade, you’ll find SetupDiag.exe in the afore-cited directory. Grab a copy and put it somewhere else, if you’d like.

Simply search your PC for SetupDiag.exe. Once found, you can run the program from Explorer, in PowerShell, at the Command Prompt, or via the run command.

Reading the Results

SetupDiag.exe writes its results in a file named SetupDiagResults.log. By default, it appeared in my download folder
(C:\Users\<uname>\Downloads).
I found it easily, because I use Voidtools Everything to locate files on my behalf. It’s how I got the details on my bugcheck error code. It reads 0X0000000A therein, but may appear as 0XA in discussions online. When I got the GSOD the error identified itself in the report window as IRQ_NOT_LESS_OR_EQUAL…

The lead-in graphic for this story shows the log file. The area of interest starts mid-way down in a line that reads: “Found crash information in rollback log.” That’s where the bugcheck code appears. Also, “nt” appears as the responsible driver. This, alas, is a built-in OS driver. Mere users cannot uninstall or update it. (That’s a Microsoft internal thing dontcha know?) It’s what convinced me that waiting for an upgrade from MS was the ultimate (and only) fix avaialble.

 

Facebooklinkedin
Facebooklinkedin

Dev Channel Build 21313 Fixes Bugcheck Error

On February 2, I posted a tale of woe here. It explained that I wasn’t able to update my Lenovo X380 Yoga past 21296. Each attempt to upgrade to 21301 failed at around 50% complete after the first reboot. And although error messsages did vary once or twice most of the time it threw an IRQL_NOT_LESS_OR_EQUAL bugcheck error. None of my usual troubleshooting techniques afforded any relief, either. Then I got the word from a contact on the Insider Team: this was a known bug, and a fix should be coming “soon.” That’s why I’m pleased to report that Dev Channel Build 21313 fixes bugcheck error just described. It appears number one in the list of fixes shown in lead-in graphic, in fact.

Proof That Dev Channel Build 21313 Fixes Bugcheck Error

I tackled the upgrade on Friday afternoon, February 12. I could only hope for the best. But soon enough, my hopes were rewarded with a complete and successful installation. I always fret when I have to hang back from the leading edge of releases on any of my PCs. That’s because, as a Windows Insider, I take my commitment to keep up with new releases seriously. So again, I’m happy to be back in the high life again (with apologies to Stevie Winwood).

Proof Positive That Feedback Hub Is Working

When the Insider Team contacted me, they made it clear that (a) I was not alone in reporting this problem, and (b) that ongoing repair efforts were underway with a fix in their sights. My benefactor was very clear about asserting that a fix was coming, but might or might not make its way into the next Dev Channel update.

In fact, the Insider Team skipped its usual Wednesday Dev Channel flight on February 3. Then, it didn’t get a flight out last week until Friday, February 12. This is reportedly in the interests of quality and providing needed fixes. All I can say is that, as far as I’m concerned, those reports are on the money. They fixed what ailed my X380 and I’m glad to say “Thanks, Insider Team! Good work.”

Facebooklinkedin
Facebooklinkedin

19043 aka 20H1 Early Tryout How-to

Here’s an interesting experiment for those with a spare test machine handy.  Note that this machine must run Insider Preview Beta or Release Preview Channel Build 19042.782 with KB4598291 installed. I found a handy collection of DISM commands from poster “moinmoin” at DeskModder.de. If run in an administrative Command Prompt or PowerShell session, the PC will advance to 21H1, as shown in the lead-in graphic for this story. It serves, therefore, as a 19043 aka 20H1 early tryout how-to for adventurous insiders.

Working Through 19043 aka 20H1 Early Tryout How-to

Essentially, the following sequence of commands does piecemeal what a full-blown enablement package does behind the scenes. In fact, DISM runs a series of .mum files, which are XML files that provide instructions to the Windows Update Installer for performing specific updates. Honestly, I’m not sure how “moinmoin” figured this sequence out. I’m guesssing he worked from analysis of other, earlier enablement packages. But that sequence worked on my Lenovo X380 Yoga test machine, which had been running 19042.782 for a few days.

Please, look below for the sequence of commands. Warning: Those using German versions of Windows should get them from the original post. I’ll provide instructions on how to modify the command text for other languages afterward. It’s safe to assemble, then cut’n’paste these commands one at a time in PowerShell. That’s how I “upgraded” my Lenovo test PC, in fact.

Putting DISM Commands together

In fact, all these commands start with same master prefix string. Simply append the other sub-strings and fire them off at the command line to do your thing.

That master prefix string is:

Dism /Online /Add-package:C:\Windows\servicing\Packages\

The 8 suffix strings are (do not grab the numbers and the period that follows them — they’re to help you find stuff, not for command-line use):

1.microsoft-windows-product-data-21h1-ekb-package~31bf3856ad364e35~amd64~~10.0.19041.782.mum
2.microsoft-windows-product-data-21h1-ekb-package~31bf3856ad364e35~amd64~en-US~10.0.19041.782.mum
3.microsoft-windows-product-data-21h1-ekb-wrapper-package~31bf3856ad364e35~amd64~~10.0.19041.782.mum
4.microsoft-windows-product-data-21h1-ekb-wrapper-package~31bf3856ad364e35~amd64~en-US~10.0.19041.782.mum
5.microsoft-windows-updatetargeting-clientos-21h1-ekb-package~31bf3856ad364e35~amd64~~10.0.19041.782.mum
6.microsoft-windows-updatetargeting-clientos-21h1-ekb-package~31bf3856ad364e35~amd64~en-US~10.0.19041.782.mum
7.microsoft-windows-updatetargeting-clientos-21h1-ekb-wrapper-package~31bf3856ad364e35~amd64~~10.0.19041.782.mum
8.microsoft-windows-updatetargeting-clientos-21h1-ekb-wrapper-package~31bf3856ad364e35~amd64~en-US~10.0.19041.782.mum

Even for German (and other languages) the first command above stays the same. The German version of the second command above reads

Dism /Online /Add-package:C:\Windows\servicing\Packages\microsoft-windows-product-data-21h1-ekb-package~31bf3856ad364e35~amd64~de-DE~10.0.19041.782.mum

Note that the bolded language code for German German de-DE is embedded near the end of the string. To invoke the proper files for other languages substitute your language code where it appears. For example, a French speaker in France would use fr-FR, and a French speaker in Belgium fr-BE, and so forth. This applies to elements 2-8 for all languages, and is performed using string substitution on the German language version of the commands.

Necessary Precautions Beforehand

It’s probably wise to make a backup of your test PC’s OS image before you try this sequence of commands out. Also, make sure you have a working, bootable USB flash drive from which you can restore that backup. That way, should the worst happen, and your PC get bricked by the updates, you can boot to the UFD and restore the backup without too much muss, fuss, or lost time. Just because it worked on my Lenovo X380 Yoga doesn’t mean it will also work on your test PC. Better to have the backup and restore tools and not need them, than to not have them and suffer from their absence. Enjoy!

Facebooklinkedin
Facebooklinkedin