How to Configure PXE Server to install SuSE Linux Enterprise Server 11

In this post, we will discuss how do we configure the PXE server to install SuSE Linux Enterprise server OS into Clients. A similar post on CentOS/RHEL 7 can be found on the following link:

Breaking down the task to configure PXE Server, Here is the list:

  1. DHCP server ( To provide IP address to client )
  2. Apache2 Server configuration ( To transfer the DVD image to Client for OS installation)
  3. TFTP server configuration ( To Transfer the PXE kernel and other supporting files to Client System )

Check the version of SUSE Linux using the following command.

# cat /etc/SuSE-release
find SuSE version

Let us configure DHCP Server first. For that we need to install the dhcp-server package into server. I am using Zypper to install dhcp server pakage. Or else you could run #yast dhcp-server to install and configure dhcp server.

# zypper in dhcp-server
install the dhcp-server package

Now configure dhcp server. Edit the /etc/dhcpd.conf and update the following entries. (Move original /etc/dhcpd.conf file to some other name and create new dhcpd.conf with the following entries). Here IP range is from 192.168.1.10 to 192.168.1.20

default-lease-time 14400;
ddns-update-style none;
subnet 192.168.1.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.1.10 192.168.1.20;
  default-lease-time 14400;
  max-lease-time 172800;
  next-server 192.168.1.3;
  filename "pxelinux.0";
}
configure dhcp server

Update the /etc/sysconfig/dhcpd file with the following entries.

DHCPD_INTERFACE="eth0"
DHCPD_INTERFACE=eth0

Restart the dhcpd service and enable it on start-up using the following command.

# rcdhcpd restart
# chkconfig --level 35 dhcpd on
Restart the dhcpd service

Step1 is finished. Now let’s configure http to share the DVD image. Install the apache2 package using the following command.

# zypper in apache2
install apache2

Mount the SuSE Linux DVD into /srv/www/suse-os/dvd directory.

# mkdir -p /srv/www/suse-os/dvd
# mount /dev/sr0 /srv/www/suse-os/dvd
Mount SuSE Linux DVD

DVD is mounted, make the mount point persistent across reboot. Add the following entry in /etc/fstab:

/dev/sr0             /srv/www/suse-os/dvd       iso9660 defaults        0 0

I am going to configure a virtual host in apache to provide the DVD image. Create a file named suse-os.conf under /etc/apache2/vhosts.d/ and add the following lines into suse-os.conf file.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName pxe-suse.vinizlinux.com
    DocumentRoot /srv/www/suse-os
    <Directory "/srv/www/suse-os">
       Options Indexes FollowSymLinks
       AllowOverride None
       Order allow,deny
       Allow from all
    </Directory>

</VirtualHost>
configure virtual host

Start the apache using:

# rcapache2 start
start apache

And enable the apache at startup using chkconfig on and then check the apache in a web browser.

# chkconfig --level 35 apache2
enable apache at startup

Now the final part let us work on tftp part. For configuring tftp we need to install the tftp package also we need the syslinux package which contains the pxelinux kernel to boot the client from the PXE server. Run the following command to install tftp and syslinux package.

# zypper in tftp syslinux
install tftp and syslinux package

Edit the tftp configuration file /etc/xinetd.d/tftp and change the following line to “no”.

disable                 = no
edit /etc/xinetd.d/tftp

create the tftpboot directory under / and create the pxelinux.cfg directory under /tftpboot.

create directory /tftpboot/pxelinux.cfg

Now copy the pxelinux.0 file to /tftpboot.

# cp /usr/share/syslinux/pxelinux.0 /tftpboot/

We need to copy some more supporting files for PXE boot for that we need to mount the SuSE OS DVD.

# mkdir -p /srv/www/suse-os/dvd
# mount  /dev/sr0 /srv/www/suse-os/dvd

This same mount point can be used in Apache for giving the OS image to PXE clients. cd to /srv/www/suse-os/dvd/boot/x86_64/loader/ directory where we have the kernel, initrd, boot tests etc.

# cd /srv/www/suse-os/dvd/boot/x86_64/loader/
# cp linux initrd bootlogo memtest message biostest /tftpboot/

Copy the isolinux.cfg file to /tftpboot/pxelinux.cfg/ as default:

# cp isolinux.cfg /tftpboot/pxelinux.cfg/default
copy isolinux.cfg

Now edit the default file and provide the installation source and method of installation. here I am using ssh based SuSE installation. You could use vnc or ssh to do installation. Entries in the default file is shown below.

Entries in the default file

Now restart the xinetd services using the following command. and enable it on startup.

# rcxinetd start
# chkconfig --level 35 xinetd on

This installation is not fully automatic we need to give some inputs to complete the installation. For the automated installation we need to configure autoyast. Now, let’s boot the client and check whether it is able to boot or not. Yes !! Yes!! it’s able to boot from PXE Server.

bootmenu

Now type linux on the prompt it will start installation. After some time you will see the following screen to start the installation. You need to connect this client from anywhere using ssh to provide inputs for finishing the installation.

Here we are using ssh -X, and X is for X11/X.org forwarding. Let us connect the client and check the installation.

connect client with ssh

Now run yast on prompt it will open a GUI interface to start the installation. Follow the on-screen options and finish the installation.

yast GUI install