Compartilhar via


Trouble Shooting USB boot

NOTE - this information has been superseded by the contents of the xpehelp.chm file shipped with Feature Pack 2007 RTM (\Program Files\Windows Embedded\help\xpehelp.chm). Please view the section on "Troubleshooting USB Boot" under "Development Process > Deploy a Run-Time Image >Booting from USB Devices")

-------------------------------------------------------------------------
Trouble Shooting USB boot (Feature Pack 2007)

BIOS Configuration

Configure your BIOS such that it will only attempt to boot from a USB storage device. After you get USB add other boot devices and configure the boot order. This is ideal for trouble shooting potential problems, since we can see error messages from the BIOS if USB Boot fails. If you have other boot devices, the error would be suppressed and the BIOS would move on to the next device. This makes it difficult to trouble shoot problems. 

BIOS Boot Order

  1. The BIOS finds the DOK (Disk on Key or USB storage device)
  2. Key is found, so BIOS reads the MBR (Master Boot Record) via INT13 calls
  3. The MBR executes NTLDR/NTDETECT
  4. We start booting Windows XP Embedded

First format your DOK using FORMATUFD.EXE, this will format and stamp the DOK with an MBR. To make sure that your DOK is bootable, you don’t have to put a runtime on the key. Copy USBNTD.COM from your repository to NTDETECT.COM on the root of your key. Put NTLDR there also. That’s all you need for the USB BOOT test. 

If you see “Disk Error” while attempting to boot from USB DOK, mostly like you don’t did not use FORMATUFD.EXE to format your USB DOK, so the MBR is missing. You need to format your USB DOK with this tool that is located in the utilities folder of the XPe suite.

If your BIOS finds the DOK (1), then it will use INT13 to find the MBR (2). The MBR will then execute NTLDR and NTDETECT. If everything works you will get a message from NTLDR saying “Failed to load boot.ini and find C:\WINDOWS”. This message verifies that the BIOS is attempting to boot from the DOK, and your BIOS and DOK are compatible. 

If you get a “BOOT FAILURE MESSAGE” then your BIOS is not executing NTLDR/NTDETECT (3). If this happens check your BIOS configuration, and Try different keys. We have seen some cases where a particular BIOS will not boot from a particular key. 

After you get past step 4, you can build your runtime with the USB Boot 2.0 components, drop it onto your key and boot the full image. If you get an Bugcheck 7B and have the USB Boot components (not likely based on our tests), then NTOSKRNL is not seeing the DOK (but the BIOS did). If this happens then your NTDETECT did not pass the DOK drive parameters to NTOSKRNL. 

Alas there is no immediately straightforward fix for a 7B bug check. The issue is figuring out which parameter or parameters NTDETECT did not pass to NTOSKRNL appropriately… and why not.

The questions we need to ask of you are:
What kind of system (make/model) are you running? What BIOS does the system have, and what version is the BIOS? And what kind of UFD (make/model) are you using?

Comments

  • Anonymous
    August 03, 2006
    I posted an article on troubleshooting USB Boot issues in the Feature Pack Tech Preview because people...
  • Anonymous
    September 01, 2006
    You say: If this happens then your NTDETECT did not pass the DOK drive parameters to NTOSKRNL.

    How do we fix this then?