PXE-Booting or Etherbooting usually is a quite complex thing that usually involves three servers (DHCP, TFTP and NFS) as well as some modifications to the kernel and the ramdisk of the linux system that has to be booted via network.
I slightly modified the initial ramdisk to boot DSL just using DHCP and TFTP and thus significantly reduce the amount of configuration needed...
Setting up a boot server now is done in less than five minutes!
The procedure usually works as follows:
- The PXE client sends a DHCP request and receives network parameters like gateway, client IP, IP of the TFTP-server and name of the next file to load. This next file usually is a bootloader like PXELINUX.
- Via TFTP the client receives the bootloader.
- This TFTP-aware bootloader now loads its configuration and finally kernel and initrd from the TFTP server.
- Now the kernel takes control: it loads network drivers that have to be present on the initrd, searches its NFS server, mounts its root filesystem (or a folder containing the KNOPPIX cloop-image) and continues booting.
Since I wanted to keep PXE booting simple I asked myself "Why not pack the KNOPPIX image into the initial ramdisk?". This would allow to boot DamnSmallLinux entirely from TFTP without needing to have an NFS server as well as to having to make massive modifications to the ramdisk for detecting network cards.
I tried it and found out that I just needed to do small changes to the "linuxrc" file for introducing a cheatcode "frominitrd" which makes DSL skip searching for a local KNOPPIX folder.
It works perfectly from CD and I also tried it via the net. It just works. You may download an ISO image containing the modded initrd from
http://cdprojekte.schlenker-webdesign.de:8080/Public/DSL-frominitrd/1.5-0.0/
There you also find the diff for the linuxrc.
Update:
Now you can download ZIP- or TAR.GZ-files that contain the bootloader and a complete boot configuration. You just have to adjust the settings of your DHCP and TFTP server. A boot server on a windows box is set up in less than five minutes using TFTPD32:
- Create a directory C:\tftpboot
- Unpack the contents of dsl-X.X-tftpboot.zip to the folder C:\tftpboot
- Download TFTPD32 from http://tftpd32.jounin.net/ and unpack the contents of the ZIP file to the folder C:\tftpboot.
- Run the TFTPD by double clicking "tftpd32".
- Adjust the inclluded DHCP server according to your network settings (just
take a look in the output of the command "ipconfig /all"). Do not forget to
set the boot file to "pxelinux.0". Save the configuration.
Screenshot of TFTPD32 configuration
Take a look at the README file to see how to configure Linux as a boot server.
Regards,
Mattias