Chapter 2. Remote Installation

Contents

2.1. Installation Scenarios for Remote Installation
2.2. Setting Up the Server Holding the Installation Sources
2.3. Preparing the Boot of the Target System
2.4. Booting the Target System for Installation
2.5. Monitoring the Installation Process

openSUSE® can be installed in different ways. As well as the usual media installation covered in Chapter 1, Installation with YaST, you can choose from various network-based approaches or even take a completely hands-off approach to the installation of openSUSE.

Each method is introduced by means of two short check lists: 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]

In the following sections, the system to hold your new openSUSE installation is referred to as 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.

2.1. Installation Scenarios for Remote Installation

This section introduces the most common installation scenarios for remote installations. For each scenario, carefully check the list of prerequisites and follow the procedure outlined for this scenario. If in need of detailed instructions for a particular step, follow the links provided for each one of them.

2.1.1. Simple Remote Installation via VNC—Static Network Configuration

This type of installation still requires some degree of physical access to the target system to boot for installation. The installation itself is entirely controlled by a remote workstation using VNC to connect to the installation program. User interaction is required as with the manual installation in Chapter 1, Installation with YaST.

For this type of installation, make sure that the following requirements are met:

  • Remote repository: NFS, HTTP, FTP, or SMB with working network connection.

  • Target system with working network connection.

  • Controlling system with working network connection and VNC viewer software or Java-enabled browser (Firefox, Konqueror, Internet Explorer, Opera, etc.).

  • Physical boot medium (CD, DVD, or USB flash drive) for booting the target system.

  • Valid static IP addresses already assigned to the repository and the controlling system.

  • Valid static IP address to assign to the target system.

To perform this kind of installation, proceed as follows:

  1. Set up the repository as described in Section 2.2, “Setting Up the Server Holding the Installation Sources”. Choose an NFS, HTTP, or FTP network server. For an SMB repository, refer to Section 2.2.5, “Managing an SMB Repository”.

  2. Boot the target system using a boot medium (DVD, CD, or USB flash drive) of the openSUSE media kit. For more information about the openSUSE media kit, see Section 1.1, “Choosing the Installation Media”.

  3. When the boot screen of the target system appears, use the boot options prompt to set the appropriate VNC options and the address of the repository. This is described in detail in Section 2.4, “Booting the Target System for Installation”.

    The target system boots to a text-based environment, giving the network address and display number under which the graphical installation environment can be addressed by any VNC viewer application or browser. VNC installations announce themselves over OpenSLP and if the firewall settings permit, they can be found using Konqueror in service:/ or slp:/ mode.

  4. On the controlling workstation, open a VNC viewing application or Web browser and connect to the target system as described in Section 2.5.1, “VNC Installation”.

  5. Perform the installation as described in Chapter 1, Installation with YaST. Reconnect to the target system after it reboots for the final part of the installation.

  6. Finish the installation.

2.1.2. Simple Remote Installation via VNC—Dynamic Network Configuration

This type of installation still requires some degree of physical access to the target system to boot for installation. The network configuration is made with DHCP. The installation itself is entirely controlled from a remote workstation using VNC to connect to the installer, but still requires user interaction for the actual configuration efforts.

For this type of installation, make sure that the following requirements are met:

  • Remote repository: NFS, HTTP, FTP, or SMB with working network connection.

  • Target system with working network connection.

  • Controlling system with working network connection and VNC viewer software or Java-enabled browser (Firefox, Konqueror, Internet Explorer, or Opera).

  • Boot the target system using a boot medium (DVD, CD, or USB flash drive) of the openSUSE media kit. For more information about the openSUSE media kit, see Section 1.1, “Choosing the Installation Media”.

  • Running DHCP server providing IP addresses.

To perform this kind of installation, proceed as follows:

  1. Set up the repository as described in Section 2.2, “Setting Up the Server Holding the Installation Sources”. Choose an NFS, HTTP, or FTP network server. For an SMB repository, refer to Section 2.2.5, “Managing an SMB Repository”.

  2. Boot the target system using a boot medium (DVD, CD, or USB flash drive) of the openSUSE media kit. For more information about the openSUSE media kit, see Section 1.1, “Choosing the Installation Media”.

  3. When the boot screen of the target system appears, use the boot options prompt to set the appropriate VNC options and the address of the repository. This is described in detail in Section 2.4, “Booting the Target System for Installation”.

    The target system boots to a text-based environment, giving the network address and display number under which the graphical installation environment can be addressed by any VNC viewer application or browser. VNC installations announce themselves over OpenSLP and if the firewall settings permit, they can be found using Konqueror in service:/ or slp:/ mode.

  4. On the controlling workstation, open a VNC viewing application or Web browser and connect to the target system as described in Section 2.5.1, “VNC Installation”.

  5. Perform the installation as described in Chapter 1, Installation with YaST. Reconnect to the target system after it reboots for the final part of the installation.

  6. Finish the installation.

2.1.3. Remote Installation via VNC—PXE Boot and Wake on LAN

This type of installation is completely hands-off. The target machine is started and booted remotely. User interaction is only needed for the actual installation. This approach is suitable for cross-site deployments.

To perform this type of installation, make sure that the following requirements are met:

  • Remote repository: NFS, HTTP, FTP, or SMB with working network connection.

  • TFTP server.

  • Running DHCP server for your network.

  • Target system capable of PXE boot, networking, and Wake on LAN, plugged in and connected to the network.

  • Controlling system with working network connection and VNC viewer software or Java-enabled browser (Firefox, Konqueror, Internet Explorer, or Opera).

To perform this type of installation, proceed as follows:

  1. Set up the repository as described in Section 2.2, “Setting Up the Server Holding the Installation Sources”. Choose an NFS, HTTP, or FTP network server or configure an SMB repository as described in Section 2.2.5, “Managing an SMB Repository”.

  2. Set up a TFTP server to hold a boot image that can be pulled by the target system. This is described in Section 2.3.2, “Setting Up a TFTP Server”.

  3. Set up a DHCP server to provide IP addresses to all machines and reveal the location of the TFTP server to the target system. This is described in Section 2.3.1, “Setting Up a DHCP Server”.

  4. Prepare the target system for PXE boot. This is described in further detail in Section 2.3.5, “Preparing the Target System for PXE Boot”.

  5. Initiate the boot process of the target system using Wake on LAN. This is described in Section 2.3.7, “Wake on LAN”.

  6. On the controlling workstation, open a VNC viewing application or Web browser and connect to the target system as described in Section 2.5.1, “VNC Installation”.

  7. Perform the installation as described in Chapter 1, Installation with YaST. Reconnect to the target system after it reboots for the final part of the installation.

  8. Finish the installation.

2.1.4. Simple Remote Installation via SSH—Static Network Configuration

This type of installation still requires some degree of physical access to the target system to boot for installation and to determine the IP address of the installation target. The installation itself is entirely controlled from a remote workstation using SSH to connect to the installer. User interaction is required as with the regular installation described in Chapter 1, Installation with YaST.

For this type of installation, make sure that the following requirements are met:

  • Remote repository: NFS, HTTP, FTP, or SMB with working network connection.

  • Target system with working network connection.

  • Controlling system with working network connection and working SSH client software.

  • Boot the target system using a boot medium (DVD, CD, or USB flash drive) of the openSUSE media kit. For more information about the openSUSE media kit, see Section 1.1, “Choosing the Installation Media”.

  • Valid static IP addresses already assigned to the repository and the controlling system.

  • Valid static IP address to assign to the target system.

To perform this kind of installation, proceed as follows:

  1. Set up the repository as described in Section 2.2, “Setting Up the Server Holding the Installation Sources”. Choose an NFS, HTTP, or FTP network server. For an SMB repository, refer to Section 2.2.5, “Managing an SMB Repository”.

  2. Boot the target system using a boot medium (DVD, CD, or USB flash drive) of the openSUSE media kit. For more information about the openSUSE media kit, see Section 1.1, “Choosing the Installation Media”.

  3. When the boot screen of the target system appears, use the boot options prompt to set the appropriate parameters for network connection, address of the repository, and SSH enablement. This is described in detail in Section 2.4.2, “Using Custom Boot Options”.

    The target system boots to a text-based environment, giving the network address under which the graphical installation environment can be addressed by any SSH client.

  4. On the controlling workstation, open a terminal window and connect to the target system as described in Section 2.5.2.2, “Connecting to the Installation Program”.

  5. Perform the installation as described in Chapter 1, Installation with YaST. Reconnect to the target system after it reboots for the final part of the installation.

  6. Finish the installation.

2.1.5. Simple Remote Installation via SSH—Dynamic Network Configuration

This type of installation still requires some degree of physical access to the target system to boot for installation and determine the IP address of the installation target. The installation itself is entirely controlled from a remote workstation using VNC to connect to the installer, but still requires user interaction for the actual configuration efforts.

For this type of installation, make sure that the following requirements are met:

  • Remote repository: NFS, HTTP, FTP, or SMB with working network connection.

  • Target system with working network connection.

  • Controlling system with working network connection and working SSH client software.

  • Physical boot medium (CD, DVD, or USB flash drive) for booting the target system.

  • Running DHCP server providing IP addresses.

To perform this kind of installation, proceed as follows:

  1. Set up the repository source as described in Section 2.2, “Setting Up the Server Holding the Installation Sources”. Choose an NFS, HTTP, or FTP network server. For an SMB repository, refer to Section 2.2.5, “Managing an SMB Repository”.

  2. Boot the target system using a boot medium (DVD, CD, or USB flash drive) of the openSUSE media kit. For more information about the openSUSE media kit, see Section 1.1, “Choosing the Installation Media”.

  3. When the boot screen of the target system appears, use the boot options prompt to pass the appropriate parameters for network connection, location of the installation source, and SSH enablement. See Section 2.4.2, “Using Custom Boot Options” for detailed instructions on the use of these parameters.

    The target system boots to a text-based environment, giving you the network address under which the graphical installation environment can be addressed by any SSH client.

  4. On the controlling workstation, open a terminal window and connect to the target system as described in Section 2.5.2.2, “Connecting to the Installation Program”.

  5. Perform the installation as described in Chapter 1, Installation with YaST. Reconnect to the target system after it reboots for the final part of the installation.

  6. Finish the installation.

2.1.6. Remote Installation via SSH—PXE Boot and Wake on LAN

This type of installation is completely hands-off. The target machine is started and booted remotely.

To perform this type of installation, make sure that the following requirements are met:

  • Remote repository: NFS, HTTP, FTP, or SMB with working network connection.

  • TFTP server.

  • Running DHCP server for your network, providing a static IP to the host to install.

  • Target system capable of PXE boot, networking, and Wake on LAN, plugged in and connected to the network.

  • Controlling system with working network connection and SSH client software.

To perform this type of installation, proceed as follows:

  1. Set up the repository as described in Section 2.2, “Setting Up the Server Holding the Installation Sources”. Choose an NFS, HTTP, or FTP network server. For the configuration of an SMB repository, refer to Section 2.2.5, “Managing an SMB Repository”.

  2. Set up a TFTP server to hold a boot image that can be pulled by the target system. This is described in Section 2.3.2, “Setting Up a TFTP Server”.

  3. Set up a DHCP server to provide IP addresses to all machines and reveal the location of the TFTP server to the target system. This is described in Section 2.3.1, “Setting Up a DHCP Server”.

  4. Prepare the target system for PXE boot. This is described in further detail in Section 2.3.5, “Preparing the Target System for PXE Boot”.

  5. Initiate the boot process of the target system using Wake on LAN. This is described in Section 2.3.7, “Wake on LAN”.

  6. On the controlling workstation, start an SSH client and connect to the target system as described in Section 2.5.2, “SSH Installation”.

  7. Perform the installation as described in Chapter 1, Installation with YaST. Reconnect to the target system after it reboots for the final part of the installation.

  8. Finish the installation.

2.2. Setting Up the Server Holding the Installation Sources

Depending on the operating system running on the machine to use as the network installation source for openSUSE, there are several options for the server configuration. The easiest way to set up an installation server is to use YaST on openSUSE 11.1 and higher.

[Tip]

You can even use a Microsoft Windows machine as the installation server for your Linux deployment. See Section 2.2.5, “Managing an SMB Repository” for details.

2.2.1. Setting Up an Installation Server Using YaST

YaST offers a graphical tool for creating network repositories. It supports HTTP, FTP, and NFS network installation servers.

  1. Log in as root to the machine that should act as installation server.

  2. Install the yast2-instserver package.

  3. Start YaST+Miscellaneous+Installation Server.

  4. Select the repository type (HTTP, FTP, or NFS). The selected service is started automatically every time the system starts. If a service of the selected type is already running on your system and you want to configure it manually for the server, deactivate the automatic configuration of the server service with Do Not Configure Any Network Services. In both cases, define the directory in which the installation data should be made available on the server.

  5. Configure the required repository type. This step relates to the automatic configuration of server services. It is skipped when automatic configuration is deactivated.

    Define an alias for the root directory of the FTP or HTTP server on which the installation data should be found. The repository will later be located under ftp://Server-IP/Alias/Name (FTP) or under http://Server-IP/Alias/Name (HTTP). Name stands for the name of the repository, which is defined in the following step. If you selected NFS in the previous step, define wild cards and export options. The NFS server will be accessible under nfs://Server-IP/Name. Details of NFS and exports can be found in Chapter 28, Sharing File Systems with NFS.

    [Tip]Firewall Settings

    Make sure that the firewall settings of your server system allow traffic on the ports for HTTP, NFS, and FTP. If they currently do not, enable Open Port in Firewall or check Firewall Details first.

  6. Configure the repository. Before the installation media are copied to their destination, define the name of the repository (ideally, an easily remembered abbreviation of the product and version). YaST allows providing ISO images of the media instead of copies of the installation DVDs. If you want this, activate the relevant check box and specify the directory path under which the ISO files can be found locally. Depending on the product to distribute using this installation server, it might be that more add-on CDs or service pack CDs are required and should be added as extra repositories. To announce your installation server in the network via OpenSLP, activate the appropriate option.

    [Tip]

    Consider announcing your repository via OpenSLP if your network setup supports this option. This saves you from entering the network installation path on every target machine. The target systems are just booted using the SLP boot option and find the network repository without any further configuration. For details on this option, refer to Section 2.4, “Booting the Target System for Installation”.

  7. Upload the installation data. The most lengthy step in configuring an installation server is copying the actual installation media. Insert the media in the sequence requested by YaST and wait for the copying procedure to end. When the sources have been fully copied, return to the overview of existing repositories and close the configuration by selecting Finish.

    Your installation server is now fully configured and ready for service. It is automatically started every time the system is started. No further intervention is required. You only need to configure and start this service correctly by hand if you have deactivated the automatic configuration of the selected network service with YaST as an initial step.

To deactivate a repository, select the repository to remove then select Delete. The installation data are removed from the system. To deactivate the network service, use the respective YaST module.

If your installation server needs to provide the installation data for more than one product of the product version, start the YaST installation server module and select Add in the overview of existing repositories to configure the new repository.

2.2.2. Setting Up an NFS Repository Manually

Setting up an NFS source for installation is basically done in two steps. In the first step, create the directory structure holding the installation data and copy the installation media over to this structure. Second, export the directory holding the installation data to the network.

To create a directory to hold the installation data, proceed as follows:

  1. Log in as root.

  2. Create a directory that will later hold all installation data and change into this directory. For example:

    mkdir install/product/productversion
    cd install/product/productversion

    Replace product with an abbreviation of the product name and productversion with a string that contains the product name and version.

  3. For each DVD contained in the media kit execute the following commands:

    1. Copy the entire content of the installation DVD into the installation server directory:

      cp -a /media/path_to_your_DVD_drive .

      Replace path_to_your_DVD_drive with the actual path under which your DVD drive is addressed. Depending on the type of drive used in your system, this can be cdrom, cdrecorder, dvd, or dvdrecorder.

    2. Rename the directory to the DVD number:

      mv path_to_your_DVD_drive DVDx

      Replace x with the actual number of your DVD.

On openSUSE, you can export the repository with NFS using YaST. Proceed as follows:

  1. Log in as root.

  2. Start YaST+Network Services+NFS Server.

  3. Select Start and Open Port in Firewall and click Next.

  4. Select Add Directory and browse for the directory containing the installation sources, in this case, productversion.

  5. Select Add Host and enter the hostnames of the machines to which to export the installation data. Instead of specifying hostnames here, you could also use wild cards, ranges of network addresses, or just the domain name of your network. Enter the appropriate export options or leave the default, which works fine in most setups. For more information about the syntax used in exporting NFS shares, read the exports man page.

  6. Click Finish. The NFS server holding the openSUSE repository is automatically started and integrated into the boot process.

If you prefer manually exporting the repository via NFS instead of using the YaST NFS Server module, proceed as follows:

  1. Log in as root.

  2. Open the file /etc/exports and enter the following line:

    /productversion *(ro,root_squash,sync)

    This exports the directory /productversion to any host that is part of this network or to any host that can connect to this server. To limit the access to this server, use netmasks or domain names instead of the general wild card *. Refer to the export man page for details. Save and exit this configuration file.

  3. To add the NFS service to the list of servers started during system boot, execute the following commands:

    insserv /etc/init.d/nfsserver
  4. Start the NFS server with rcnfsserver start. If you need to change the configuration of your NFS server later, modify the configuration file and restart the NFS daemon with rcnfsserver restart.

Announcing the NFS server via OpenSLP makes its address known to all clients in your network.

  1. Log in as root.

  2. Create the /etc/slp.reg.d/install.suse.nfs.reg configuration file with the following lines:

    
    # Register the NFS Installation Server
    service:install.suse:nfs://$HOSTNAME/path_to_repository/DVD1,en,65535 
    description=NFS Repository

    Replace path_to_repository with the actual path to the installation source on your server.

  3. Start the OpenSLP daemon with rcslpd start.

For more information about OpenSLP, refer to the package documentation located under /usr/share/doc/packages/openslp/ or refer to Chapter 24, SLP Services in the Network. More Information about NFS, refer to Chapter 28, Sharing File Systems with NFS.

2.2.3. Setting Up an FTP Repository Manually

Creating an FTP repository is very similar to creating an NFS repository. An FTP repository can be announced over the network using OpenSLP as well.

  1. Create a directory holding the installation sources as described in Section 2.2.2, “Setting Up an NFS Repository Manually”.

  2. Configure the FTP server to distribute the contents of your installation directory:

    1. Log in as root and install the package vsftpd using the YaST software management.

    2. Enter the FTP server root directory:

      cd /srv/ftp
    3. Create a subdirectory holding the installation sources in the FTP root directory:

      mkdir repository 

      Replace repository with the product name.

    4. Mount the contents of the installation repository into the change root environment of the FTP server:

      mount --bind path_to_repository /srv/ftp/repository

      Replace path_to_repository and repository with values matching your setup. If you need to make this permanent, add it to /etc/fstab.

    5. Start vsftpd with vsftpd.

  3. Announce the repository via OpenSLP, if this is supported by your network setup:

    1. Create the /etc/slp.reg.d/install.suse.ftp.reg configuration file with the following lines:

      
      # Register the FTP Installation Server
      service:install.suse:ftp://$HOSTNAME/repository/DVD1,en,65535 
      description=FTP Repository

      Replace repository with the actual name to the repository directory on your server. The service: line should be entered as one continuous line.

    2. Start the OpenSLP daemon with rcslpd start.

[Tip]Configuring an FTP Server with YaST

If you prefer using YaST over manually configuring the FTP installation server, refer to Chapter 31, Setting up an FTP server with YaST for more information on how to use the YaST FTP server module.

2.2.4. Setting Up an HTTP Repository Manually

Creating an HTTP repository is very similar to creating an NFS repository. An HTTP repository can be announced over the network using OpenSLP as well.

  1. Create a directory holding the installation sources as described in Section 2.2.2, “Setting Up an NFS Repository Manually”.

  2. Configure the HTTP server to distribute the contents of your installation directory:

    1. Install the Web server Apache as described in Section 30.1.2, “Installation”.

    2. Enter the root directory of the HTTP server (/srv/www/htdocs) and create the subdirectory that will hold the installation sources:

      mkdir repository 
             

      Replace repository with the product name.

    3. Create a symbolic link from the location of the installation sources to the root directory of the Web server (/srv/www/htdocs):

      ln -s /path_to_repository /srv/www/htdocs/repository
    4. Modify the configuration file of the HTTP server (/etc/apache2/default-server.conf) to make it follow symbolic links. Replace the following line:

      Options None

      with

      Options Indexes FollowSymLinks
    5. Reload the HTTP server configuration using rcapache2 reload.

  3. Announce the repository via OpenSLP, if this is supported by your network setup:

    1. Create the /etc/slp.reg.d/install.suse.http.reg configuration file with the following lines:

      
      # Register the HTTP Installation Server
      service:install.suse:http://$HOSTNAME/repository/DVD1/,en,65535 
      description=HTTP Repository

      Replace repository with the actual path to the repository on your server. The service: line should be entered as one continuous line.

    2. Start the OpenSLP daemon using rcslpd restart.

2.2.5. Managing an SMB Repository

Using SMB, you can import the installation sources from a Microsoft Windows server and start your Linux deployment even with no Linux machine around.

To set up an exported Windows Share holding your openSUSE repository, proceed as follows:

  1. Log in to your Windows machine.

  2. Create a new folder that will hold the entire installation tree and name it INSTALL, for example.

  3. Export this share according the procedure outlined in your Windows documentation.

  4. Enter this share and create a subfolder, called product. Replace product with the actual product name.

  5. Enter the INSTALL/product folder and copy each DVD to a separate folder, such as DVD1 and DVD2.

To use a SMB mounted share as a repository, proceed as follows:

  1. Boot the installation target.

  2. Select Installation.

  3. Press F4 for a selection of the repository.

  4. Choose SMB and enter the Windows machine's name or IP address, the share name (INSTALL/product/DVD1, in this example), username, and password.

    After you hit , YaST starts and you can perform the installation.

2.2.6. Using ISO Images of the Installation Media on the Server

Instead of copying physical media into your server directory manually, you can also mount the ISO images of the installation media into your installation server and use them as a repository. To set up an HTTP, NFS or FTP server that uses ISO images instead of media copies, proceed as follows:

  1. Download the ISO images and save them to the machine to use as the installation server.

  2. Log in as root.

  3. Choose and create an appropriate location for the installation data, as described in Section 2.2.2, “Setting Up an NFS Repository Manually”, Section 2.2.3, “Setting Up an FTP Repository Manually”, or Section 2.2.4, “Setting Up an HTTP Repository Manually”.

  4. Create subdirectories for each DVD.

  5. To mount and unpack each ISO image to the final location, issue the following command:

    mount -o loop path_to_iso path_to_repository/product/mediumx

    Replace path_to_iso with the path to your local copy of the ISO image, path_to_repository with the source directory of your server, product with the product name, and mediumx with the type (CD or DVD) and number of media you are using.

  6. Repeat the previous step to mount all ISO images needed for your product.

  7. Start your installation server as usual, as described in Section 2.2.2, “Setting Up an NFS Repository Manually”, Section 2.2.3, “Setting Up an FTP Repository Manually”, or Section 2.2.4, “Setting Up an HTTP Repository Manually”.

To automatically mount the ISO images at boot time, add the respective mount entries to /etc/fstab. An entry according to the previous example would look like the following:

path_to_iso path_to_repository/product
    medium auto loop

2.3. Preparing the Boot of the Target System

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.

2.3.1. Setting Up a DHCP Server

There are two ways to set up a DHCP server. For openSUSE, YaST provides a graphical interface to the process. Users can also manually edit the configuration files. For more information about DHCP servers, see also Chapter 26, DHCP.

2.3.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. Install the yast2-dhcp-server package.

  3. Start YaST+Network Services+DHCP Server.

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

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

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

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

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

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

  10. 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 5) 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.

2.3.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 stuff 
      # 
      # "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 rcdhcpd restart.

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 stuff 
  # 
  # "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 hostname of the installation target. To bind the hostname 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.

2.3.2. Setting Up a TFTP Server

Set up a TFTP server with YaST or set it up manually on any other Linux operating system that supports xinetd and TFTP. The TFTP server delivers the boot image to the target system once it boots and sends a request for it.

2.3.2.1. Setting Up a TFTP Server Using YaST

  1. Log in as root.

  2. Install the yast2-tftp-server package.

  3. Start YaST+Network Services+TFTP Server and install the requested package.

  4. 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.

  5. 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.

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

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

2.3.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 2.3.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 rcxinetd restart.

2.3.3. Using PXE Boot

Some technical background information as well as 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 gfxboot, 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]

    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 2.4, “Booting the Target System for Installation”.

    [Tip]Changing Kernel and initrd Filenames

    It is possible to use different filenames 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 filenames 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 usessh and sshpassword 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 
    	    
    # 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
    

    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/.

2.3.4. PXELINUX Configuration Options

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

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 is present or no DEFAULT entry is present in the configuration file, the default is the Kernel name linux with no options.

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.

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.

Note that GRUB uses the following syntax:

title mytitle 
  kernel my_kernel my_kernel_options 
  initrd myinitrd

PXELINUX uses the following syntax:

label mylabel 
  kernel mykernel 
  append myoptions
      

Labels are mangled as if they were filenames 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 filename.

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

APPEND -

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

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 as soon as 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 or 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 filenames to F11 and F12.

2.3.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]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 reinstall itself every time you boot it.

2.3.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.

2.3.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]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.

2.4. Booting the Target System for Installation

Basically, there are two different ways to customize the boot process for installation apart from those mentioned under Section 2.3.7, “Wake on LAN” and Section 2.3.3, “Using PXE Boot”. You can either use the default boot options and function keys or use the boot options prompt of the installation boot screen to pass any boot options that the installation Kernel might need on this particular hardware.

2.4.1. Using the Default Boot Options

The boot options are described in detail in Chapter 1, Installation with YaST. Generally, just selecting Installation starts the installation boot process.

If problems occur, use Installation—ACPI Disabled or Installation—Safe Settings. For more information about troubleshooting the installation process, refer to Abschnitt „Probleme bei der Installation“ (Anhang A, Help and Troubleshooting, ↑Start-Up).

The menu bar at the bottom screen offers some advanced functionality needed in some setups. Using the F keys, you can specify additional options to pass to the installation routines without having to know the detailed syntax of these parameters (see Section 2.4.2, “Using Custom Boot Options”). A detailed description of the available function keys is available at Section 1.5, “The Boot Screen”.

2.4.2. Using Custom Boot Options

Using the appropriate set of boot options helps facilitate your installation procedure. Many parameters can also be configured later using the linuxrc routines, but using the boot options is easier. In some automated setups, the boot options can be provided with initrd or an info file.

The following table lists all installation scenarios mentioned in this chapter with the required parameters for booting and the corresponding boot options. Just append all of them in the order they appear in this table to get one boot option string that is handed to the installation routines. For example (all in one line):

install=xxx netdevice=xxx hostip=xxx netmask=xxx vnc=xxx vncpassword=xxx
   

Replace all the values xxx in this string with the values appropriate for your setup.

Table 2.1. Installation (Boot) Scenarios Used in This Chapter

Installation Scenario

Parameters Needed for Booting

Boot Options

Chapter 1, Installation with YaST

None: system boots automatically

None needed

Section 2.1.1, “Simple Remote Installation via VNC—Static Network Configuration”

  • Location of the installation server

  • Network device

  • IP address

  • Netmask

  • Gateway

  • VNC enablement

  • VNC password

  • install=(nfs,http,​ftp,smb)://path_to_instmedia

  • netdevice=some_netdevice (only needed if several network devices are available)

  • hostip=some_ip

  • netmask=some_netmask

  • gateway=ip_gateway

  • vnc=1

  • vncpassword=some_password

Section 2.1.2, “Simple Remote Installation via VNC—Dynamic Network Configuration”

  • Location of the installation server

  • VNC enablement

  • VNC password

  • install=(nfs,http,​ftp,smb)://path_to_instmedia

  • vnc=1

  • vncpassword=some_password

Section 2.1.3, “Remote Installation via VNC—PXE Boot and Wake on LAN”

  • Location of the installation server

  • Location of the TFTP server

  • VNC enablement

  • VNC password

Not applicable; process managed through PXE and DHCP

Section 2.1.4, “Simple Remote Installation via SSH—Static Network Configuration”

  • Location of the installation server

  • Network device

  • IP address

  • Netmask

  • Gateway

  • SSH enablement

  • SSH password

  • install=(nfs,http,​ftp,smb)://path_to_instmedia

  • netdevice=some_netdevice (only needed if several network devices are available)

  • hostip=some_ip

  • netmask=some_netmask

  • gateway=ip_gateway

  • usessh=1

  • sshpassword=some_password

Section 2.1.5, “Simple Remote Installation via SSH—Dynamic Network Configuration”

  • Location of the installation server

  • SSH enablement

  • SSH password

  • install=(nfs,http,​ftp,smb)://path_to_instmedia

  • usessh=1

  • sshpassword=some_password

Section 2.1.6, “Remote Installation via SSH—PXE Boot and Wake on LAN”

  • Location of the installation server

  • Location of the TFTP server

  • SSH enablement

  • SSH password

Not applicable; process managed through PXE and DHCP


[Tip]More Information about linuxrc Boot Options

Find more information about the linuxrc boot options used for booting a Linux system at http://en.opensuse.org/SDB:Linuxrc.

2.5. Monitoring the Installation Process

There are several options for remotely monitoring the installation process. If the proper boot options have been specified while booting for installation, either VNC or SSH can be used to control the installation and system configuration from a remote workstation.

2.5.1. VNC Installation

Using any VNC viewer software, you can remotely control the installation of openSUSE from virtually any operating system. This section introduces the setup using a VNC viewer application or a Web browser.

2.5.1.1. Preparing for VNC Installation

All you need to do on the installation target to prepare for a VNC installation is to provide the appropriate boot options at the initial boot for installation (see Section 2.4.2, “Using Custom Boot Options”). The target system boots into a text-based environment and waits for a VNC client to connect to the installation program.

The installation program announces the IP address and display number needed to connect for installation. If you have physical access to the target system, this information is provided right after the system booted for installation. Enter this data when your VNC client software prompts for it and provide your VNC password.

Because the installation target announces itself via OpenSLP, you can retrieve the address information of the installation target via an SLP browser without the need for any physical contact to the installation itself, provided your network setup and all machines support OpenSLP:

  1. Start the KDE file and Web browser Konqueror.

  2. Enter service://yast.installation.suse in the location bar. The target system then appears as an icon in the Konqueror screen. Clicking this icon launches the KDE VNC viewer in which to perform the installation. Alternatively, run your VNC viewer software with the IP address provided and add :1 at the end of the IP address for the display the installation is running on.

2.5.1.2. Connecting to the Installation Program

Basically, there are two ways to connect to a VNC server (the installation target in this case). You can either start an independent VNC viewer application on any operating system or connect using a Java-enabled Web browser.

Using VNC, you can control the installation of a Linux system from any other operating system, including other Linux flavors, Windows, or Mac OS.

On a Linux machine, make sure that the package tightvnc is installed. On a Windows machine, install the Windows port of this application, which can be obtained at the TightVNC home page (http://www.tightvnc.com/download.html).

To connect to the installation program running on the target machine, proceed as follows:

  1. Start the VNC viewer.

  2. Enter the IP address and display number of the installation target as provided by the SLP browser or the installation program itself:

    ip_address:display_number 

    A window opens on your desktop displaying the YaST screens as in a normal local installation.

Using a Web browser to connect to the installation program makes you totally independent of any VNC software or the underlying operating system. As long as the browser application has Java support enabled, you can use any browser (Firefox, Internet Explorer, Konqueror, Opera, etc.) to perform the installation of your Linux system.

To perform a VNC installation, proceed as follows:

  1. Launch your preferred Web browser.

  2. Enter the following at the address prompt:

    http://ip_address_of_target:5801
  3. Enter your VNC password when prompted to do so. The browser window now displays the YaST screens as in a normal local installation.

2.5.2. SSH Installation

Using SSH, you can remotely control the installation of your Linux machine using any SSH client software.

2.5.2.1. Preparing for SSH Installation

Apart from installing the appropriate software package (OpenSSH for Linux and PuTTY for Windows), you just need to pass the appropriate boot options to enable SSH for installation. See Section 2.4.2, “Using Custom Boot Options” for details. OpenSSH is installed by default on any SUSE Linux–based operating system.

2.5.2.2. Connecting to the Installation Program

  1. Retrieve the installation target's IP address. If you have physical access to the target machine, just take the IP address the installation routine provides at the console after the initial boot. Otherwise take the IP address that has been assigned to this particular host in the DHCP server configuration.

  2. At a command line, enter the following command:

    ssh -X root@ip_address_of_target
    

    Replace ip_address_of_target with the actual IP address of the installation target.

  3. When prompted for a username, enter root.

  4. When prompted for the password, enter the password that has been set with the SSH boot option. After you have successfully authenticated, a command line prompt for the installation target appears.

  5. Enter yast to launch the installation program. A window opens showing the normal YaST screens as described in Chapter 1, Installation with YaST.