If you try to install Windows 7 on an SSD disk which is connected via the PCI Express bus (NVMe), you might face the issue that the drive is not presented in the Setup program. Due to this behavior, it is not possible to install the Windows 7 operating system on such hardware. Here is the solution.
Most modern PCs come with SSDs which are use either SATA (AHCI) or NVM Express. They use a SATA connector if using SATA, otherwise the connector may be different depending on the form factor - in a desktop PC, they go into the PCIe slot, in an ultrabook, they use the M.2 connector. But Windows 7 was only designed to work with SATA disks. It was Windows 8.1 which first got support for NVMe. Thankfully, Microsoft has released an update with native drivers for Windows 7 which add NVM Express support.
To fix the problem of not being able to install Windows 7 on an NVMe SSD, the first step you should take is download KB2990941 and KB3087873 patches. After that, you can rebuild the installation media and integrate the updates into it. These updates also enable TRIM support for your NVMe SSD!
Do the following.
- Download patches using the following links:
KB2990941
KB3087873 - Suppose you download the packages (MSU files) to C:\packages
- Copy all the files from Windows 7 SP1 setup media (ISO/DVD/USB) to a folder, let's say it will be C:\ISO\Win7SP1.
- Open an elevated command prompt.
- At the elevated command prompt, type the following command:
Dism /Get-WIMInfo /WimFile:C:\ISO\Win7SP1\sources\install.wim
It will show you the indexes of the images contained in the WIM file. Note the edition of Windows 7 for which you have the product key and its appropriate index. Suppose for example, you are using Windows 7 Ultimate.
- Type the following command to mount the offline Windows image.
Dism /Mount-WIM /WimFile:C:\ISO\Win7SP1\sources\install.wim /Name:"Windows 7 Ultimate" /MountDir:C:\ISO\unpacked
This command will mount the Windows 7 SP1 Ultimate edition files to the folder C:\ISO\unpacked. The folder must exist on your system, otherwise correct the path.
- Type the following command to integrate KB2990941 for Windows 7 64-bit
Dism /Image:C:\ISO\unpacked /Add-Package /PackagePath:C:\packages\Windows6.1-KB2990941-x64.msu
For 32-bit Windows 7, type the following command
Dism /Image:C:\ISO\unpacked /Add-Package /PackagePath:C:\packages\Windows6.1-KB2990941-x86.msu
Correct the file paths and file names as necessary. I used the actual paths and file names on my computer as an example.
- Now, type the following command to add the KB3087873 package to the image. Do it as follows.
For 32-bit Windows 7 SP1, execute this command:Dism /Image:C:\ISO\unpacked /Add-Package /PackagePath:C:\packages\windows6.1-KB3087873.msu
For 64-bit Windows 7 SP1, execute this command:
Dism /Image:C:\ISO\unpacked /Add-Package /PackagePath:C:\packages\windows6.1-KB3087873.msu
Again, correct the file paths and file names as necessary. I used the actual paths and file names on my computer as an example.
- Once this is done, type the following command to commit the changes and unmount the image.
Dism /Unmount-WIM /MountDir:C:\ISO\unpacked /Commit
You are done. Now you can use the updated WIM file to install Windows 7. Now it will be possible to install it on PCI Express (NVMe) SSDs.
Support us
Winaero greatly relies on your support. You can help the site keep bringing you interesting and useful content and software by using these options:
No, it does not work. Computer simply won’t boot from it running Windows 7.
Worked wonderfully. Thanks for the write up!
You are welcome.
i’ve tried this method. i’ve unzipped the original iso in the c:\iso\win7 folder, i’ve unzipped the packages in c:\packages
i read the WIM file, i mont the .wim image. then i add the packages (i don’t understand why the program write in the unpack folder), when i finish the work. i don’t know how to create the iso file. i’ve the putt all the content of the win7 folder in a new iso file ?
can someone explain it to me ?
does this command unmount the WIm and create the iso ?
Dism /Unmount-WIM /MountDir:C:\ISO\unpacked /Commit
did not work for me , it could be my cosair force mp500 ssd as their website shows it is for win10 OS
Worth noting that you also need a motherboard with a BIOS that can see NVMe PCI drives at boot time – and offer them as a boot option. Not all motherboards do. Many manufacturers are only including this functionality on new mobos rather than offering updated BIOS firmware for older mobos.
This will let Windows see the drive, but you would still have to F6 the drivers for your brand of NVMe
If the article specified that those DISM commands should ALSO be used to inject these hotfixes into the boot.wim file (Index #2), then the Windows Setup application would be able to see NVMe SSDs without the need for manually supplying drivers during Setup.
Doesnt work for me – device driver still missing.
this will NOT work.
You have to do this for the BOOT.WIM also
for BOTH of the included images 1 and 2 !
For me, installing Windows 7 Professional x64, it had to be;
Dism /Mount-WIM /WimFile:C:\ISO\Win7SP1\sources\install.wim /Name:”Windows 7 PROFESSIONAL” /MountDir:C:\ISO\unpacked
Dism /Image:C:\ISO\unpacked /Add-Package /PackagePath:C:\packages\Windows6.1-KB2990941-v3-x64.msu
Dism /Image:C:\ISO\unpacked /Add-Package /PackagePath:C:\packages\windows6.1-KB3087873-v2-x64.msu
I tried all of this after adding USB 3 support to the install media. I injected both items into both sections of boot.wim & the ultimate section of install.wim. What I then found is the usb 3 driver problem rose it head again! Reinstalling the usb 3 drivers did not solve the problem, I had to start over!
So to recap, I can get past the usb 3 driver problem, but as soon as I use this advice to install SSD support I cannot get past the screen asking for CD/DVD drivers, to get to see if Install programme can recognise the SSD!
Can you tell me how do I do this in Ubuntu? It doesn’t have CMD, so I can’t type “Dism /Get-WIMInfo /WimFile:C:\ISO\Win7SP1\sources\install.wim”
OK, after trying MILLIONS of ways to get W7 installed on my Samsung NVMe drive, I found that MSI has the only working solution for me, and it is mega simple !
You will need:
– MSI W7 Smart tool
– W7 iso file
Fucking simple.
Simply run the MSI W7 Smart tool, select the W7 iso file, select to add USB, NVMe and iRST drivers.
Then select your USB target flash drive.
MSI then makes a bootable USB disk with NVMe drivers.
All the [censored]ing bullshit I had to do for [censored]ing 2 days trying to install W7 on this Samsung 950 drive.
Nobody except for MSI decided to make this simple tool, Not Intel, with their incomprehensible technical note, not Microsoft who should have included the NVMe drivers standard in the downloadable W7 iso.
I guess that MS tries to make this stuff as difficult as possible, so ppl will not try to install W7 anymore. So, I think MS is telling everybody that they are not allowed to use the NVMe drivers or whatever. In fact, the Reddit poast about this subject has a not working link to the Samsung drivers.
Anyway, I might have gotten a bit crazy, because how on earth is it possible that such a small missing driver can cause such problems, and so many post on internet with EXTENSIVE DIFFICULT explanations, all not working. (except for the solution of MSI, which is childish simple)
My next mobo will be MSI, not Asus.
I want to thank Robert for pointing me in the right direction. It truly was the most simplest streamlined solution. Especially since Samsung has forsaken Windows 7 install (the only drivers I could find were executable and could not be extracted. Not ideal for Preinstall environments! for shame Samsung!)
Wish this can be upvoted. +rep my dude and shot to MSI for making that tool.
I wanna thank you, i really do, i was strugling with this for over a month now, i have a WD Black NVME and i downloaded 10 iso of windows 7 i think, looking for one with nvme drivers and usb 3.0.
Its f… simple as using that tool!! OMG Thanks Man!
Grettings from Bolivia, im sorry for my english.
Thanks.
Thank you Robert. I was trying the dism commands above and they did not work for me. The MSI Smart Tool is f[censored] awesome. I primarily needed the nvme driver so I could install Windows 7 on my Samsung 960 EVO. Thanks again for your help!
Robert, your post was exponentially more helpful than the article itself. Thank you!
Asus already have utility for this Asus EZ Installer (newest version is available for Z370 chipset mb)
There is another universal utility – Windows Download Integrator
Good job! I used the MS patches to install drivers on an existing Win7.
Only site I found that helped.
a very big thank you for you man you saved my day !!!
this method only can be done on windows 10 windows 7 does not have the command DISM
DISM is available in Windows 7 too out of the box.
As pointed out by some commenters, this has to be done for boot.wim also besides install.wim. The USB 3 and NVMe KB updates especially integrated into boot.wim.
hotfix 2990941 is no longer available for some reason.
This method is tested and working for Samsung 970 Evo PLUS. Tested on Asrock AB350M + Ryzen 5 1500X. The Install menu is listed my NVME, installed on the board. SO everyone with 970 evo PLUS can try it.