Build yourself a bootable Ghost USB key II

Back in the original post Build yourself a bootable Ghost USB key, I outlined how to build a USB Boot key using an existing skeleton file that contained an existing set of drivers.

This generated some interest in how to add extra drivers to this existing skeleton file;

@Agur 2008-Aug-09
Going forward, what tutorial can you point me to in order to add new NDIS drivers to the bootable USB key?

@Ron 2008-Aug-29
How would I add more NIC drivers to the existing
I have several different Dell & IBM computers.

For this example we’ll add a Toshiba Tecra A3 as I have one of these sitting under my desk 😉 The Tecra A3 has a Marvell Yukon 88E8036 PCI-E Fast Ethernet Controller so our first trick is to obtain the DOS NDIS driver via Marvell (

To start off let’s look at the directory structure of the boot key.
In the root directory we store the common driver sets (SCSI, CD, Mouse)
There is a GHOST directory which contains a copy of our Ghost.exe
The other folders (b57, E1000, E100B) are directories to hold the different network card specific files.


Extracting we can see that the NDIS drive is yuknd.dos, to make life easier we’ll create a folder yuknd to house the driver. We’ll now refer to this driver set as yuknd within all of the files and menus. All of the content from can then go into the /yuknd/ folder. This will include a copy of protocol.ini.

NOTE: You will also need to copy into this directory from one of the other network card folders a copy of NETBIND.COM, PROTMAN.EXE, protman.dos and dis_pkt.dos.


The config.sys file in the root directory of the thumbdrive contains our boot menu that allows us to choose which driver set we are using. We need to add our new card to the menu.

===begin config.sys===

menuitem=CDROM, Access to Internal CDROM, DVDROM
menuitem=Extcdrom, Access to USB CDROM, DVDROM (Sony, Pioneer)
menuitem=Broadcom, NIC EVO530 and DC7600,GX280 and 620, NC8000 - DHCP
menuitem=Intelpro, NIC EVO500,510 - DHCP
menuitem=e1000, NIC HP dc7700 - DHCP
menuitem=yuknd, NIC Toshiba Tecra A3 - DHCP
device=USBASPI.SYS /v /w /e
DEVICE=\B57\protman.dos /I:\B57
DEVICE=\E100B\protman.dos /I:\E100B
DEVICE=\E1000\protman.dos /I:\E1000
DEVICE=\yuknd\protman.dos /I:\yuknd

DEVICE = oakcdrom.sys /D:cd1
DEVICE = btdosm.sys
DEVICE = flashpt.sys
DEVICE = btcdrom.sys /D:cd2
DEVICE = aspi2dos.sys
DEVICE = aspi8dos.sys
DEVICE = aspi4dos.sys
DEVICE = aspi8u2.sys
DEVICE = inicd.sys /D:cd3

===end config.sys===

In autoexec.bat we also add some handlers for the new menu item;

===begin autoexec.bat===

@echo off
SET TZ=GHO-10:00
LH \MSCDEX.EXE /D:cd1 /D:cd2 /D:cd3
echo Loading...
if %config% == CDROM goto GHOST
if %config% == Extcdrom goto GHOST
if %config% == Intelpro goto Intelpro
if %config% == Broadcom goto Broadcom
if %config% == e1000 goto e1000
if %config% == yuknd goto yuknd
goto GHOST
goto GHOST
goto GHOST
goto GHOST

cd \ghost
echo Loading...
goto END
echo Unknown boot menu selection
goto END

===end autoexec.bat===

And you now have a additional network card option on your bootable Ghost USB key 🙂
PS: The Tecra A3 was a bad example in the long run as the boot from the USB key is not fully supported in the BIOS.

This entry was posted in geek, Ghost, soe. Bookmark the permalink.

44 Responses to Build yourself a bootable Ghost USB key II

  1. Zak says:


    i cannot get ghost to network boot off of my usb stick, it goes through the processes but then complains that
    DEVICE = aspi2dos.sys
    DEVICE = aspi8dos.sys
    DEVICE = aspi4dos.sys
    DEVICE = aspi8u2.sys
    have all errored.

    then the ghost boot and peer to peer options are greyed out?

    other than that all seems to be ok.

  2. @Zak

    1.) The ASPI drivers should fail if you are not running SCSI equipment. This is to allow for SCSI devices in the devices that I manage.

    2.) Regarding the network problem, I suspect that you may be using a card that is not supported by the drivers in this file . What network card are you using?

    cheers 🙂

  3. JFEKendall says:

    Hello and thank you very much for these tutorials. I have found them very helpful.

    Is there a way to get this to run in memory so I don’t have to use so many USB sticks? The methods you’ve described here work flawlessly for me; but only while the USB memory key is in the USB port.



  4. @JFEKendall

    We have found that we can remove the USB stick once we have connected with the Ghost server when we are imaging. This means we can move around a set of machines with only a single USB key when we are pushing out our images.

  5. hello

    nice guide.

    i have a dell optiplex 755 with intel gigabit controler (ndis: e1000) i folowed this guide but it doesnt load driver, in ghost only local options are permited. what could be the problem ? thankyou for your help.

  6. @Onet Alexandru

    The Optiplex 755 desktop runs;

    Network Interface – Intel® 82566DM Gigabit Ethernet LAN solution 10/100/10007 with Remote Wake Up, PXE support and Intel Active Management Technology support [1]

    If you get your hands on the latest e1000.dos for the Intel® 82566DM (v.13.4 2-Dec-2008) and use that to update the e1000.dos on the boot key you should be up and running in no time

    cheers 🙂


  7. still no luck, i have configured the boot key for 3 cards 3COM (EL90X.DOS) Broadcom (b57.dos) and Intel(e1000.dos)

    the first 2 work with no problems i connect to the gost cast server and i can download image, but the 755 with the intel e1000.dos driver does not work :(. latest bios latest dos driver, but no luck.
    thank you for your help, il will google some more maybe i will find someting.

    best regards

  8. i got it, the protocol.ini file was missing a few lines.
    now it`s ok.

    best regards

  9. Boris says:

    Could you please show how to make it working without DHCP.
    i have tried to change protocol.ini – no luck.

    Thank you

  10. @ Boris
    To make the machines statically mapped for IP’s create a populated A:\GHOST\WATTCP.CFG file. An example Wattcp.cfg file:



  11. Boris says:

    Thank you very much! I’ll give it a try.


  12. Boris says:

    It works fine! Thank you very much!


  13. Ghosty66 says:


    Can you list what you changed the protocal.ini file to get it to work?


  14. Dan says:

    I took this extrated it. added my ghost.exe to the ghost folder. copied the files over to the root of the usb drive. i try booting from it, and i get “invalid or damaged bootable partition”. know what i’m doing wrong? i’m trying it on an optiplex 745. I also want to know what changes were done in the protocol.inn for the 755 cause I will need to add that one too.

  15. Dan says:

    I figured out what I did wrong. I assumed the had the boot files on it. I successfully ghosted the GX745. now i have to look into adding the 755 like the previous person.

  16. Dan says:

    Alright. I got it all working. I tested the one I made with our pc’s which include the HP 6710B and NX7400 laptops and the Dell GX745 and 755. I think what the previous poster was talking about with reguards to adding stuff to the 755 protocol.ini file is this . . .

    If you get the Dell 755 driver off the site, and use the protocol.ini file that comes with it. The file is missing:




    like all the other protocol.ini files on the disk. So I added that stuff where it belongs. I got my 755 to work so I guess that works.

  17. >>
    I figured out what I did wrong. I assumed the had the boot files on it.

    This is outlined in the original post Build yourself a bootable Ghost USB key. This post gives the details on adding new cards to the existing USB device.

    If you get the Dell 755 driver off the site, and use the protocol.ini file that comes with it. The file is missing:

    this is interesting it suggests that the Dell 755 card is a modified NIC, or the driver from the DELL site is customised (I am assuming that we are dealing with an Intel Pro 1000 card due to the e1000.dos driver mentioned by @Onet Alexandru above). I don’t have an Optiplex 755 to give this a test.

    For our boot tools we tend to use the drivers from the Intel site to have a broader coverage of models.

    From the DELL support site it appears that the OptiPlex 755 can run either of the following cards;
    * Broadcom 5721C1 NetXtreme Gigabit Ethernet PCI-E
    * Intel 825xx Gigabit Platform LAN Network Device

    For the Intel 825xx I would still grab the Intel® 82566 Gigabit Ethernet PHY DOS driver (v14.0 1-APR-2009) and use the protocol.ini that ships with this driver ie. .\Intel14.0\PRO1000\DOS\*.*

    I have also updated the instructions to make it clear that protocol.ini is added along with the .dos file to make things a bit easier to follow.

    cheers 🙂

  18. djclover says:

    has anyone managed to add a mapped network drive onto this usb key?

    I am trying to add a network driver where all of my images are stored and ghost.exe is run off of the stick. I do not want to browse the network drive to get to the exe file there. would rather, start up ghost, go intot he the option for local, from image and then beable to select the image from the attached network drive..

  19. @djclover
    This USB key hasn’t been designed to use mapped network drives as we either have the image on a bootable USB hard drive, or have the image on the Ghost server.

    To allow for;
    net use [Drive]: \\Other_computer\drive_share_name

    The correct version of the NET command and supporting files would need to be added to the key OR you would need to update the USB key to a DOS bootdisk with network support.

    Some discussion on this exact topic is available from

  20. Joey says:

    I put everything in the way the directions ask. When
    I go to choose my drive which would be #6 on the list.
    Than when it loads it gets throght part of it but than

    Oak technology inc

    Device Name : CD1_ <<<<<It stops right there

  21. @Joey
    The Oak technology driver (oakcdrom.sys) is a ‘universal’ driver that mounts optical drive in DOS mode so you can ‘read’ from it.

    You will find that this is called from CONFIG.SYS; comment out the call to this file and see if your boot process proceeds past this point. ie.

    REM DEVICE = oakcdrom.sys /D:cd1

    Having identified that it is the oakcdrom.sys causing the problem we move off to solving the issue.

    The oakcdrom.sys driver was not designed for SATA drives, if you have a SATA drive you will most probably need to set the drive to ‘compatibility mode via your BIOS settings.

  22. VonEduard says:

    I need a bootable USB key that is able to connect a network share.

    Thanks in Advance.

  23. mkeller says:

    I tried adding a marvell yukon driver, and when it first loads protman.dos (copied from the Broadcom B57 folder, since yukon’s driver doesn’t come with protman.dos), I get a PRO0003e protocol.ini file open failure. I’ve read that this somehow means that it can’t find the protocol.ini file.

    • @mkeller
      The yuknd driver should ship with a PROTOCOL.INI (SAMPLE configuration file) in the zip file. The b57’s prtotocol.ini is probably not a good substitute. You can cut and paste from the following;

      ===start protocol.ini===
      DriverName = yuknd$
      ; When you have more than one adapter supported by the driver
      ; in your system you might want to specify which adapter should
      ; be used. By default the first found adapter will be used.
      ; There are two ways to specify a different adapter.
      ; Bus and device number of the adapter to be used
      ; BUSNUM=0
      ; DEVNUM=3
      ; Using CONTYPE you can force link speed and duplex mode.
      ; Using other values than AUTO (default) turns off auto-negotiation
      ; and is not recommended.
      ; Possible values are: AUTO, _100FD, _100HD, _10FD, _10HD
      ; CONTYPE =
      ; Check link mode – check which adapter has a link and use the
      ; first adapter with a link
      ; CHECKLINK=1
      ; Specify how many transmit and receive buffers the driver shall use.
      ; Possible values: 1..3, but the sum of receive and transmit buffers
      ; cannot be greater than 4.
      ; Using more buffers might improve the performance but the driver
      ; will consume more memory.
      ; On controllers with two ports, the driver will use the port that is
      ; selected (Port A or B) or it will use the port that has a link.
      ; On controllers with only one port, this parameter will be ignored and
      ; defaults to ‘A’.
      ; If the parameter CHECKLINK is selected at the same time, the parameter
      ; PORT is automatically reset to ‘L’.
      ; Possible values: A, B, L(default)
      ; HWPORT=A
      ====end protocol.ini====

  24. mkeller says:

    thank you. I will try this when I get back to work monday.

  25. mkeller says:

    I’m sorry, I need to update/clarify. The yukon driver did come with a sample protocol.ini, but it did not come with a protman.dos. I copied protman.dos from the B57 driver, and when protman.dos tries to load, I get the aforementioned error. Here is the protocol.ini that came with the yukon driver.

    ==start protocol.ini==



    drivername = yuknd$
    ; FIX (see readme)

    FIX = 2

    ; (optional) Connection Type


    ; (optional) Use First Link Found

    ; CHECKLINK = 0

    ; (optional) Adapter’s PCI Bus Number

    ; BUSNUM = 0

    ; (optional) Adapter’s PCI Device Number

    ; DEVNUM = 0

    ; (optional) Number of Receive Buffers


    ; (optional) Number of Transmit Buffers


    ; (optional) Designated port

    ; HWPORT = L

    ==end protocol.ini==

  26. mkeller says:

    after hours of trial and error, i have solved my problem, and now I’m sharing my findings: hopefully they will help someone else in the future.

    I made a syntax error in my config.sys

    when I added the line
    DEVICE=\yuknd\protman.dos /I: \yuknd

    that is not the same as
    DEVICE=\yuknd\protman.dos /I:\yuknd

    note the extra space. that was my whole problem. thanks for your help, and I hope my findings help someone else

  27. boomeraus says:

    Hi there,

    First off, thanks for this info it is a life saver as i accidentally wiped our only ghost stick so I now have the priviledge of reinstating it.

    I have it booting ok but I need to add drivers for the DC7900SFF.
    I have downloaded the exe from HP SP45564 but it’s not a dos driver by the looks as I can’t see any .dos files in there.
    Any idea where i can get an dos driver?

  28. @boomeraus the HP dc7900 uses an integrated Intel 82567LM Gigabit Network Connection. Rather than using the HP driver, go to Intel and grab a copy of the latest Intel 825xx MS DOS drivers (v14.5 9/3/2009) this will give you a copy of the e1000.dos files that will work with this machine.

    cheers 🙂

  29. boomeraus says:

    Thanks for the fast response.
    I’ll check that out.


  30. boomeraus says:

    That’s working thanks VP.

  31. MSpeller says:

    Wondering if someone can post a link to a file hosted on something other than mediafire? Alternately you could email me?

  32. MSpeller says:

    Err – badly worded post, apologies

    Wondering if someone could post a link here to the skeleton image on something other than mediafire?

    Thanks in advance!

  33. @MSpeller
    Available for the next 90 days or 10 downloads via
    MD5: B30D622CAC0BC3E051E38A49F3A4EDAA

    cheers 🙂

  34. John says:

    Hi there,

    I have been successfully using this script for my HP desktop PC’s and we recently purchased a Compaq 610s which has the Marvell Yukon 88E8042 Ethernet controller.
    I downloaded the Dos drivers from their site and setup a folder as shown above.
    However when i go to boot it errors 7906 unable to load protman$
    I can see in the loading scripts that the protocol manager has not been loaded.
    I copied over the files from another folder as described above.
    I also read the section where mkeller describes his problem but i think mine is a different issue.
    Any help appreciated.

  35. @John – not sure what is going on but try the following

    1.) grab a copy of the DOS NDIS driver from Marvell

    DOS NDIS2 Driver for Yukon Devices
    Microsoft NDIS2 DOS
    v9.55.1.3 (October 28, 2009)

    2.) Extract into \yuknd\

    3.) Then, from one of the other network card folders, copy the following files across to the \yuknd\ folder …
    NETBIND.COM, PROTMAN.EXE, protman.dos and dis_pkt.dos.

    this should work.

    • CMapp says:

      Thanks for all of the info, it works great. One question, has anyone had any SID issues? Is Sysprep Necessary? We are using Ghost Corporate 8.2, and I have followed all of your directions, without sysprep.

  36. John says:

    I found the problem in the protocol.ini.

    This is my config for that and it is now working.



    DriverName = yuknd$

    Thanks again for a great boot script and driver setup. It’s saved my bacon on a few occasions now.

  37. Pingback: GHOST boot disks for HP Mini 5102 « Visible Procrastinations

  38. JB says:

    I couldn’t get a network bootable usb drive to work after reading all these posts, can someone help.

  39. We are a group of volunteers and starting a new scheme in our community.
    Your site provided us with valuable info to work on.
    You’ve done an impressive job and our whole community will be thankful to you.

  40. Je vais dire que ce n’est guère incohérent !!!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s