Tips & Tricks

Network Installation

Introduction

About this Guide

This guide is intended to provide an overview on installing IRIX using images on a bootserver which can be an IRIX box but also a NetBSD or Linux machine. It will give a basic overviw on how IRIX boots via network and then show configuration examples for NetBSD. It closes with some hints on troubleshooting the installation process

Installing over Network

Installing IRIX via network is not too difficult as SGI computers only use standard protocols. Everything is pretty much standard and should work with any host as the server. Basically what is used is:

  • bootp to obtain/confirm the network address
  • tftp to actually boot the system
  • rcp/rsh to copy the distribution sets

More detail

The Beginning

To obtain some basic information about itself the workstation uses BOOTP. On the side of the client nothing has to be known except the MAC address which is coded into the hardware. The bootp-server assigns all required information to the client based on the MAC address it is using.

If the bootserver is running IRIX using plain bootp is probably the way to go, for anything else DHCP might be a better solution as it covers both DHCP as well as bootp requests. And can be used to install other operating systems on other hardware platforms as well.

Booting the kernel

As soon as the system has obtained its network address and the address of the server it uses tftp to connect to the server. It will use either a user supplied path or one obtained by the bootp response to find the boot file appropriate for the systems architecture. It loads the kernel (or the sash) over the network and starts it.

Opening the distribution

If all has gone well the installation tools are copied to the harddisk of the client inst will start to proceed with the installtion. The distribuition sets will be retrieved using rcp from the bootserver. Again the path is either supplied by the user or taken from the bootp response.

Configuration

Short Overview

The following example configuration files are taken from a NetBSD server that is used to install IRIX machines from. Being from a BSD machine some adjustments may need to be made if you are planning on runing a bootserver on a more SystemV derived operating system (for example using Linux or IRIX).

In general the setup process is pretty easy. It includes setting up DHCP to get appropriate Bootp answers to the SGI and then allowing some additional services to allow file access to the installation directory.

NetBSD Examples

BOOTP/DHCP

The following is an full copy of a /etc/dhcpd.conf file that contains all data for one server (sigma) and a single client (mira). This and all networking addresses has to be configured appropriately for the network and the machines that are to be installed within it.

server-identifier sigma;
default-lease-time 10;
max-lease-time 1024;
ddns-update-style ad-hoc;
option host-name "sigma";
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option time-offset 0;

subnet 192.168.1.0 netmask 255.255.255.0 {
  option domain-name "localdomain";
}

host mira{
  hardware ethernet 08:00:69:09:59:eb;
  fixed-address 192.168.1.34;
}

If you don't know the hardware address of the machine to be installed look either for the barcode label on the machine or enter the Command Monitor and issue printenv. The PROM environment contains the eaddr variable which equals the MAC address of the system.

TFTP

Some OSes may have tftp enabled by default, on NetBSD it has to be activated by removing the comment in /etc/inetd.conf. The line can look like this, but note that for security reasons it is a good idea to restrict access using the -s parameter (otherwise tftp allows unrestricted access to all files):

tftp            dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l

RCP

Some OSes may have rsh enabled by default, on NetBSD it has to be activated by removing the comment in /etc/inetd.conf. The line can look like this:

shell           stream  tcp     nowait  root    /usr/libexec/rshd       rshd -L

Additionally in /etc/hosts.equiv the trusted hosts must be listed. On a highly secure environment wildcards can be used as shown below, otherwise it is highly recommended to name the allowed hosts and users explicitly (SGIs try root and guest as users).

+ +

Starting the Installer

To activate the changes restart the inet daemon by sending it SIGHUP if you have modified /etc/inetd.conf

When you start the installer you can choose to install from a remote directory. You then are prompted for the hostname of the server and the directory from which to install. If the servers name is sigma and the dist directory of the OS to be installed is in /inst/6.2/cd1/dist you enter just that. After this sash should be started and finally inst should be invoked. From there the distributions can be opened (if neccessary) using from sigma:/inst/6.2/cd2/dist. Everything else should behave pretty much the same way as it does when installing from CDs.

The basic installation tools can also be installed from inside the Command Monitor: boot -f bootp()sigma:/inst/6.2/cd1/stand/fx.ARCS --x, boot -f bootp()sigma:/inst/6.2/cd1/stand/sashARCS and the installation process is invoked by typing install -n once the sash has been successfully loaded. Note that paths and the appropriate fx / sash versions have to be chosen depending on your configuration.

Troubleshooting

Short Overview

This chapter gives some information on typical problems that might arise in the process and gives hints on how to debug them. Tools that are quite helpful in this are tcpdump or Ethereal to watch the network traffic between the booting SGI and the bootserver.

Typical Errors

Permission Denied

If inst cannot open the software distribution because it recieves a permission denied error it's possible that no user guest exists or is not allowed to use rsh. Check if the user exists and is allowed in /etc/hosts.equiv

Connection Lost

If all is set up and the machine boots into inst but then does refuse to access the distribution with the message that the connection to the server is lost a possible cause is that /bin/sh is not appropriate for the installation procedure (it could for example be a link to a bash). To fix this for the installation move the existing /bin/sh to /bin/_sh as a backup and copy or link /bin/ksh to /bin/sh. This may break some shell scripts so in these cases a workaround has to be implemented.

Related Links

Websites