Setting Up A PXE Install Server For Multiple Linux Distributions On Debian Lenny
Setting Up A PXE Install Server For Multiple Linux Distributions On Debian LennyVersion 1.0 This tutorial shows how to set up a PXE (short for preboot execution environment) install server on Debian Lenny. A PXE install server allows your client computers to boot and install a Linux distribution over the network, without the need of burning Linux iso images onto a CD/DVD, boot floppy images, etc. This is handy if your client computers don't have CD or floppy drives, or if you want to set up multiple computers at the same time (e.g. in a large enterprise), or simply because you want to save the money for the CDs/DVDs. In this article I show how to configure a PXE server that allows you to boot multiple distributions (i386 and x86_64): Debian Lenny, Ubuntu 9.04, Fedora 10, CentOS 5.3, OpenSuSE 11.1, and Mandriva 2009.1. I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!
1 Preliminary NoteIt is important that you have a decent Internet connection because your client computers will fetch all needed packages from the repositories in the Internet (I tested this on a 30MBit connection which seems to be fast enough. ;-)). It is possible to store all packages on the PXE server as well so that you don't need an Internet connection (just the LAN connection to the PXE server), but then you need a lot of storage space on the PXE server (remember, it will serve multiple distributions), so I don't cover this here. And the most important thing is that your client computers support booting over the network. You should check each computer's BIOS for this option. On our system that should serve as the PXE server you should have already set up a basic Debian Lenny server system, for example as shown in the chapters 1 - -7 of this tutorial: http://www.howtoforge.com/perfect-server-debian-lenny-ispconfig2
2 Install All Necessary PackagesFirst we update our packages database by running aptitude update We need to install the packages netkit-inetd, tftpd-hpa, dhcp3-server, and lftp, so we run aptitude install netkit-inetd tftpd-hpa dhcp3-server lftp Afterwards run netstat -uap | grep tftp and check if you see something like this: server1:~# netstat -uap | grep tftp If you don't see the tftp line, please open /etc/inetd.conf and make sure you find the following in it: vi /etc/inetd.conf
Then restart inetd: /etc/init.d/openbsd-inetd restart Now netstat -uap | grep tftp should show tftp.
3 Configure The DHCP ServerWe need a DHCP server in our local network. If there's no DHCP server in your local network, just configure and use the one on your future PXE server. Simply edit /etc/dhcp3/dhcpd.conf: cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig vi /etc/dhcp3/dhcpd.conf
This will dynamically assign IP addresses from the range 192.168.0.10 to 192.168.0.49 to your client computers; the gateway is 192.168.0.1. Of course, you must adjust this configuration to your own environment! It is important that you have the line filename "pxelinux.0"; in your configuration! Then restart your DHCP server: /etc/init.d/dhcp3-server restart If you already have a DHCP server in your network, you must modify its configuration. Let's assume you have something like
in the configuration. You must add filename "pxelinux.0"; to it (where 192.168.0.100 is the IP address of our Debian Lenny PXE server) so that it looks like this:
Then restart your DHCP server.
4 Set Up Debian Lenny Netboot (i386)Now we are ready to set up the netboot for our first distribution, Debian Lenny (i386). The necessary files for the netboot can be found on http://ftp.de.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/. We download the files now and copy them to the /var/lib/tftpboot directory. This is the directory from where our PXE server will serve the installation images: cd /tmp (You can download the files from any other Debian mirror as well. Use one that is close to you.) That's it already. Now have a look at the file /var/lib/tftpboot/pxelinux.cfg/default: cat /var/lib/tftpboot/pxelinux.cfg/default
Debian uses included files in this file, so there's not much to learn from here (unless you take a look at the included files). All paths in this file are relative to the /var/lib/tftpboot directory, so debian-installer/i386/boot-screens/menu.cfg translates to /var/lib/tftpboot/debian-installer/i386/boot-screens/menu.cfg. As we add more distributions and architectures (i386 <-> x86_64) to our PXE install server, we will modify the /var/lib/tftpboot/pxelinux.cfg/default file radically. The output of ls -la /var/lib/tftpboot should look like this now: server1:/tmp# ls -la /var/lib/tftpboot When a client computer boots up over the network, it will look for the file /var/lib/tftpboot/pxelinux.cfg/default and load it.
5 Our First Test(Please make sure that the computers that you don't want to reinstall have the network boot option disabled in their BIOS settings because otherwise it is possible that you or someone else accidentally installs Debian Lenny over the existing operating system!) Now you can boot up your first client computer. Make sure you specified in its BIOS settings that it should use the network as its first boot device. If everything goes well, you should see the usual Debian Lenny installation screen: Don't forget to change the order of the boot devices after the successful installation (e.g. disable booting over the network and make the HDD the first boot device) because otherwise you will start another installation!
|




Recent comments
14 hours 38 min ago
21 hours 19 min ago
1 day 1 hour ago
1 day 2 hours ago
1 day 11 hours ago
1 day 20 hours ago
1 day 21 hours ago
2 days 1 hour ago
2 days 5 hours ago
2 days 5 hours ago