Removable v. Fixed USB drives

Mass Storage USB media devices can be separated into two categories - Fixed or Removable.
 
  • USB Hard drives are always the Fixed type.
  • Most USB Flash drives (but not all) are of the Removable type.
  • Microsoft Windows-Certified (WindowsToGo certified) USB Flash drives will be of the Fixed type.
 

The SCSI Inquiry Command

USB Storage Devices can be accessed by Windows using a 'SCSI Passthough' API. SCSI-like commands can be sent to the USB controller and data received back.
 

The removable media device setting is a flag contained within the SCSI Inquiry Data response to the SCSI Inquiry command. Bit 7 of byte 1 (indexed from 0) is the Removable Media Bit (RMB). An RMB set to zero indicates that the device is not a removable media device. An RMB of one indicates that the device is a removable media device. Drivers obtain this information by using the StorageDeviceProperty request.

Windows/linux will assume that a RMB=1 device can be disconnected at any time by the user. Any disk writes made by the OS to the media will be made immediately - no delayed buffering will be used. For a RMB=0 device (e.g. USB HDD), the OS may choose to delay writes for say 30 seconds or so. This improves performance because instead of lots of small write operations, it is quicker to use just a few large write operations.

For more information about the SCSI Inquiry command, see http://www.t10.org

RMPrepUSB will inform you of the type of USB drive you have:

 

Why is the Fixed\Removable type important?

There are a number of reasons why this single RMB value is important for E2B.
 
1. Up until Windows 10 Redstone 2 1703 (Creators update), all previous versions of Windows would only mount and assign a volume letter to the first partition of a Removable drive. This meant that Windows could not access files on any other partition of a Removable drive.
 
If your E2B USB drive is of the 'Fixed-disk' type, you can have multiple partitions and store files on any partition.
 
2. Some software and linux scripts, etc. specifically test for a Removable USB device. If you use a USB HDD then the software will not work. This includes Windows 8.1 and early Win10 versions which would not boot from a 'flat-file' installation on a Removable type of USB drive (but WindowsToGo will boot from a VHD on aremovable USB drive). Other examples are AVg Rescue, Avira, Geek Squad, Avast, Norton Bootable Recovery Tool, Windows Boot Genius, SmartKey Windows password Recovery ISO, and some WinPE ISOs.
 
3. Standard Microsoft Windows Setup ISOs (WinPE) run a 'wpeinit.exe' program. This program includes a function to look for all Removable drives (CD\DVD, USB CD\DVD, Removable-type USB drives, etc.) and look for \AutoUnattend.XML and \Unattend.XML files on these volumes.
 
The XML file can contain settings and commands which are automatically used by Windows Setup.
 
This useful and powerful feature is used by E2B when booting directly from a Windows Install ISO as follows:
1. E2B writes an \AutoUnattend.XML file to the E2B USB drive.
2. E2B boots to Windows Setup directly from the ISO.
3. Setup loads the \AutoUnattend.XML file from any Removable Media it can find.
4. The XML file contains a command to load the ISO file as a virtual DVD (e.g. drive letter Y:) using ImDisk.
5. Setup searches all drive letters to find a \Sources\Install.wim file (if not, it asks you to install the 'missing CD\DVD device driver' because it cannot find the source files needed to copy to the target drive).
6. Setup extracts Windows from the Install.wim file and copies the files to the target drive.
 
So if the E2B USB drive is of the Removable type, we have no problem.
However, if your E2B USB drive is of the 'Fixed' type, the XML file will not be found by Windows Setup - the ISO file will not be loaded as a virtual DVD drive - you will get a 'missing CD\DVD driver device driver' message:
 
 

E2B WinHelper Flash drive

One way of avoiding this is to also connect an E2B 'WinHelper' USB Flash drive.

This must be a Removable-type of USB Flash drive which contains a few 'WinHelper' files (see here for more details). E2B will also write the XML files to this Removable 'WinHelper' flash drive when you boot from a Windows Install ISO - thus the XML file will be found by Windows Setup and the ISO file will be mounted as a virtual drive.

Tip: Use a USB hard disk enclosure such as the Inateck FE2007 which has 3 USB ports, and simply connect a small Removable WinHelper flash drive to one of the 3 ports. Then you will always have the WinHelper drive connected.

If you do not want to use a WinHelper flash drive with your 'fixed-disk' E2B drive, you will need to convert the Windows Install ISO to a .imgPTN file.

Note E2B uses this XML file trick when booting some WinPE and other Windows-based ISOs too. Which is why the 'list of tested Payloads' page may say that some ISOs can only be successfully booted from Removable USB drives (unless you convert them to .imgPTN files).