DOS boot from USB CD-ROM drive


Doug Gordon

I'm now into one of my "favorite" things about using XPE: having to support
a new h/w platform due to the obsolesence rate of PC architectures :-(. This
question is really just related to the way we currently install our XPE
images and not to XPE itself, but I thought this group would have some
experience in this area.

Here is how we currently work with XPE on our "old" target system. This is
an industrial PC with a built-in IDE CD-ROM, and we use Norton Ghost 2003. I
have the Ghost software and disk image files on a bootable CD. The way a
bootable CD works is that it actually boots PC-DOS from a floppy-disk image
on the CD and somehow maps this image to the A: drive. On that floppy image,
I have oakcdrom.sys and mscdex.exe set up so that DOS finds the CD-ROM drive
and maps it to drive F:

So after booting from the CD-ROM on my target, I have an A:> prompt pointing
to the "floppy disk" image and also have an F: drive that maps to the rest
of the CD-ROM. I can run ghost.exe from the A: drive and then restore the
disk or partition images from the F: drive to the hard drive. Remove the
CD-ROM disc, reboot, and XPE comes up!

The new target does not have either a floppy or CD-ROM drive, but it does
have USB ports with boot capability. I can plug in a USB CD drive and boot
from my bootable CD-ROM disc. I get the A:> prompt as expected, but the
CD-ROM drive itself is not recognized within DOS and I can't get at the
image files. A search on the Internet got to a number of places with drivers
for this configuration, but they don't seem to work when using a bootable
CD. The problem is that, when I load a driver that recognizes the USB ports,
it does something that "unmaps" my A: pseudo-drive so that PC-DOS stops
working (says it can't find COMMAND.COM). So right now I'm stumped as to how
to proceed.

I know that this is a long, complicated problem description, but has anyone
else run into something like this and found a solution?

John Mueske

Hi Doug,

Here's a couple ideas:

1) Copy all your boot and Ghost files from previous floppy and CD to (1) USB
flash drive. Change all paths in your scripted files such as autoexec.bat
and config.sys to reflect the single drive letter. USB drives have more
room than your previous setup anyhow, and you don't need to mess with a
CD-ROM drive! USB boot must be supported and enabled in your target system

2) Using your desktop/laptop workstation, copy the raw embedded files and
folders to a USB hard drive enclosure. Unplug the USB cable, move the
internal drive to the target device, and boot. This is what we do.


Doug Gordon

Thanks for the suggestions. Your #1 is interesting, but what O/S boots off
of the USB flash drive, and how do you get the O/S there and make the drive
bootable? There must be something more involved than just copying the files,
right? The target can boot from a USB hard drive, floppy, or CD, so at least
that much is possible.

I have also considered #2, but our target is now an almost mil-spec hardened
unit and opening it up to remove & replace the internal flash drive might
not be very practical.

Doug Gordon

John Mueske

Hi Doug,

For #1 you could do several things, but the simplest would be to use DOS
just like your previous floppy solution. Another option is to use WindowsPE
(comes with XPe toolkit but I have not tried it).




I have faced this exact problem and wrestled with it literally ad-

My first solution was to use usbaspi.sys and usbcd1.sys. You can find
these online by google'ing usbaspi.sys.

Put this in the autoexec:


put this in config.sys


devicehigh=usbaspi.sys /v

devicehigh=USBCD1.sys /d:USBCDROM

Post here if you need more details on how to add and use the in the
DOS config.sys.

Depending on your BIOS and chipset - this method can have some
difficulties. Llike Ghost.exe crashes when you start it.
From here, we moved to Windows PE 2.0. This has solved some problems.
But we moved to using ImageX.exe instead of ghost which has presented
a new round of problems.

Our situation was further complicated by the fact the the USB CD ROM
is actually a USB flash drive made to look like a USB CR ROM.

Good luck and let us know how it works.


Doug Gordon

Problem solved! The missing piece was to use RAMFD.SYS to make a copy of the
floppy boot image as a RAM disk before loading the USB drivers in
config.sys. Specifically, my config.sys has these lines:

device=USBASPI2.SYS /r
device=USBCD1.SYS /d:CD1

I can now boot from the CD, and after the boot finishes my A: pseudo-drive
is still there and I also have access to the CD-ROM from another drive
letter assigned by MSCDEX.

And now I also realize how much I had forgotten about working with DOS!
We've come a long way since then (I think).

Doug G

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question