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 bootkey.zip?
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 (yuknd_v9.53.2.3.zip)
USB KEY DIRECTORY STRUCTURE
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.
DRIVE:
├───b57
├───E1000
├───E100B
└───GHOST
Extracting yuknd_v9.53.2.3.zip 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 yuknd_v9.53.2.3.zip 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.
DRIVE:
├───b57
├───E1000
├───E100B
├───GHOST
└───yuknd
CONFIG.SYS
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===
[menu]
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
[CDROM]
[Extcdrom]
device=USBASPI.SYS /v /w /e
[Broadcom]
DEVICE=\B57\protman.dos /I:\B57
DEVICE=\B57\dis_pkt.dos
DEVICE=\B57\B57.dos
[Intelpro]
DEVICE=\E100B\protman.dos /I:\E100B
DEVICE=\E100B\dis_pkt.dos
DEVICE=\E100B\E100B.dos
[e1000]
DEVICE=\E1000\protman.dos /I:\E1000
DEVICE=\E1000\dis_pkt.dos
DEVICE=\E1000\e1000.dos
[yuknd]
DEVICE=\yuknd\protman.dos /I:\yuknd
DEVICE=\yuknd\dis_pkt.dos
DEVICE=\yuknd\yuknd.dos
[COMMON]
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
LASTDRIVE = Z
===end config.sys===
AUTOEXEC.BAT
In autoexec.bat we also add some handlers for the new menu item;
===begin autoexec.bat===
@echo off
SET TZ=GHO-10:00
MOUSE.COM
CLS
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 FAILED
:Intelpro
\E100B\netbind.com
goto GHOST
:Broadcom
\B57\netbind.com
goto GHOST
:e1000
\E1000\netbind.com
goto GHOST
:yuknd
\yuknd\netbind.com
goto GHOST
:GHOST
cd \ghost
echo Loading...
GHOST.EXE
goto END
:FAILED
echo Unknown boot menu selection
goto END
: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.










Hi
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.
@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
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.
cheers
-JFEKendall
@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.
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.
@Onet Alexandru
The Optiplex 755 desktop runs;
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
[1] http://www.dell.com/content/products/productdetails.aspx/optix_755?c=us&l=en&s=bsd&cs=04
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
i got it, the protocol.ini file was missing a few lines.
now it`s ok.
best regards
Could you please show how to make it working without DHCP.
i have tried to change protocol.ini – no luck.
Thank you
@ Boris
To make the machines statically mapped for IP’s create a populated A:\GHOST\WATTCP.CFG file. An example Wattcp.cfg file:
IP=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
see: http://service1.symantec.com/SUPPORT/on-technology.nsf/docid/2002051609295125
Thank you very much! I’ll give it a try.
boris
It works fine! Thank you very much!
boris
Onet
Can you list what you changed the protocal.ini file to get it to work?
Thanks
I took this bootkey.zip. 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.
I figured out what I did wrong. I assumed the bootkey.zip had the boot files on it. I successfully ghosted the GX745. now i have to look into adding the 755 like the previous person.
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:
[protman]
drivername=PROTMAN$
[pktdrv]
drivername=PKTDRV$
bindings=nic
intvec=0×60
chainvec=0×66
[nic]
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.
>>
I figured out what I did wrong. I assumed the bootkey.zip had the boot files on it.
>>
@Dan
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:
>>
@Dan
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
Hi,
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..
@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 http://www.sharkyforums.com/archive/index.php/t-267984.html
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
@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.
[COMMON]
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.
I need a bootable USB key that is able to connect a network share.
Thanks in Advance.
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.
; MAXRECEIVES=1
; MAXTRANSMITS=1
; 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====
thank you. I will try this when I get back to work monday.
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==
[protman]
drivername=PROTMAN$
[pktdrv]
drivername=PKTDRV$
bindings=nic
intvec=0×60
chainvec=0×66
[nic]
drivername = yuknd$
; FIX (see readme)
FIX = 2
; (optional) Connection Type
; CONTYPE = AUTO
; (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
; MAXRECEIVES = 1
; (optional) Number of Transmit Buffers
; MAXTRANSMITS = 1
; (optional) Designated port
; HWPORT = L
==end protocol.ini==
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
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?
@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
Thanks for the fast response.
I’ll check that out.
Boomeraus
That’s working thanks VP.
Wondering if someone can post a link to a file hosted on something other than mediafire? Alternately you could email me?
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!
@MSpeller
Available for the next 90 days or 10 downloads via
http://rapidshare.com/files/324599372/BootKey.zip.html
MD5: B30D622CAC0BC3E051E38A49F3A4EDAA
cheers
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.
@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)
http://extranet.marvell.com/drivers/driverDisplay.do?driverId=113
2.) Extract yuknd_v9.55.1.3.zip 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.
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.
SysPrep is useful. If you are not using Sysprep you would want to be using a tool such as NewSID to solve your SID uniqueness issues.
I found the problem in the protocol.ini.
This is my config for that and it is now working.
[protman]
drivername=PROTMAN$
[pktdrv]
drivername=PKTDRV$
bindings=nic
intvec=0×60
chainvec=0×66
[nic]
DriverName = yuknd$
BUSNUM=48
DEVNUM=0
HWPORT=L
Thanks again for a great boot script and driver setup. It’s saved my bacon on a few occasions now.
I couldn’t get a network bootable usb drive to work after reading all these posts, can someone help.
@JB what network card/computer are you creating the boot stick for? Am I correct in assuming that the computer is booting from the USB stick but the NDIS driver isn’t loading?
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.