Chapter 3. Creating a Share Tree

To install software in a share tree, you create a working copy of the share tree configuration file, /var/boot/share.dat, and edit the working copy to specify the requirements of your share tree. Then you run the share tree installation script, /var/boot/share_inst, which installs share tree software using the specifications in your working copy of share.dat.

This chapter provides procedures for share tree installation. It contains the following sections:

The Share Tree Configuration File

The configuration file for a share tree is a customized copy of the /var/boot/share.dat file. The share.dat file defines the operating parameters that apply to all diskless clients using a particular share tree. The server must contain a separate working copy of share.dat for each share tree that it supports.

Creating a Working Copy of the Share Tree File

Your server should already have a distribution copy of share.dat in the /var/boot directory as a result of installing Diskless software. Do not edit the distribution copy of share.dat; leave the distribution copy in its original form and make a working copy of the file to enter your changes. By convention, a working copy of share.dat is named for the release of IRIX that the share tree contains, and it ends with a .dat extension.

The following example illustrates how to create and name a working copy of share.dat for an IRIX 5.1 share tree.

# cp /var/boot/share.dat /var/boot/IRIX_51.dat

Editing the Share Tree File

In the as-shipped copy of share.dat, variables are assigned default values. Some default values, though not all, must be changed to reflect conditions in your diskless network. These variables provide three types of information: information about the diskless server, information about the share tree, and information describing the hardware components of client workstations.

The subsections that follow illustrate each section of share.dat. Below each illustration is an explanation of variables in the section and recommendations for setting them. Use these subsections as a guide when editing your working copy of share.dat.

Setting Server Variables

The server variables in share.dat define conditions on the server that affect diskless client operation. Example 3-1 illustrates the server specification section of share.dat.

Example 3-1. Server Specification Section of share.dat


# SERVER ENVIRONMENT SETUP
#
#       HOSTNAME  :  Do not change unless you understand network topologies.
#                    This variable should contain the name of the interface
#                    that is connected directly to the client machines.
#                    For example, a server machine “foobar” has two interfaces.
#                    Its primary interface is FDDI, and its secondary interface
#                    is ethernet.  The client machines are on an ethernet
#                    subnet connected to foobar's ethernet interface.  foobar's
#                    ethernet interface is named “ether-foobar”.  In this
#                    case, the HOSTNAME variable below needs to be set to
#                    “ether-foobar” because hostname will return “foobar”.
#       SHAREHOST :  Do not change
#       SERVER_NIS : yes - server is running NIS.Implies NIS lookup.
#                    no -- server is using local naming service.
#
HOSTNAME=”`hostname`”
SHAREHOST=”$HOSTNAME”
SERVER_NIS=”no”

The variables in the server specification section have these meanings:

HOSTNAME 

Specifies the host name of the diskless server. The default setting for HOSTNAME is the value returned by the hostname command. In most cases, the default setting is appropriate and should not be changed (see the note that follows for exceptions).


Note: If your diskless server has multiple network interfaces, HOSTNAME must be set to the name assigned to the network interface where the diskless LAN is attached.

For example, suppose your server has two network interfaces: an FDDI network interface with the host name calvin, and an Ethernet interface to the diskless LAN with the host name ether-calvin. In this example, the correct setting is HOSTNAME=”ether-calvin”.

SHAREHOST 

Specifies the hostname of the server. The default setting is the value specified by the HOSTNAME variable. Do not change this value.

SERVER_NIS 

Specifies whether to obtain the client's host name and address from the NIS database. The default setting is no.

Set SERVER_NIS to yes if you want share_inst to obtain client addresses from the NIS hosts database. When you set SERVER_NIS to yes, share_inst makes an entry for this client in the bootparams map on the NIS master server if the master server is a Silicon Graphics system (see Hint that follows).

If you set SERVER_NIS to yes, client entries are added to the bootparams map on the NIS master server when the share tree is installed; but, you should expect some delay before the client entry is propagated to other NIS servers.

Set SERVER_NIS to no if you want share_inst to obtain client addresses from the server's local /etc/hosts file. If you set SERVER_NIS to no, share_inst will make an entry for this client in the local server's bootparams file.


Tip: If the NIS master is not a Silicon Graphics system and you want a client entry in the master's NIS bootparams map, set SERVER_NIS to no; then, after you run share_inst, move the bootparams lines from the diskless server's /etc/bootparams file to the map on the NIS master.



Note: Diskless Workstation software installation scripts do not perform name and address resolution by means of DNS. However, DNS is supported after the share and client trees are installed.


Setting Share Tree Variables

Share tree variables in share.dat identify the server directory that contains the share tree for a given release of IRIX. Example 3-2 illustrates the share tree specification section of share.dat.

Example 3-2. Share Tree Specification Section of share.dat


# SHARE TREE SETUP
#
#       DISKLESS  : directory where all the share and client trees reside.
#       SHARE     : Do not change
#
DISKLESS=”/diskless”
SHARE=”$DISKLESS/share/$RELEASE”
#
The variables in the share tree specification section of share.dat have these meanings:

DISKLESS 

Specifies the pathname to the root of the diskless tree; that is, this directory contains the subdirectories for the share tree, client trees, and swap trees (see Figure 2-2).

Set DISKLESS to the pathname of the root of your diskless tree.


Note: When you execute share_inst, it reads only the first 37 characters of the combined characters in SHARE and DISKLESS, so you might need to limit the character-count of this variable.


SHARE 

Specifies the pathname to the root of the share tree (see Figure 2-2). The default setting for SHARE, $DISKLESS/share/$RELEASE, specifies the root of the share tree. Do not change this setting.

The default setting assigns $DISKLESS the value that you specified for DISKLESS, the previous variable. This setting assigns $RELEASE the name of the share tree, which you supply as an argument to the share_inst command when installing the share tree (see“The share_inst Command”).

Setting Client Hardware Variables

The client hardware variables specify the architectural components of the workstation models in the diskless network. These variables control the hardware-specific files that are included in the share tree.

A share tree must contain all the hardware-specific modules needed by the client classes represented in your client base. During client tree installation, the hardware specific modules that an individual workstation needs are selected from the share tree and installed into its client tree.

Figure 3-1 illustrates the hardware-specific modules that a share tree must contain to build the client trees for four classes.

Figure 3-1. Hardware Modules for Multiple Classes


By default, share_inst populates the share tree with all the hardware-specific files for every Silicon Graphics workstation model. However, by setting the variables in this section of your working share.dat file, you can limit the hardware-specific files in a share tree to those files that your client models require.

Example 3-3 illustrates the hardware specification section of share.dat.

Example 3-3. Hardware Specification Section of share.dat


# CLIENT ARCHITECTURE SETUP
#
# The following variables are set using the table provided in client.dat.
# Please consult that file for valid values.
# The following 5 variables should not be set if all architectures are
# to be installed for the share tree.  This is why they are
# commented out.  If only a subset is to be installed, all 4 must be
# set.  The example below is for an R4000 Indigo with LIGHT graphics.
#
#CPUBOARD=”IP20”
#CPUARCH=R4000
#MACH=”IP20”
#GFXBOARD=”LIGHT -mSUBGR=LG1MC”
#VIDEO=” ”
#
# To install multiple architectures, set the 5 variables as shown below.
# Notice that the initial symbols CPUBOARD, CPUARCH, and GFXBOARD are
# imbedded in the values for the respective variables.  MACH only needs
# the “-m” flag imbedded.  The example below contains an R4k Indigo with
# LIGHT graphics and an R3k Indigo with XS/XS24/Elan graphics.
#
#CPUBOARD=”IP20 -mCPUBOARD=IP12”
#CPUARCH=”R4000 -mCPUARCH=R3000”
#MACH=”IP20 -mIP12”
#GFXBOARD=”LIGHT -mSUBGR=LG1MC -mGFXBOARD=EXPRESS -mSUBGR=EXPRESS”
#VIDEO=” ”


Note: Use Table 2-2, Example 4-2, or the tables in the client.dat file to determine the components in your client workstations. Be sure you include the components of all workstation models that will serve as diskless clients.

The variables in the hardware specification section of share.dat have these meanings:

CPUBOARD 

Specifies the CPU subsystems in client workstations. You can assign these values to CPUBOARD:

IP6
IP12
IP20
IP22

Set CPUBOARD to the values needed by your clients. If your clients include different workstation models, you might need to assign multiple settings. Check the samples in Example 3-3 (or the client.dat file) for the correct format of your settings.

CPUARCH 

Specifies the type of CPU architecture in client workstations. You can assign these values to CPUARCH:

R3000 
R4000 

Set CPUARCH to the values needed by your clients. If your clients include different workstation models, you might need to assign multiple settings. Check the samples in Example 3-3 (or the client.dat file) for the correct format of your settings.

MACH 

Specifies the machine architecture of the client workstations. You can assign these values to MACH:

IP6
IP12
IP20
IP22

Set MACH to the values needed by your clients. If your clients include different workstation models, you might need to assign multiple settings. Check the samples in Example 3-3 (or the client.dat file) for the correct format of your settings.

GFXBOARD 

Specifies the type of graphics subsystems in client workstations. A subgroup designation is also required in this setting. You can assign these values to GFXBOARD:

ECLIPSE  -mSUBGR=ECLIPSE
EXPRESS  -mSUBGR=EXPRESS
LIGHT    -mSUBGR=LIGHT
LIGHT    -mSUBGR=LG1MC
NEWPRESS -mSUBGR=NEWPRESS
NEWPORT  -mSUBGR=NG1

Set GFXBOARD to the values needed by your clients. If your clients include different workstation models, you might need to assign multiple settings. Check the samples in Example 3-3 (or the client.dat file) for the correct format of your settings.

VIDEO 

For Indy workstations, specifies the video chip. The default setting is null, which indicates non-Indy systems.

Set VIDEO to VINO if your client base includes any Indy workstations.

Executing the Share Tree File

The share.dat file and its working copies are executable shell scripts. After you edit the file, check its syntax by executing it, as shown in this example:

# sh IRIX_51.dat

If a prompt is returned after your entry, the syntax in your configuration file is correct. If you receive any other response, check your entries in the file for syntax errors.


Note: This command does not check the validity of your settings in share.dat; it checks file syntax only.


Installing the Share Tree

To build a share tree, you run share_inst, which reads the working copy of share.dat for configuration information; then share_inst automatically calls inst to install the software from its installation location.

At minimum, your share tree must contain the Execution Only Environments (eoe1 and eoe2) and the Network File Service option (nfs) subsystems listed in Table 2-4. If your client users require a windowing system, you should also install the Default Window Manager (4Dwm), the Desktop Environment (desktop_eoe), Motif (motif), and X (x) subsystems listed in Table 2-4.


Tip: If you are uncertain about what to include in your share tree, accept the default subsystems selected for installation on the original software distribution (these subsystems are marked by an asterisk [*] in inst software listings). Add the nfs.sw.dskless_client subsystem to the default list. This configuration requires a considerable amount of disk space, however.


The share_inst Command

The share_inst command initiates share tree installation; it requires an argument that identifies the name of the share.dat file to be used in configuring the share tree. This argument is called release_name—it assumes that you have named your working copy of share.dat for the release of IRIX that it configures.

Syntax for the share_inst command follows (see the man page share_inst(1M) for a more complete description).

share_inst -r


 release_name [-d] 

where

-r 

is the flag for the release_name argument.

release_name 

is the name of the working copy of share.dat, without the .dat extension. This file will provide configuration information about the share tree (see “Creating a Working Copy of the Share Tree File” for details).

-d 

is the flag to delete a share tree.

The following samples illustrate share_inst command entries.

# share_inst -r IRIX_51 
# share_inst -r IRIX_51B -d

The entry in the first sample starts the installation of a share tree called IRIX_51. The entry in the second sample deletes a share tree called IRIX_51B.

The Share Tree Installation Procedure

The procedure for building a share tree varies depending on the location of the software to be installed. By default, inst expects to find the installation software on a local CD; but you can also specify a remote location, such as a directory or CD-ROM drive on a different network host (the examples show a remote directory). The location of the installation software will affect the way in which you do Steps 3 and 7 of this procedure.


Note: If you are updating an existing share tree, do not use this procedure; use the procedures in Chapter 5 instead.


  1. Start share_inst as shown in this example:

    # cd /var/boot
    # ./share_inst -r IRIX_51 
    

    This entry directs share_inst to read IRIX_51.dat (the working copy of share.dat) to build a share tree for IRIX 5.1 clients. After it processes your entry, share_inst displays a confirmation prompt:

    About to install shared tree at/diskless/share/IRIX_51......
    Enter confirmation (y/Y):
    

  2. Enter y or Y (yes) to confirm the start of installation.

    After your entry, the Inst Main menu is displayed:

    Default location  of new software is <previous installation location>
    If you are a first-time inst user, give the command “help beginner".
    Inst Main Menu
    1. from [source]             Specify location of software to be installed
    2. list [keywords][names]    Display information about software subsystems
    3. go                        Perform software installation and removal now
    4. install [keywords][names] Select subsystems to be installed
    5. remove [keywords][names]  Select subsystems to be removed
    6. keep [keywords][names]    Do not install or remove these subsystems
    7. step [keywords][names]    Enter interactive mode for install/remove/keep
    8. versions [args]           Get information about installed software
    9. help [topic]              Get help in general or on a specific word
    10. admin                    Go to the Administrative Commands Menu
    11. quit                     Terminate software installation
    
    Inst> 
    

  3. Specify the location of your software.

    If you are installing the software locally from a CD, you can accept the default location for the software:

    • Insert the CD in its drive.

    • Press <Return>.

    If you are installing the software from a remote source, specify its location:

    • Enter from to select an alternative source

    • Specify the location of the software, as shown in the following examples. These examples show entries that specify a remote directory and CD as the source of the software.

      Inst> from bigsgi:/d2/irix51
      Inst> from bigsgi:/CDROM/dist
      

    After your entry, inst confirms that it will look for the software at the location you specified; then it lists the products available at that location as shown in this example:

    Reading product descriptor from source_specification
    4Dwm        4Dwm -- Default Window Manager (...)
    motif_dev   IRIX IM Development Software (...)
    motif_eoe   IRIX IM Execution Only Environment (...)
    il_dev      ImageVision Library, 2.2
    il_eoe      ImageVision Library Execution Only ...
    insight     IRIS InSight Viewer, Release 2.2
    


    Tip: If you know the subsystems that you want to install and do not need to check space requirements, you can skip Step 4 and go to Step 5.


  4. Enter list to check selected subsystems and space requirements:

    Inst> list
    Computing disk space changes:
    

    After your entry, the list option calculates the disk space needed to install the selected subsystems. After several minutes, it posts a list of available subsystems similar to the partial listing in this example:

    Subsystem                                    /Description
    eoe1.man.relnotes * 121+ Workstation Release Notes
    eoe1.man.slip *      21+ SLIP Manual Page
    eoe1.man.unix *    6272+ Basic IRIX Documentation
    eoe1.sw.audio *    3809+ Audio Software
    eoe1.sw.cpp *@      119+ Source Code Preprocessor
    eoe1.sw.lboot *@+  6627+ Kernel lboot software
    eoe1.sw.lib *@+   31801+ Execution C/Fortran Library
    eoe1.sw.quotas @    259+ BSD Disk Quotas
    More?
    

    To advance through the list, press the space bar or <Enter> at the More? prompt. At the end of the list, you see the Inst> prompt.

  5. Enter step to select software subsystems for the share tree:

    Inst> step
    

    After your entry, the first item on the list of subsystems in the distribution is displayed. If you are not sure which subsystems to include in the share tree, see Table 2-4 for a suggested minmum.


    Note: You must select all eoe1, eoe2, and nfs subsystems listed in Table 2-4 for installation.

    To modify a selection on the inst list , type one of these entries:

    <Enter> 

    to leave the selection unchanged.

    r <Enter> 

    if it is marked i and you do not want it installed

    i <Enter> 

    if it is not marked i and you want to install it

    When the list is finished, you see a report of your changes; then the Inst> prompt is displayed.

  6. Check your list of selections (optional).

    Since it is time consuming to install a share tree, you might want to verify your selections by typing list again.

  7. Enter go to launch the installation.

    Inst> go
    Installing new versions of selected subsystem_name subsystems.
    

    As it works, inst displays messages that identify the subsystems being installed. You see this message when the installation is finished:

    Installation and/or removal succeeded.
    You can insert another tape or CD-ROM now.
    

    Inst>
    

  8. Insert the next CD, if needed.

    If you have no more software to install, go to Step 9. If you have more CDs to install, do this:

    • Insert the new CD.

    • Press <Enter>.

    • Repeat Steps 5 through 7 for each additional CD.


    Note: If your new share tree is to contain an IRIX maintenance release, insert the CD containing the maintenance release now. Repeat Steps 4 through 7 to install your maintenance software.


  9. Enter quit to complete the installation:

    Inst> quit
    Running exit commands...
    

    If there is a problem with the exports file, you will see a message in your current window and a message will be sent to the console. If there is a problem in exports, correct the /etc/exports file; then run exportfs -a manually to correct the problem.

Allow the exit commands several minutes to process.


Caution: Do not make any entries that will interrupt processing of exit commands (such as <Ctrl> C, for example). Doing so can result in damage to your system.

When processing is complete, the share tree is installed on the server system. To verify the installation, change to the directory for the share tree and list its contents:

# cd /diskless/share/IRIX_51
# ls
dev/ lib/ sbin/ var/