Choosing the Right Boot Medium

There are different methods for booting the client. The computer can boot from its network interface card (NIC) to receive the boot images via DHCP or TFTP. Alternatively a suitable kernel and initrd image can be loaded from a floppy or a bootable CD-ROM.

Booting from a floppy

For testing/rescue purposes or because the NIC does not have a PROM or PXE you can build a boot floppy to use with AutoYaST. Using a floppy to initiate an auto-install process is limited due to the size of the data a floppy can hold. However, it is still possible to use floppies when auto-installing a single, disconnected machine.

Floppies can also store the control file, especially when using the original SuSE CD-ROMs for a single, disconnected machine. Via the kernel command line, you can specify the location of the control file on the floppy.

Even without specifying any command line options, it is still possible to initiate the auto-install process by placing a control file on a floppy with the pre-defined file name autoinst.xml. YaST will check for autoinst.xml upon startup and if it was found it will switch from interactive to automated installation.

Booting from CD-ROM

You can use the original SuSE CD-ROMs in combination with other media. For example, the control file can be provided via a floppy or a specified location on the network.

Alternatively, create a customized CD-ROM that holds only the package you need and the control file. If you need to change the configuration, you'll have to create a new CD-ROM.

Booting via PXE over the network

Booting via PXE requires a DHCP and a TFTP server in your network. The computer will boot then without a physical media like a boot floppy or CDROM.

Here is an example of a /srv/tftp/pxelinux.cfg/default file:

default SLES9

# install SLES9
label SLES9
  kernel linux_sles9
    append initrd=initrd_sles9 vga=0x0314 install=.... autoyast=... language=de_DE

# boot harddisc
label hd·
  LOCALBOOT 0

We recommended you add the vga=... parameter with a valid value for graphical installations, to trigger an installation with the frame buffer device instead of the vesa driver or ncurses mode.

Here is as an example of a /etc/dhcp.conf file:

option domain-name-servers 192.168.66.1;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none; ddns-updates off;
log-facility local7;
option grub-menufile code 150 = text;
option grub-menufile "(nd)/menu.lst";·
subnet 192.168.66.0 netmask 255.255.255.0 {
        range 192.168.66.100 192.168.66.200;
        # PXE related stuff ...
        #
        # "next-server" defines the tftp server which will·
        # serve the pxelinux image to the PXE clients.
        next-server 192.168.66.1;
        allow booting;
        allow bootp;
        option routers 192.168.66.1; # default gateway

        #
        # "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";
}

A problem you might run into if you do installation via PXE is that the installation will run into an endless loop, because after the first reboot, the machine is doing PXE boot again and restarts the installation instead of booting from hard disk for the second stage of the installation.

This problem can be solved in different ways. One way is to use an http server to provide the AutoYaST profile. And, instead of a static profile, run a CGI script on the web server that provides the profile and changes the TFTP server configuration for your target host. Then the next PXE boot of the machine will be from hard disk by default.

Another way is to use AutoYaST to upload a new PXE boot configuration for the target host via the profile:

<pxe>
       <pxe_localboot config:type="boolean">true</pxe_localboot>
       <pxelinux-config>
DEFAULT linux
  LABEL linux
  localboot 0


       </pxelinux-config>
       <tftp-server>192.168.66.1</tftp-server>
       <pxelinux-dir>/pxelinux.cfg</pxelinux-dir>
       <filename>__MAC__</filename>   <!-- since openSUSE 11.2, not SLES11 -->
     </pxe>

This entry will upload a new configuration for the target host to the tftp server shortly before the first reboot happens. In most installations the TFTP daemon runs as user "nobody". You have to make sure this user has write permissions to the pxelinux.cfg directory. So if your machine has the IP address "192.168.66.195", a file C0A842C3 will be uploaded. When the machine reboots and receives the same IP address via DHCP, the new configuration will be used, telling the target host to boot from hard disk.

If you want to do another auto-installation on the same machine, you have to remove the file from the TFTP server.

Since openSUSE 11.2 (not SLES11), you can also configure the filename that will be uploaded. If you use the "magic" __MAC__ filename, the filename will be the mac address of your machine like this "01-08-00-27-79-49-ee". If the filename setting is missing, the IP address will be used for the filename.