Why does Windows 7 ask for additional drivers when installing from a USB 3.0 drive?

You need USB 3.0 drivers to read installation media. Windows 7 is fine with AHCI.


The problem is a bit mysterious until you realize what's happening behind the scenes during a windows install. And, there is a workaround to allow you to use USB 3.0. One workaround is easier in the moment, the other requires a bit of work to setup, but will be easiest for future installs.

Introduction: What exactly is the problem

Here is a lengthy but casual description of the process, and why you can't complete the install:

  1. Bios starts the computer. Bios is software. It runs the POST - and loads basic support for various hardware devices. It is able to access the USB 3.0 ports, it finds the boot manager on the USB stick, and the bootmgr loads the windows 7 installation setup.

  2. Once the windows 7 setup exe loads - bios hands over control of the hardware. The bios access to hardware ends. Windows Setup must load it's own drivers to see the various hardware devices. I think this is called the Windows Pre-Installation Environment. It doesn't have USB 3.0 drivers. So no, just because you started with access doesn't mean you still should now. You don't.

    You may be aware that during this installation process, WinPE can see some hard disk controllers. Back in the day (win NT 4.0, 98 etc) it could see IDE controllers, but not SATA, or 3rd party, or many SCSI controllers. If you had a new motherboard, or add in card - you would have to press F6 and put a floppy disc in. WinPE would load drivers from the floppy, and then it could see the SATA controller, or scsi device, and installation to the disk on that new controller could then continue. The problem here is similar...

    Further Detail: While bios is accessing the USB 3.0 memory stick, WinPE creates a virtual hard drive, called, Drive X: and WinPE loads itself onto Drive X. Bios then hands over control, and WinPE examines drive X for inf files, to load any drivers it needs. For Windows 7, it has SATA, and USB 2.0 - but it does not have USB 3.0 drivers in it's arsenal. (Remember, Win98 didn't have USB 2.0 drivers either).

    So, why can't you continue? The problem is, only the WinPE environment and utilities (eg: the partitioning utility) are loaded onto Drive X. The actual windows 7 software is still stored as a package on the USB 3.0 memory stick - and now that bios has handed over hardware control to PE, you've lost access to it. We'll fix that Later...

    The last step in the process...

  3. NORMALLY, after WinPE unpackages the Win 7 files onto your hard drive, and reboots - (you might already realize this) - the Pre-Installation Environment evaporates. It was only stored on a virtual drive "X:" and since ram is erased on reboot - so was WinPE. So, you guessed it, Windows 7 would now be on your pc, and again, doesn't have access to USB 3.0.


Summary

So now, it should finally make sense, that Bios, Windows Preinstallation Environment, and Windows 7 are each their own operating systems, each more complex than the one before - but each needs it's own drivers to access devices.


The Solution:

It's actually pretty simple. You just need to add a driver to each OS. Bios has it's own. Windows PE and Windows 7 are stored as packages on the installation disc.

The long way around is to get a copy of your USB 3.0 drivers, and unpack the WinPE package, and if you want, unpack the Windows 7 package, stick the driver INF files into their driver caches, and repackage them, and put the updated package back on the install disc. Once that's done, you're good for any new installs you do. Someone else can tell you how to slipstream. It's a bit time consuming for a one time fix.

For a one off, it's a lot easier to do this.

Remember that a USB stick will only install Windows 7 if the stick is formatted NTFS before you copy your Win7 dvd to it. FAT wont work.

  1. Locate your USB 3.0 drivers for windows 7 (x32 or x64, I'm not sure how crucial that is). For myself, I used an Etron 168 and there was just one INF and it worked for x64. On a Win 7 x64 installation, there are both x32 and x64 drivers present, so start by matching the corresponding driver to the install you're working with. If that doesn't work, maybe try the other.

  2. Create a drivers folder on the USB stick, or on a second USB stick.

  3. Boot from the USB 3.0 port.

    (Misc notes: bios must be set to boot from a "USB-HDD" for this, and some mobo's are fussy - e.g.: Gigabyte - and some will default to the ssd or hdd anyway if it is bootable. )

    Win PE will load (very quickly, by the way), and will complain, The error is something about the CD/DVD drivers are needed. (note: CD/DVD, not a hard drive or scsi driver!)

  4. At this point, you have the option to Browse. Whichever USB stick you put the drivers onto - put it into a USB 2.0 port, and THEN browse. WinPE will autodetect the USB 2.0 stick, you can browse to the folder, and select OK. WinPE will load the USB 3.0 drivers.

    (REMEMBER - these drivers are for WinPE, and once it reboots, they will be lost.)

    Caveat: Because you've just accessed a USB 2.0 port, WinPE may want to locate any further files from that USB 2.0 port. After the USB 3.0 driver is loaded, REMOVE any stick from the USB 2.0 port, and ensure the USB 3.0 stick is in the USB 3.0 port. WinPE might error at this point, and it may appear to revert 1 step back. As long as the USB driver loaded, you will be able to move forward. It's for this reason, that if you do multiple installs, slipstreaming your driver into the WinPE package might be easier. Again, look elsewhere for how to do that.

  5. Ideally, once the driver loads, WinPE will move to the next step, and you can now start your install. Select or create the partition on your hard disk (or SSD), and start the install. With your USB 3.0 drivers working, WinPE will be able to locate the Windows 7 package on the USB 3.0 stick, and unpack it into the hard disk partition you selected.

    Note: It may not make sense, but WinPE could have seen, and allowed you to tailor the Hard disk or SSD, created and sized your partitions, and THEN complained it didn't have access to the Windows 7 package on the USB 3.0 stick - but for whatever reason, it stops things right up front, and asks for the CD/DVD driver (in this case, usb 3.0 driver).

    The install will be very quick from that point. For a build I just did, it unpacked Win7 onto a low end ssd in 4 minutes.

    At that point, it will advise it wants to restart the pc. Once the pc reboots, the install will continue exclusively using the files now on the hard disk /ssd.

  6. Therefore, remember to remove the USB stick during the reboot.

  7. Make sure bios is configured to boot from the C: drive (hard disk/ ssd) at this point.

    Windows 7 will configure itself, load any device drivers it can, and you'll be at the desktop in no time.

  8. Just remember you now need to put the memory stick in a USB 2.0 port and load the USB 3.0 drivers for Windows 7!


Try this, ymmv.

Install from USB:

When Windows is asking for driver, just click Cancel. You will be brought back to the welcome screen. At the welcome screen, remove your USB drive, insert it back to DIFFERENT USB PORT. Click Install Now again. The installation process will be like usual.


Also, forget where I found this tidbit

"it was the SATA drivers for the MoBo"

"On another PC (obviously), I downloaded the latest Win7 drivers for my motherboard and put them on the USB stick that I was installing Win7 from (although this should probably work even if you install from DVD, just as long as you can get to them when you Browse from the error dialog). Once I got the error, I browsed to the files to install, but they still didn't show up. I unchecked the box for not displaying incompatible drivers and then they showed up. I selected the driver and hit Next and everything went smoothly after that."

"What drives me crazy is that the error message gets you looking for DVD drivers when it has nothing to do with that, plus Win7 doesn't even recognize the correct drivers as being compatible with the hardware!"