Network Installation of SuSE Linux via PXE Boot



You want to install SuSE Linux Enterprise Server 8 or SuSE Linux version 8.1/8.2 on a machine bootable through PXE on the network.


The Preboot Execution Environment (in short PXE) is a protocol that enables a computer to be booted on the network. PXE is saved in ROM's newest network cards and, depending on the boot sequence configured in the computer's BIOS, loaded and executed after turning on the computer. After the start, a boot menu containing the different boot options is displayed.

Some technical background information as well as PXE's complete specifications are available at: ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf

Prerequisites for PXE are:

  • a DHCP server for the automatic allocation of IP addresses to PXE clients

  • a nfs or ftp server for providing the installation source (installation repository)

  • a tftp server for providing the kernel boot images needed to start the PXE client.

Although these three server services can be configured on different machines, for the purposes of this example we assume that they are located on a single machine. In addition, this article only refers to the provision of the installation repository through NFS and does not describe the configuration of an ftp server as the installation source. The article deals only with the settings required in addition to the existing DHCP server configuration. The configuration of the "installation server" described in these lines applies to a SuSE Linux Enterprise Server 8 standard installation. However, they can also be implemented with SuSE Linux version 8.1 and higher (with the corresponding adaptions).


DHCP Server Configuration

Configure your DHCP server according to your network's requirements. After making sure that the automatic address allocation for the clients works properly and reliably, edit the file /etc/dhcpd.conf and append the following lines:

group {
  # PXE related stuff ...
  # "next-server" defines the tftp server which will serve the pxelinux image to the PXE clients.
  # "filename" specifies the pxelinux image on the tftp server which will be served to the PXE clients.
  # The configured tftp server on runs in a "change-root jail" to /srv/tftpboot
  filename "pxelinux.0";

  host Zert120 { hardware ethernet 00:10:dc:95:d7:b7; }
  • next-server (here specifies the IP address of the tftp server providing the boot loader pxelinux, the boot image to be booted, and initrd for the PXE clients.

  • filename defines the pxelinux boot loader image to be booted provided for the PXE clients.

  • host defines the network card's host name and hardware address of a PXE client for which the previous options must be valid. The hardware address (00:10:dc:95:d7:b7 in this case) and the host name selected for the client (Zert120 in this case) must be entered here. You can boot several clients from the tftp server by entering several hosts lines here.

Now restart the DHCP server by executing rcdhcpd restart.

The man page of dhcpd.conf provides you with detailed information on the described options. It can be accessed with man 5 dhcpd.conf.

Installation Repository Setup and NFS Server Configuration

  • To set up an installation repository for SuSE Linux Enterprise Server 8, proceed as described in the SDB article http://support.novell.com/techcenter/sdb/en/2003/03/rschmid_slesnfs.html.

  • To set up an installation repository for SuSE Linux 8.1 or 8.2, proceed as follows :

    • Copy the installation CDs in a directory of your choice (e.g. /usr/local/dist/SuSE82)

    • Change to that directory and execute the following command:

      perl -pi -e 's/InstPath:\t0[2|3|4|5|6|7]/InstPath:\t01/' common.pkd

After restarting the NFS server with rcnfsserver restart, the line:


in the file /etc/exports exports the installation repository (the directory /usr/local/dist/SLES8 in this case) for the network This entry must be adapted according to your network configuration and your installation repository directory.

The man page of exports provides you with detailed information on the options available for the NFS server. It can be accessed with man 5 exports.

tftp Server Configuration

  • If still unavailable, create the directories /srv/tftpboot and /srv/tftpboot/pxelinux.cfg

  • Change to the directory of your installation repository and copy the file linux initrd message memtest in the directory /srv/tftpboot by entering

    cp -a boot/loader/linux boot/loader/initrd boot/loader/message 
          boot/loader/memtest /srv/tftpboot
  • Install the package syslinux.

    • If SuSE Linux Enterprise Server 8 is installed on the installation server, download the package from: ftp.suse.com/pub/suse/i386/8.2/suse/i586/syslinux-1.62-375.i586.rpm and install it with:

      rpm -Uhv syslinux-1.62-375.i586.rpm
    • If SuSE Linux 8.1 or 8.2 is installed on the installation server, install the package directly from your installation CDs with YaST2.

  • Copy the file /usr/share/syslinux/pxelinux.0 in the directory /srv/tftpboot by entering

    cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot
  • Change to the directory of your installation repository and copy the file isolinux.cfg in /srv/tftpboot/pxelinux.cfg/default by entering

    cp -a boot/loader/isolinux.cfg 
  • Edit the file /srv/tftpboot/pxelinux.cfg/default and remove the lines beginning with:

    • gfxboot

    • readinfo

    • framebuffer

  • Insert the following entries in the append lines of the labels default failsafe and apic:

    • insmod=e100 By means of this entry, the kernel module for an Intel 100MBit/s network card is loaded on the PXE clients. This entry depends on the client's hardware and must be adapted accordingly. In the case of a Broadcom GigaBit network card, this entry will read insmod=bcm5700.

    • netdevice=eth0 This entry defines the client's network interface that must be used for the network installation. It is only necessary if the client is equipped with several network cards and must be adapted accordingly. In case of a single network card, this entry can be omitted.

    • install=nfs:// This entry defines the NFS server and the installation source for the client installation. It might be necessary to adapt it.

    • A /srv/tftpboot/pxelinux.cfg/default adapted for the network installation of SUSE Linux Enterprise Server 8 follows:

      default linux
      # default
      label linux
        kernel linux
        append initrd=initrd ramdisk_size=65536 insmod=e100 install=nfs://
      # failsafe
      label failsafe
        kernel linux
        append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off insmod=e100 install=nfs://
      # apic
      label apic
        kernel linux
        append initrd=initrd ramdisk_size=65536 apic insmod=e100 install=nfs://
      # manual
      label manual
        kernel linux
        append initrd=initrd ramdisk_size=65536 manual=1
      # rescue
      label rescue
        kernel linux
        append initrd=initrd ramdisk_size=65536 rescue=1
      # memory test
      label memtest
        kernel memtest
      # hard disk
      label harddisk
        kernel linux
        append SLX=0x202
      implicit        0
      display         message
      prompt          1
      timeout         100
  • Edit the file /etc/inetd.conf and remove the # sign in the line:

    # tftp          dgram   udp     wait    root      /usr/sbin/in.tftpd  in.tftpd -s /tftpboot
  • Change the line as follows:

    tftp          dgram   udp     wait    root      /usr/sbin/in.tftpd  in.tftpd -s /srv/tftpboot -r blksize

    and restart inetd by executing rcinetd restart.

When you now boot a PXE client on the network, it receives an IP address from the DHCP server. Then the client requests a PXE boot loader (pxelinux.0) that will be executed on the client. The boot loader analyzes the client IP address and converts it to HEX. Then it searches in the server (directory /srv/tftpboot/pxelinux.cfg) for a configuration file with the same name as the detected HEX value. In case it does not find any, a figure will be subtracted from this value and the search will be repeated. If it does not find any suitable configuration file, the configuration file default is eventually used and read. In the example above, the installation menu of SuSE Linux Enterprise Servers 8 is displayed in text mode for all PXE clients. This mechanism enables various clients to create different boot configurations. For additional information refer to the package syslinux at /usr/share/doc/packages/syslinux/pxelinux.doc and /usr/share/doc/packages/syslinux/syslinux.docAfter having selected a menu entry, you can proceed with the installation as described in the manual.

NFS Quelle far SLES 8 Installation


The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.

© Micro Focus