SDB:Network Installation of SuSE Linux via PXE Boot

Şuraya atla: kullan, ara


Situation

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.

Background

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 on newer 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).

Procedure

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.
  next-server 192.168.100.1;
  #
  # "filename" specifies the pxelinux image on the tftp server which will be served to the PXE clients.
  # The configured tftp server on 192.168.100.1 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 192.168.100.1) 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 9 and above run
    • yast2 instserver and create NFS/HTTP/FTP installation server.
  • 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:

/usr/local/dist/SLES8 192.168.100.0/255.255.255.0(ro,no_root_squash,sync)

in the file /etc/exports exports the installation repository (the directory /usr/local/dist/SLES8 in this case) for the network 192.168.100.0. 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


  • For SLES9, SUSE LINUX 10 and above tftpboot would be located here:

/tftpboot so copy files as shown below accordingly.

  • 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

.

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
     /srv/tftpboot/pxelinux.cfg/default

.

  • 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://192.168.100.1/usr/local/dist/SLES8 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://192.168.100.1/usr/local/dist/SLES8
 # failsafe
 label failsafe
   kernel linux
   append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off insmod=e100 install=nfs://192.168.100.1/usr/local/dist/SLES8
 # apic
 label apic
   kernel linux
   append initrd=initrd ramdisk_size=65536 apic insmod=e100 install=nfs://192.168.100.1/usr/local/dist/SLES8
 # 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.doc. After having selected a menu entry, you can proceed with the installation as described in the manual.

<keyword>installation,network,PXE,SLES,81,82,Enterprise,i386</keyword>