USB Boot Overview (Standard 7 SP1)

7/8/2014

USB Boot is an Embedded Enabling Feature included with Windows Embedded Standard 7 that allows you to create images that can be stored and started from USB mass-storage devices. Although there are several hard disk based USB mass-storage devices available, the primary reason to use this feature is to enable booting from flash media. The following are several advantages to doing this:

  • Reduced BOM costs
    Although hard disk drives (HDDs) are priced lower per gigabyte, there is still a cap on the lowest price point for HDDs. Solid-state flash drives are also becoming popular. However, they are targeted more for performance-oriented systems because the price per gigabyte is significantly higher than their USB flash drive (UFD) counterparts.
  • Small form factor
    UFDs bring the advantage of size and power. This means you can build devices that have smaller form factors; the storage does not require the majority of the space in a device. Power requirements for a UFD are also significantly less than HDDs because of a lack of moving parts.
  • Portability
    The smaller form factor also increases portability; USB connectivity makes it easy to replace the hardware if a failure occurs.
  • Better tolerance of shock, dust, and temperature
    Because UFDs lack moving parts and have reduced complexity, most UFDs are better able to handle shocks, dust, and temperature variations compared to HDDs.

USB Boot Considerations

Even with all of its advantages, USB Boot is not the right solution for all devices. There are several issues that you should consider to determine whether using USB Boot is the best option for your devices. The following sections explain some of the differences between the tools, processes, and functionality of devices booting from USB media versus devices booting from traditional storage media (serial ATA, parallel ATA, and IDE-based storage devices.)

Write Filters

Although USB Boot can work on its own, there are several advantages in using USB Boot with the File-Based and Enhanced write filters that come with Standard 7. Typical UFDs have poor write rates (approximately 10 to 20 MB/second for sequential writes), while both sequential and random reads are 2 to 3 times faster.

By using write filters you can take advantage of the UFD read characteristics without the penalty of slower write rates for your data, persisting only the information required for your applications.

Multiple Partitions

Many embedded devices store application data on a partition that is separate from the operating system partition. In addition, some features such as Enhanced Write Filter (EWF) and BitLocker also require separate partitions to store data.

Setting up multiple partitions on a UFD is not always easy, however, and a successful configuration depends on the specific key being used. This is because of the way a UFD reports its media type to Windows. Most devices report their media type as "Removable". If this is the case, Windows will only mount the first available partition on a disk. In this case, you will be unable to create and use multiple partitions on a disk using Windows. If the UFD reports its media type as "Fixed", then the process to create multiple partitions is the same as any hard-disk drive.

BitLocker

The challenge of enabling BitLocker on a USB Boot image is that it requires a second partition as the system partition that stores the Boot Configuration Data. See the Multiple Partitions section for more information about how to support Multiple Partitions on a UFD.

Disk Signatures

Disk signatures are used by the USB Boot drivers to determine the boot device and mark it as "Fixed" in order for the system to boot. If a system contains multiple devices with the same disk signature, this can confuse the boot process resulting in a Stop error with code 0x7B (INACESSIBLE_BOOT_DEVICE).

Before you use a disk, you should clean it and format it by using Diskpart.exe, or the tools provided by Standard 7, in order to generate a unique disk signature. This ensures that the disk signatures for every device used in the system are unique.

To Check the Disk Signature of a Disk

  1. Open a Command Prompt, then type diskpart

  2. Type list disk

  3. Type select disk[=n]

  4. Type detail disk, then look at the Disk ID field for the disk signature.

To Change the Disk Signature

  1. Type diskpart

  2. Type list disk to list obtain summary information about each disk.

  3. Type select disk[=n] to select the UFD that needs a new signature.

  4. Type uniqueid disk id=xxxxxxxx to set the ID to xxxxxxxx.

For more information see A Description of the Diskpart Command-Line Utility.

BIOS Support

Different BIOS implementations can support booting from USB devices in the following ways:

  • The BIOS might have a generic "Boot from USB disk" option that boots from any USB disk detected that includes an active partition.
  • The BIOS might only let you select a specific USB disk to boot from.
  • The BIOS might let you configure which port to boot from.

Make sure that the system has the capabilities that you need for your scenarios. For example, if your device supports end-users connecting their own USB devices to the system, then you probably want the system to boot from the disk that holds your image, and not a disk that the end-user has connected. Another example is that if your servicing scenario involves swapping the UFD, make sure that the operator does not have to reconfigure the BIOS to boot from the replacement UFD.

Paging, Crash Dumps, and Hibernate

Because of technical limitations, page files, crash dumps, and hibernate files cannot be stored on a USB device. This means that features such as Hibernate Once/Resume Many (HORM) cannot be used with USB Boot at this time.

Disk Defragmentation

Disk defragmentation was a necessary function for HDDs to improve performance due to the poor random read rates. UFDs have significantly greater random read performance. Therefore, users do not need to schedule disk defragmentation on a UFD.

Additionally, disk defragmentation can sometimes do more harm than good because of the write amplification that can be generated from multiple random writes on a UFD.

Superfetch, ReadyBoost, Boot and Application Pre-fetching

Because of improved random read performance, these features do not generate greater system performance if you enable them. However, some UFDs with poor random write and flushing performance can benefit. You should test your system with these features enabled and disabled to see whether any performance gains can be achieved for your user scenarios.

Other References

For more information, see the Support and Q&A for Solid-State Drives article on the Engineering Windows 7 blog on MSDN.

Note

While targeted for Solid State Drives (SSDs), much of this information can also be applied to UFDs.

See Also

Other Resources

Bootable Windows USB Stack