The Windows 7 RTM distribution doesn’t support USB 3.0 and NVME controllers out-of-the-box, and you can encounter some problems when installing Windows 7 on a computer/laptop having USB 3.0/3.1 ports only or with an SSD drive connected via a PCI Express bus (NVMe). For example, a USB keyboard and mouse may not work in Windows 7 Setup, or the installer may require you to load drivers for USB/NVMe ports or devices:
A required CD/DVD drive device driver is missing. If you have a driver’s floppy disk, CD, DVD, or USB flash drive, please insert it now. Note: If the Windows installation media is in the CD/DVD drive, you can safely remove it for this step.
Accordingly, you cannot install Windows 7 (or Windows Server 2008 R2) on a computer on which all peripheral devices are connected via USB 3.0 ports. Or the Windows Installer will not see the PCI Express (NVMe) SSD.
All of the Windows 7 installation image modification operations described below are performed on a computer running Windows 10.
How to Inject USB 3.0 Driver into Windows 7 Install Media?
To install Windows 7 on some computer models, you can disable USB 3.0 mode in BIOS settings by switching to USB 2.0 compatibility mode (Legacy USB 2.0). In all other cases, you will have to modify Windows 7 install distro and integrate USB 3.0 drivers for your motherboard chipset to the boot and install WIM images.
First of all, find and download USB 3.0 drivers for your chipset from the vendor’s website (in our example, it is Intel® USB 3.0 eXtensible Host Controller Driver for Intel® 7 Series/C216 Chipset Family). Create a new directory c:\tmp, and create two subfolders inside it: mount and USB3. Extract the driver archives to the USB3 folder. You can create several subfolders with different USB 3.0 drivers for popular chipset models inside the USB3 catalog.
Next, you need to integrate your drivers into the Windows 7 installation image (it may be an ISO file or a ready image copied to the installation USB stick). You need to copy two WIM files from the ISO image or Windows 7 installation media to the local c:\tmp directory on your drive.
- \sources\boot.wim – WinPE boot image used to boot the computer and run Windows Setup;
- \sources\install.wim – Windows 7 image that will be installed on your computer.
DISM /get-wiminfo /wimfile:install.swm
Now export each install.swm index into a single WIM file:
DISM /export-image /sourceimagefile:install.swm /swmfile:install*.swm /sourceindex:1 /destinationimagefile:install.wim /compress:max
DISM /export-image /sourceimagefile:install.swm /swmfile:install*.swm /sourceindex:2 /destinationimagefile:install.wim /compress:max
Open an elevated command prompt Now mount the WinPE boot image (boot.wim) to the c:\tmp\mount directory and integrate the USB 3.0 drivers into it using DISM commands (according to the guide How to add drivers to a Windows image):
dism /mount-wim /wimfile:c:\tmp\boot.wim /index:2 /mountdir:c:\tmp\mount
dism /image:c:\tmp\mount /add-driver:"c:\tmp\usb3" /recurse
The following message indicates that the specified USB3 driver was successfully added to the boot.wim image of the Windows 7 Setup environment:
Installing 1 of 6 — c:\tmp\usb3\Drivers\HCSwitch\x64\iusb3hcs.inf: The driver package was successfully installed.
Save the changes in the image and unmount the boot.wim file (to avoid DISM errors, make sure that you closed all File Explorer windows and the file managers, which has the c:\tmp\mount directory open):
dism /unmount-wim /mountdir:c:\tmp\mount /commit
dism /cleanup-wim
Similarly, you need to update the operating system installation image in the install.wim file. The main difference here is the install.wim image can contain several editions of Windows 7 with different indexes. So, you will have to add drivers to that Windows edition you are going to deploy on your desktop computers (or inject drivers to all available Windows 7 editions in turn).
You can list the available Windows 7 editions in the install.wim image as follows:
dism /Get-WimInfo /WimFile:c:\tmp\install.wim
In our example, there are 4 different Windows editions in the install.wim image. We’ll add the USB 3.0 driver to Windows 7 PROFESSIONAL with the index 3 (this number will be used to address the edition in the DISM commands).
Then add the USB 3.0 drivers to the Windows install image as we did it above:
dism /mount-wim /wimfile:c:\tmp\install.wim /index:3 /mountdir:c:\tmp\mount
dism /image:c:\tmp\mount /add-driver:"c:\tmp\usb3" /recurse
dism /unmount-wim /mountdir:c:\tmp\mount /commit
dism /cleanup-wim
If you are using a USB flash drive as the installation source, be sure to copy the boot.wim and install.wim files back after injecting the drivers.
How to Install Windows 7 to NVMe SSD?
In this part, we’ll show you how to create an NVM Express (NVMe)-enabled Windows 7 boot image for hard drives (typically SSDs) connected via a PCI Express (PCIe) bus.
When you try to install Windows 7 on a computer with an NVMe disk, the Windows installer will simply not see the SSD drive connected through this bus.
No drives were found. Click Load Driver to provide a mass storage driver for installation.
Windows 7 SP1 and Windows Server 2008 R2 SP1 distros don’t contain PCIe (and NVMe) drivers, you can only install the OS on a SATA SSD drive. Built-in support for NVMe appeared only in Windows 8.1. Microsoft has released special updates that enable support for NVM Express in Windows 7. Next, we will show you how to enable PCIe support in the Windows 7 installer and inject NVMe drivers into it.
- Download the following updates from the Microsoft Update Catalog: KB2990941-v3, KB3087873-v2. Save *.MSU files to the directory
c:\tmp\updates
; - Download the NVMe driver for your controller and extract it to
c:\tmp\nvme
; - Slipstream the updates and the drivers to the boot WinPE image (boot.wim):
DISM /Get-WimInfo /WimFile:c:\tmp\boot.wim
DISM /Mount-Wim /WimFile:"C:\tmp\boot.wim" /Index:1 /MountDir:c:\tmp\mount
DISM /Image:c:\tmp\mount /Add-Package /PackagePath:C:\tmp\updates
DISM.exe /image:c:\tmp\mount /Add-Driver /driver:c:\tmp\nvme /recurse /ForceUnsigned
DISM /Unmount-Wim /MountDir:c:\tmp\mount /Commit - Run the same commands for the image with index 2 (on the second line, replace
/Index:1
with/Index:2
). - Now you need to integrate the update and the driver into the Windows installation image (install.wim). The image file can contain several versions of Windows 7 with different indexes. You can get a list of Windows versions with the command:
dism /Get-WimInfo /WimFile:c:\tmp\install.wim
Specify the index of the image to be updated (in our example it isIndex:2
)
DISM /Get-WimInfo /WimFile:c:\tmp\install.wim
DISM /Mount-Wim /WimFile:"C:\tmp\install.wim" /Index:2 /MountDir:c:\tmp\mount
DISM /Image:c:\tmp\mount /Add-Package /PackagePath:C:\tmp\updates
DISM.exe /image:c:\tmp\mount /Add-Driver /driver:c:\tmp\nvme /recurse /ForceUnsigned
DISM /Unmount-Wim /MountDir:c:\tmp\mount /Commit