Applies to SUSE Linux Enterprise Desktop 12 SP2

4 Preparing the Boot of the Target System

SUSE® Linux Enterprise Desktop can be installed in different ways. Apart from the usual media installation covered in Chapter 2, Installation with YaST, you can choose from various network-based approaches or even take a completely hands-off approach to the installation of SUSE Linux Enterprise Desktop.

Each method is introduced by means of two short checklists: one listing the prerequisites for this method and the other illustrating the basic procedure. More detail is then provided for all the techniques used in these installation scenarios.

Note
Note: Terminology

In the following sections, the system to hold your new SUSE Linux Enterprise Desktop installation is called target system or installation target. The term repository (previously called installation source) is used for all sources of installation data. This includes physical media, such as CD and DVD, and network servers distributing the installation data in your network.

This section covers the configuration tasks needed in complex boot scenarios. It contains ready-to-apply configuration examples for DHCP, PXE boot, TFTP, and Wake on LAN.

4.1 Setting Up a DHCP Server

There are two ways to set up a DHCP server. For SUSE Linux Enterprise Desktop, YaST provides a graphical interface to the process. Users can also manually edit the configuration files.

4.1.1 Setting Up a DHCP Server with YaST

To announce the TFTP server's location to the network clients and specify the boot image file the installation target should use, add two declarations to your DHCP server configuration.

  1. Log in as root to the machine hosting the DHCP server.

  2. Start YaST › Network Services › DHCP Server.

  3. Complete the setup wizard for basic DHCP server setup.

  4. Select Expert Settings and select Yes when warned about leaving the start-up dialog.

  5. In the Configured Declarations dialog, select the subnet in which the new system should be located and click Edit.

  6. In the Subnet Configuration dialog select Add to add a new option to the subnet's configuration.

  7. Select filename and enter pxelinux.0 as the value.

  8. Add another option (next-server) and set its value to the address of the TFTP server.

  9. Select OK and Finish to complete the DHCP server configuration.

To configure DHCP to provide a static IP address to a specific host, enter the Expert Settings of the DHCP server configuration module (Step 4) and add a new declaration of the host type. Add the options hardware and fixed-address to this host declaration and provide the appropriate values.

4.1.2 Setting Up a DHCP Server Manually

All the DHCP server needs to do, apart from providing automatic address allocation to your network clients, is to announce the IP address of the TFTP server and the file that needs to be pulled in by the installation routines on the target machine.

  1. Log in as root to the machine hosting the DHCP server.

  2. Append the following lines to a subnet configuration of your DHCP server's configuration file located under /etc/dhcpd.conf:

    subnet 192.168.1.0 netmask 255.255.255.0 {
      range dynamic-bootp 192.168.1.200 192.168.1.228;
      # PXE related settings
      #
      # "next-server" defines the TFTP server that will be used
      next-server ip_tftp_server;
      #
      # "filename" specifies the pxelinux image on the TFTP server
      # the server runs in chroot under /srv/tftpboot
      filename  "pxelinux.0";
    }

    Replace ip_of_the_tftp_server with the actual IP address of the TFTP server. For more information about the options available in dhcpd.conf, refer to the dhcpd.conf manual page.

  3. Restart the DHCP server by executing systemctl restart dhcpd.

If you plan on using SSH for the remote control of a PXE and Wake on LAN installation, explicitly specify the IP address DHCP should provide to the installation target. To achieve this, modify the above mentioned DHCP configuration according to the following example:

group {
  # PXE related settings
  #
  # "next-server" defines the TFTP server that will be used
  next-server ip_tftp_server:
  #
  # "filename" specifies the pxelinux image on the TFTP server
  # the server runs in chroot under /srv/tftpboot
  filename "pxelinux.0";
  host test {
    hardware ethernet mac_address;
    fixed-address some_ip_address;
    }
}

The host statement introduces the host name of the installation target. To bind the host name and IP address to a specific host, you must know and specify the system's hardware (MAC) address. Replace all the variables used in this example with the actual values that match your environment.

After restarting the DHCP server, it provides a static IP to the host specified, enabling you to connect to the system via SSH.

4.2 Setting Up a TFTP Server

If using a SUSE based installation, you may use YaST to set up a TFTP Server. Alternatively, set it up manually. The TFTP server delivers the boot image to the target system after it boots and sends a request for it.

4.2.1 Setting Up a TFTP Server Using YaST

  1. Log in as root.

  2. Start YaST › Network Services › TFTP Server and install the requested package.

  3. Click Enable to make sure that the server is started and included in the boot routines. No further action from your side is required to secure this. xinetd starts tftpd at boot time.

  4. Click Open Port in Firewall to open the appropriate port in the firewall running on your machine. If there is no firewall running on your server, this option is not available.

  5. Click Browse to browse for the boot image directory. The default directory /tftpboot is created and selected automatically.

  6. Click Finish to apply your settings and start the server.

4.2.2 Setting Up a TFTP Server Manually

  1. Log in as root and install the packages tftp and xinetd.

  2. If unavailable, create /srv/tftpboot and /srv/tftpboot/pxelinux.cfg directories.

  3. Add the appropriate files needed for the boot image as described in Section 4.3, “Using PXE Boot”.

  4. Modify the configuration of xinetd located under /etc/xinetd.d to make sure that the TFTP server is started on boot:

    1. If it does not exist, create a file called tftp under this directory with touch tftp. Then run chmod 755 tftp.

    2. Open the file tftp and add the following lines:

      service tftp
      {
              socket_type            = dgram
              protocol               = udp
              wait                   = yes
              user                   = root
              server                 = /usr/sbin/in.tftpd
              server_args            = -s /srv/tftpboot
              disable                = no
      }
    3. Save the file and restart xinetd with systemctl restart xinetd.

4.3 Using PXE Boot

Some technical background information and PXE's complete specifications are available in the Preboot Execution Environment (PXE) Specification (http://www.pix.net/software/pxeboot/archive/pxespec.pdf).

  1. Change to the directory boot/<architecture>/loader of your installation repository and copy the linux, initrd, message, biostest, and memtest files to the /srv/tftpboot directory by entering the following:

    cp -a linux initrd message biostest memtest /srv/tftpboot
  2. Install the syslinux package directly from your installation DVDs with YaST.

  3. Copy the /usr/share/syslinux/pxelinux.0 file to the /srv/tftpboot directory by entering the following:

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

    cp -a boot/<architecture>/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
  5. Edit the /srv/tftpboot/pxelinux.cfg/default file and remove the lines beginning with readinfo and framebuffer.

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

    insmod=kernel module

    By means of this entry, enter the network Kernel module needed to support network installation on the PXE client. Replace kernel module with the appropriate module name for your network device.

    netdevice=interface

    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://ip_instserver/path_to_repository/DVD1

    This entry defines the NFS server and the repository for the client installation. Replace ip_instserver with the actual IP address of your installation server. path_to_repository should be replaced with the actual path to the repository. HTTP, FTP, or SMB repositories are addressed in a similar manner, except for the protocol prefix, which should read http, ftp, or smb.

    Important
    Important: Adding Boot Options

    If you need to pass other boot options to the installation routines, such as SSH or VNC boot parameters, append them to the install entry. An overview of parameters and some examples are given in Section 5.2, “Booting the Target System for Installation”.

    Tip
    Tip: Changing Kernel and initrd File Names

    It is possible to use different file names for Kernel and initrd images. This is useful if you want to provide different operating systems from the same boot server. However, you should be aware that only one dot is permitted in the file names that are provided by TFTP for the PXE boot.

    An example /srv/tftpboot/pxelinux.cfg/default file follows. Adjust the protocol prefix for the repository to match your network setup and specify your preferred method of connecting to the installer by adding the vnc and VNCPassword or the ssh and ssh.password options to the install entry. The lines separated by \ must be entered as one continuous line without a line break and without the \.

    default harddisk
    
    # default
    label linux
      kernel linux
      append initrd=initrd ramdisk_size=65536 \
         install=nfs://ip_instserver/path_to_repository/product/DVD1
    
    # repair
    label repair
      kernel linux
      append initrd=initrd splash=silent repair=1 showopts
    
    # rescue
    label rescue
      kernel linux
      append initrd=initrd ramdisk_size=65536 rescue=1
    
    # bios test
    label firmware
      kernel linux
      append initrd=biostest,initrd splash=silent install=exec:/bin/run_biostest showopts
    
    #  memory test
    label memtest
      kernel memtest
    
    #  hard disk
    label harddisk
      localboot 0
    
    implicit     0
    display      message
    prompt       1
    timeout      100
  7. Replace ip_instserver and path_to_repository with the values used in your setup.

    The following section serves as a short reference to the PXELINUX options used in this setup. Find more information about the options available in the documentation of the syslinux package located under /usr/share/doc/packages/syslinux/.

4.4 PXELINUX Configuration Options

The options listed here are a subset of all the options available for the PXELINUX configuration file.

APPEND options...

Add one or more options to the Kernel command line. These are added for both automatic and manual boots. The options are added at the very beginning of the Kernel command line, usually permitting explicitly entered Kernel options to override them.

APPEND -

Append nothing. APPEND with a single hyphen as argument in a LABEL section can be used to override a global APPEND.

DEFAULT kernel options...

Sets the default Kernel command line. If PXELINUX boots automatically, it acts as if the entries after DEFAULT had been typed in at the boot prompt, except the auto option is automatically added, indicating an automatic boot.

If no configuration file exists or no DEFAULT entry is defined in the configuration file, the default is the Kernel name linux with no options.

IFAPPEND FLAG

Adds a specific option to the kernel command line depending on the FLAG value. The IFAPPEND option is available only on PXELINUX. FLAG expects a value, described in Table 4.1, “Generated and Added Kernel Command Line Options from IFAPPEND:

Table 4.1: Generated and Added Kernel Command Line Options from IFAPPEND

Argument

Generated Kernel Command Line / Description

1

ip=CLIENT_IP:BOOT_SERVER_IP:GW_IP:NETMASK

The placeholders are replaced based on the input from the DHCP/BOOTP or PXE boot server.

Note, this option is not a substitute for running a DHCP client in the booted system. Without regular renewals, the lease acquired by the PXE BIOS will expire, making the IP address available for reuse by the DHCP server.

2

BOOTIF=MAC_ADDRESS_OF_BOOT_INTERFACE

This option is useful if you want to avoid timeouts when the installation server probes one LAN interface after the other until it gets a reply from a DHCP server. Using this option allows an initrd program to determine from which interface the system has been booted. linuxrc reads this option and uses this network interface.

4

SYSUUID=SYSTEM_UUID

Adds UUIDs in lowercase hexadecimals, see /usr/share/doc/packages/syslinux/pxelinux.txt

LABEL label KERNEL image APPEND options...

Indicates that if label is entered as the Kernel to boot, PXELINUX should instead boot image and the specified APPEND options should be used instead of the ones specified in the global section of the file (before the first LABEL command). The default for image is the same as label and, if no APPEND is given, the default is to use the global entry (if any). Up to 128 LABEL entries are permitted.

PXELINUX uses the following syntax:

label mylabel
  kernel mykernel
  append myoptions

Labels are mangled as if they were file names and they must be unique after mangling. For example, the two labels v2.6.30 and v2.6.31 would not be distinguishable under PXELINUX because both mangle to the same DOS file name.

The Kernel does not need to be a Linux Kernel; it can be a boot sector or a COMBOOT file.

LOCALBOOT type

On PXELINUX, specifying LOCALBOOT 0 instead of a KERNEL option means invoking this particular label and causes a local disk boot instead of a Kernel boot.

Argument

Description

0

Perform a normal boot

4

Perform a local boot with the Universal Network Driver Interface (UNDI) driver still resident in memory

5

Perform a local boot with the entire PXE stack, including the UNDI driver, still resident in memory

All other values are undefined. If you do not know what the UNDI or PXE stacks are, specify 0.

TIMEOUT time-out

Indicates how long to wait at the boot prompt until booting automatically, in units of 1/10 second. The time-out is canceled when the user types anything on the keyboard, assuming the user will complete the command begun. A time-out of zero disables the time-out completely (this is also the default). The maximum possible time-out value is 35996 (just less than one hour).

PROMPT flag_val

If flag_val is 0, displays the boot prompt only if Shift or Alt is pressed or Caps Lock or Scroll Lock is set (this is the default). If flag_val is 1, always displays the boot prompt.

F2  filename
F1  filename
..etc...
F9  filename
F10 filename

Displays the indicated file on the screen when a function key is pressed at the boot prompt. This can be used to implement preboot online help (presumably for the Kernel command line options). For backward compatibility with earlier releases, F10 can be also entered as F0. Note that there is currently no way to bind file names to F11 and F12.

4.5 Preparing the Target System for PXE Boot

Prepare the system's BIOS for PXE boot by including the PXE option in the BIOS boot order.

Warning
Warning: BIOS Boot Order

Do not place the PXE option ahead of the hard disk boot option in the BIOS. Otherwise this system would try to re-install itself every time you boot it.

4.6 Preparing the Target System for Wake on LAN

Wake on LAN (WOL) requires the appropriate BIOS option to be enabled prior to the installation. Also, note down the MAC address of the target system. This data is needed to initiate Wake on LAN.

4.7 Wake on LAN

Wake on LAN allows a machine to be turned on by a special network packet containing the machine's MAC address. Because every machine in the world has a unique MAC identifier, you do not need to worry about accidentally turning on the wrong machine.

Important
Important: Wake on LAN across Different Network Segments

If the controlling machine is not located in the same network segment as the installation target that should be awakened, either configure the WOL requests to be sent as multicasts or remotely control a machine on that network segment to act as the sender of these requests.

Users of SUSE Linux Enterprise Server can use a YaST module called WOL to easily configure Wake on LAN. Users of other versions of SUSE Linux-based operating systems can use a command line tool.

4.8 Wake on LAN with YaST

  1. Log in as root.

  2. Start YaST › Network Services › WOL.

  3. Click Add and enter the host name and MAC address of the target system.

  4. To turn on this machine, select the appropriate entry and click Wake up.

Print this page