ddrueding

Pxe Boot Server For Windows

Recommended Posts

Ok,

So I worked until 11:30 last night perfecting my pxe boot scenario. I have it down pat now and have moved beyond the normal ghost image they create for you and have made my own. But first, let me explain the process as I know it:

1.) The NIC starts the PXE boot and broadcasts for a DHCP address. A simple MS DHCP server gives my client an IP.

2.) The DHCP server also has 2 more entries in it. TFTP Server and TFTP Filename (This is the "Bootstrap", <512k file that is so hard to generate). Since I am running the TFTP server on the DHCP server, it makes it easy (no DHCP Proxy necessary). So now the NIC grabs these 2 values from the DHCP server and requests the "Bootstrap" file that you defined earlier.

3.) The NIC downloads the bootstrap file, which is a tiny OS that just tells it what the name of your floppy image (this is the 1.44 - 16Mb file) is and downloads it.

4.) From there, your floppy/boot image is anything you want it to be. At first I started with the generic ghost image disk, and that works well.

That's it. Done. Very easy.

However, the ghost floppy/boot image only supports ghostcast servers and personally I find that 2x the work if I have to visit the server and set it up and then visit the client and set it up. No, a network boot image is where I want to be, yet the ghost pxe image doesn't have any drive mapping functions (cmds.exe/net.exe) and the network drive mapping solution from ghost doesn't allow you to create that version as an image, only a floppy.

So, I used the handy dandy tools that come with 3com's boot assist version 7.0 and edit the image. The tool is horrible, doesn't support copying directories, and barely works. But it does, so enough complaining. So I added the right stuff from the network drive mapping floppy with the ghost image it created, and it was finished.

I can now turn on a new machine, change the nic to boot first, have it boot to the network, download the image, map a drive and run ghost so I can pull/push the images using windows networking instead of using the limited ghostcast solution.

Sweet. Except that I stopped using the ghost network mapping disk years ago since it barely works and there are 0 tools on that disk and since it uses pcdos, you will have trouble finding the tools for it. So I use barts network boot disk (http://www.nu2.nu/bootdisk/network/) instead. It is a GREAT modular solution, very easy once you get the hang of it, and it supports any nic, any network, domains as well as workgroup authentication, retrying of username/passwords, and even saving of common profiles. Good stuff.

The migration of the ghost image and barts disk is very easy. You just HAVE to use the system files from the ghost disk (msdos.sys, io.sys, command.com I believe) and all the rest is from barts boot disk. I found it handy to get the disk working the way I wanted it, and then move it over to the image. Most of the time I spent was modifying barts disk to remove unecessary features, trim down the chattyness, and remove some of the popup configuration dialogs.

Ok, so this is really long, and I should get to my point. My point is, You DON'T need a pxe server, just that one really hard to get bootstrap file. IMHO I think I could just send you the bootstrap file and that is everything you need. Just use pumpkin or any other tftp server and that is it.

If you can get by with the ghost cast server solution that the ghost image gives you then you are finished. If you want to modify the boot image, then you need a pxe image editor, which I got from the 3com boot services.

It really is a pretty simple and easy procedure. They make it sound so tough and charge a TON of money for a tftp server and a bootp server (which a dhcp server works just as well). They know that that little 20k bootstrap file is the hard part. :(

Chris

Share this post


Link to post
Share on other sites

Thanks for the summary, absolutely brilliant. I'd gotten about that far in understanding the process, but it's good to know I wasn't just BSing myself. What are the configuration options in the bootstrap file? Just the name of your "real" image file? Or does it also contain info on a specific NIC or network config?

Share this post


Link to post
Share on other sites

ghostcast clients require no setup; you set them to listen to the directives of the server. all they need to do is boot and they do what you want.

Share this post


Link to post
Share on other sites

David,

The file is a 5k binary file with many things in it. I can see error messages if it can't find the tftp file, and about not having local disk, etc. I also see the filename in there in plain text, so I am almost positive you could sector edit a new filename in there. I did not have to choose a nic type since PXE is a standard. All I chose was the boot file and it wrote the bootstrap file and named it itself.

Honold,

I would imagine that the ghostcast server would work well in a single image, many client environment.

I am in a many image, single client (at a time) environment and therefore it doesn't do what I want. I think it could be really slick if it just let use browse the images from the client and choose the one we want, and go.

Oh well, I will continue to choose via the "Disk from Image" option.

Chris

Share this post


Link to post
Share on other sites

it works fine in a many image single client environment; you issue specific boot images to specific mac addresses which are instructed to connect to specific servers (which serve the appropriate image)

Share this post


Link to post
Share on other sites

So I have to have a ghostcast server running for each and every image, right? I guess I don't see how to use the ghostcast method more efficiently...

If we build let say 10 different configurations of machines....

I go to the server and start a ghostcast server. I give it a short name since I have to remember and type that later on the client, and then I browse to where my image is stored and pick the one I want. I leave this running.

Then I go back to the client, boot via any number of ways with network support. Run ghost, choose multicast, type in the name of the instance I started earlier, and then say go.

OR,

boot via any number of ways with network support. Run ghost, choose multicast, and....wait?

Then go over to the server (already more work than mapping a drive!) and start the ghostcast server, type a name, pick an image, and then my client shows up? I can then choose to push to the client?

INSTEAD,

I boot from any number of ways with network support and launch ghost from the share, all automatically. I choose disk from image, and pick what image I want. Within 10 seconds I am in ghost, within 20 seconds I have a machine being ghosted.

1 step, no visiting 2 machines. Help me understand what other ways I can accomplish this...

Thanks in advance,

Chris

Share this post


Link to post
Share on other sites

This is similar to what I am envisioning.

I have 22 machines, all connected all the time via GbE w/PXE support. On the server is 22 distinct images, each dedicated to a single client. I anticipate having to re-image each machine on average once a week. I would love to automate this process, slaving each image to a MAC address. If the only work required was to tell the client to boot to LAN (the F11 key during boot in my case); that would be the ultimate solution.

Share this post


Link to post
Share on other sites

GHOST.EXE -z9 -ja=$GHOSTCAST_SESSION_NAME -jaddr=$GHOSTCAST_SERVER_IP -sure -rb

translation: start ghost, use max compression, connect to a specific session name on a server running at a specific ip, follow the server's direction and do not prompt for any action, and reboot when the process is complete. with a boot image like this, nothing needs to be done on the client. it simply boots off the network and works. you do need a separate ghostcast server running for each image, but if everything is being done one-to-one it would probably be more intelligent to mount off of a file share. i employ this method because i image clusters of machines with it.

if you want a menu, that can easily be done with the actual pxe bootstrap piece.

as for the way i handle automation, i have a utility for each os that will wipe out the master boot record. i script this to run and reboot the system, and the boot order is set to HDD first then LAN. it's unable to boot from the HDD, so it boots from the LAN and images, then boots into its new image (since it reboots upon completion).

Share this post


Link to post
Share on other sites

Can you see any issues running 22 simultaneous sessions of ghostcast? I really like your solution here (including the MBR delete, what app to you use for WinXP?). I have adequate hardware, just worried about stability.

Share this post


Link to post
Share on other sites

again as i said i would prefer skipping the casting altogether and using an image off of a file share if the images were one-to-one. as for the mbr erasing binary, i actually made it with some help from cas on this very forum. i can provide it for you for xp if you'd like.

Share this post


Link to post
Share on other sites

How would you reccomend setting up the command to pull the image using a share? Somewhere in the system it would have to be smart enough to associate the right image with the right MAC. If I made each image the same as the MAC (ie //ghostserver/images/000C040204B2.gho ) and referred to the MAC in the command line? I know I'm reaching...

Share this post


Link to post
Share on other sites

So the PXE server is smart enough to distribute different boot images to each MAC? None of these systems have a floppy or CD.

Share this post


Link to post
Share on other sites

For the record, Symantec Ghost Corporate Edition 8.0 does not ship with DABS, however it does ship with the file 3ComDABS.txt (this is a licence granting me rights to use DABS) :rolleyes:

This is ticking me off....

Share this post


Link to post
Share on other sites

ddrueding if you still need to create the bootstrap you can get a 3Com appz from here fXp://ftp.3com.com/pub/nic/3c90x/util430.exe unrar and look for the IMGEDIT folder you "just" have to select the boot image :)

Share this post


Link to post
Share on other sites
ddrueding if you still need to create the bootstrap you can get a 3Com appz from here fXp://ftp.3com.com/pub/nic/3c90x/util430.exe unrar and look for the IMGEDIT folder you "just" have to select the boot image :)

Ahh, yep, this is the exact same program that I have with my DABS software. At least it is available online....

Good find,

Chris

Share this post


Link to post
Share on other sites

My full copy of Ghost 8.0 Enterprise came with DABS. Doesn't look like it's changed any since v7.5. I installed it and it works great. The probably don't provide it with the eval download due to licensing issues.

Share this post


Link to post
Share on other sites

Well, the link here:

ftp://ftp.3com.com/pub/nic/3c90x/util430.exe

Gives the utility to create the .PXE file which is 5k

Norton Ghost creates the .SYS file for the PXE client which is 3MB

TFTPD theoretically provides a TFTP server and DHCP server that supports TFTP entries.

A BIOS update of my motherboard to 1.4 gives the GbE card PXE 2.0 support.

The DHCP server clearly works in windows as the "repair" option gives me an IP.

Yet for some reason the PXE client fails to pull an IP during it's boot process....frustrating.

Share this post


Link to post
Share on other sites
if it's not getting an ip the issue is with dhcp/pxe (before the .pxe file is even considered)

Yep. Which is annoying, considering that I was getting further than this with TFTPD in my earlier expiraments. I'll need to do more testing with less traffic on the network to see what's going on. I read somewhere that having a secondary DHCP server that is not authoritative for the zone but does provide the additional information relevant to PXE/TFTP is OK?

Share this post


Link to post
Share on other sites

Yes, I actually mean having DHCP servers. Unfortunatly, DHCP is running off my smoothwall, whose DHCP server won't support the options necissary for TFTP. I read somewhere that PXE clients will ignore DHCP servers that don't provide them with all the information necissary to boot.

Share this post


Link to post
Share on other sites

smoothwall should be using isc-dhcpd, which definitely supports pxe, but probably not through the gui. you should stop using that as your dhcp server. i don't see how it would "magically" get the pxe info from another dhcp server, presumably one without an active scope? it will broadcast for an address, take the first response (from the smoothwall), and get everything from there.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now