Troubleshooting Windows Embedded Standard boot problems

**Updated 3/26/09 with preface

[The following article is authored by one of the Windows Embedded MVPs (Most Valuable Professionals). Our MVPs have a heavy background in Embedded systems and are a great repository of information on Windows Embedded products. We’re providing this space on our team blog as a service to our readers by allowing MVPs to share some of their knowledge with the rest of the community.]  

Windows Embedded Standard does not normally require too much troubleshooting, because the boot process is exactly the same as in XP Professional. But, according to Murphy’s Law, something will go wrong, no matter how the small the chance is. This post will try to give an overview of the most common reasons for failure and the ways to resolve them.

Disk Preparation

I am starting with disk preparation because, from what I have seen, this is the most common reason that a system does not boot. The most important things to remember here are that:

  • the booting partition needs be marked as active
  • the master boot record should be the correct one for the file system on the disk

If either of these things are not set, will get an error message from the BIOS such as:

No system disk or operating system

This can easily be resolved by following the steps I have laid out in a previous post. You can use diskpart to activate and format the partition in the desired way. Formatting the disk as NTFS normally writes the correct MBR, but you can also use other utilities such as bootprep to prepare the disk for booting to otehr file systems (like FAT). In addition, there also some easy-to-use freeware utilities on the web that help fix boot record problems.

ARC path configuration

Another common issue occurs when the ARC path in the boot.ini is not in sync with the real disk layout. This is normally set in the configuration of the Target Device settings for the image:

clip_image002

It is very important to set the right options, especially selecting the correct boot drive, Windows folder and ARC path.
Quite often the fact that disks in the ARC path are enumerated starting at 0 and partitions are enumerated starting at 1  causes some confusion. To correct this the best way is to start diskpart e.g. on WinPE on the target device using the detail disk as well as the detail partition commands to get an overview on the real layout of the media.
Sometimes disks prepared by OEMs have a hidden maintenance partition that requires a change in the partition entry in the ARC path (such as setting partition = 2).

The Windows folder path should point the exact path you expect it to be deployed to on the actual partition. It is normally c:\windows but could be e.g. c:\WES\Windows in a dual boot scenario.
If the settings above are not correct the system will react with one of the following error messages:

  • NTLDR is missing
  • Windows\Sytem32\Hal.dll is missing
  • No system disk or operating system

Unfortunately, there is no simple fix that you can configure on the system at this point and the Windows Embedded Standard image must be rebuilt to get all the correct settings.

Fighting Windows Product Activation

Another issue you might experience, which not really is a boot issue, is the wrong boot partition size. If this is not set correctly during build and one tries to deploy a Windows Embedded Standard image, for example to a 8GB flash card instead of the configured 1GB card, a message window generated by Windows Product Activation will pop up telling you that this image is not configured for this device and FBA will stop immediately. Closing the window reboots the system. This clearly shows that WPA is included in Windows Embedded Standard although no online activation is required.

The solution here is to set the correct size of the boot partition in the configurable settings in Target Device and rebuild the image.

Handling file compression

Very often CF cards use NTFS file compression to save space. In this scenario it is important not to compress the files required for booting the system (ntldr, boot.ini, ntdetect.com), because the boot loader is not able to read compressed files. This normally leads to messages such as:

NTLDR is missing

USB boot

When booting from USB, preparethe USB flash device either using the UFDPrep utility running on XP:

UFDPrep.exe F: (where F is the drive letter resembling the USB flash device)

or format the UFD under VISTA with diskpart. Vista is able to create bootable UFDs (UFDprep does not when running it from a Vista dev machine).

- Alexander

Alexander Wechsler

Wechsler Consulting

www.wechsler-consulting.de

Technorati Tags: XPe,embedded