Sunday, March 20, 2016

Deploying Windows 7 to systems with NVMe drives



I just got in a shiny Dell Precision 7510 loaded to the gills for one of our mobile graphics design standards to replace the Dell Precision M4800. It has Thunderbolt, NVMe, etc. Since we are still using Windows 7 for design it needs to work with that OS. Luckily Microsoft has released an update to support NVMe. Two KBs are needed.


The KB articles talk about injecting into your source install.wim from the original SP1 DVD however I chose to go a different route and do this via our Deployment Task Sequence.

Three reasons for this decision. One is that it is done via a hotfix, not an (more vetted) update so I want to only apply it to the affected systems. This thew out it being done via our Build and Capture TS. Second is there is a hotfix to the hotfix. The second hotfix (3087873) fixes a BSOD problem after applying the NVMe hotfix. The third being that as of this writing, we are using version 3 and version 2 of the hotfixes respectively. Therefore I did not want to inject it for all systems.

In my TS, the OS arch is chosen via an HTA so immediately after the Apply OS step we run both hotfixes.


This is done via simple DISM commands calling a package containing both files:

 DISM /Image:%OSDISK%\ /Add-Package /PackagePath:".\Windows6.1-KB2990941-v3-x64.msu"  
 DISM /Image:%OSDISK%\ /Add-Package /PackagePath:".\Windows6.1-KB3087873-v2-x64.msu"  

While I did it as two steps, you can run it as one by stacking the PackagePath switches:

 DISM /Image:%OSDISK%\ /Add-Package /PackagePath:".\Windows6.1-KB2990941-v3-x64.msu" /PackagePath:".\Windows6.1-KB3087873-v2-x64.msu"  

Couple things to note.

The hotfixes are only for 64-Bit Windows 7 and Server 2008 R2. This is due to it needing UEFI. I will say that I got it to work with BIOS and drives formatted via the MBR but your hardware may not work this way. my eval units are BIOS, however for production they will be UEFI.

You cannot update the firmware of an NVMe drive in Windows 7. Per the first hotfix, the subnsystem is not in Windows until 8.1.


6 comments:

  1. Are you just creating a Package just using a Command Line within your Program to Apply these Hotfixes? Or are you using a batch file to execute them?
    Trying to get the Precision 5510 to image. It blue screen after the OS install step.
    Thanks.

    ReplyDelete
  2. In the root of the package I have the following files. Then each command line step runs DISM as shown above with the package mounted.

    Windows6.1-KB2990941-v3-x64.msu
    Windows6.1-KB3087873-v2-x64.msu

    ReplyDelete
  3. Trying this with a HP Probook 650 G2. What folder did you place your MSU files?

    ReplyDelete
    Replies
    1. frogbert:

      In the root of the package I have the following files. Then each command line step runs DISM as shown above with the package mounted.

      Windows6.1-KB2990941-v3-x64.msu
      Windows6.1-KB3087873-v2-x64.msu

      Delete
    2. frogbert,

      Did you manage to make this work for HP ProBook 650 G2?

      Delete
  4. I tried this method, it failed.
    Also tried the method where you manually inject the KB articles into the offline image through DISM.

    Ended up going with dells recommendation (New image for win7 with NVMe) https://www.dell.com/support/article/uk/en/ukbsdt1/SLN301473/creating-a-new-windows-7--81--or-10-image-in-a-vm-for-sccm---mdt-deployment?lang=EN

    ReplyDelete