I used VMware for my setup. I put two virtual machines on a virtual LAN segment. Although I compiled gPXE from souce, you can configure, build and download your ROM image from the wonderful site Marty maintains. I setup the client VM to boot into the virtual disk, and that's where I copied the gPXE code.
Now, I'm not a 100% clear as to how the whole process works, but from my understanding, the BIOS (post POST :) ) scans the available devices for a bootable sector. The first sector of the virtual harddisk (the gPXE bootloader) meets the specifications, and the BIOS loads gPXE's bootloader into low mem, and makes a far call into it. gPXE does the usual - switch from real to protected, set up the stack for C apps, and tried to download the kernel. This would effectively make gPXE the first bootloader (this is the part I'm not very sure about).
Setting up the server VM was a little more involved. I had to setup a DHCP server (sudo apt-get install dhcp3-server, edit /etc/dhcpd/dhcpd.conf, and sudo /etc/init.d/dhcpd restart), a TFTP/HTTP and copied the ltsp image into the TFTP/HTTP server's root directory. Edit the configuration of the dhcp server to provide the boot filename.
Once you set it up, start up the client VM. You should see the following:
1. client VM boots up

2. contacts DHCP... gets IP address, TFTP/HTTP server location, boot filename

3. attempts to boot from the kernel

4. ta-daa! :)

I've been experimenting with trying to get this to work over a webserver. Anyway, more updates coming up.
No comments:
Post a Comment