To install software in a client tree, you create a working copy of the client tree configuration file, /var/boot/client.dat, and edit the working copy to specify the requirements of your client and swap trees. Then you run the client tree installation script, /var/boot/client_inst, which installs individual client and swap trees using the specifications in your working copies of client.dat and share.dat. After the client and swap trees are installed, you can boot the client workstation and put it into service.
This chapter contains these sections:
The configuration file for a client tree is a customized copy of the /var/boot/client.dat file. This file defines the root directory for client tree and swap tree, the size of the swap space, and the hardware components of the client workstation using the tree.
Although each client in a diskless implementation must have its own client tree, it is not necessary to create an individual working copy of client.dat for each client. Since the information in a working copy of client.dat frequently pertains to an entire client class, a single copy of the file can often be used to create multiple client trees.
Figure 4-1 illustrates the effects of using a single copy of client.dat to create multiple client trees.
You can use the same copy of client.dat for multiple client trees whenever these conditions are true:
Clients are identical workstation models (including graphics)
Client trees for all clients will be in the same directory
Swap trees for all clients will be in the same directory and contain the same amount of swap space.
For example, a single working copy of client.dat can be used to install the client trees for a group of Indigo R4K Elans with client trees in the /diskless/client directory, swap trees in the /diskless/swap directory, and 20 Mb of swap space.
Your server should already have a distribution copy of client.dat in the /var/boot directory as a result of installing Diskless Workstation software. Do not edit the distribution copy of client.dat ; leave the distribution copy in its original form and make working copies of the file to enter your changes.
By convention, a working copy of client.dat is named for the workstation model that it configures, and it ends with a .dat extension. The following examples illustrate command lines that create and name a working copy of client.dat for Indigo, Indigo XS, and IRIS 4D/20 clients:
# cp /var/boot/client.dat /var/boot/Indigo.dat # cp /var/boot/client.dat /var/boot/Indigo_XS.dat # cp /var/boot/client.dat /var/boot/4D_20.dat |
The variables in the distribution copy of client.dat are assigned default values. You will need to change many of these values to configure the client trees for your diskless implementation.
The subsections that follow illustrate each section of client.dat . Below each illustration is an explanation of variables in the section and recommendations for setting them. Use these subsections as a guide when making your working copies of client.dat.
The variables in the upper portion of client.dat specify the location of the client tree and swap tree, the size of the swap space, and the NIS domain name for clients using this client tree configuration file.
Example 4-1 illustrates the upper portion of the client.dat file.
Example 4-1. The Client Tree Setup Section of client.dat
# Information for diskless client setup. # Please make a copy of this file for each class of diskless machines. # # $Revision: 1.1 $ # # # CLIENT TREE SETUP # # CLROOT : directory where client tree resides. # SWAP : directory where swap file resides. # SWAPSIZE : size of swap file. # Same format as "mkfile" takes. # NISDOMAIN : If set to any value, then NIS domain is set # as specified. If set to null, then client's # NIS domain is set as diskless server's NIS domain # unless client's NIS domain is set previously. # # NOTE: # If one wants to prevent the client from using # swap space on server, then set SWAPSIZE="0". # However, If one still wants to preserve already # existing swap space on server for some reason, # then set SWAP="". # CLROOT="$DISKLESS/client/$HOST" SWAP="$DISKLESS/swap/$HOST" SWAPSIZE="20m" NISDOMAIN=" " |
The variables in this portion of client.dat have these meanings:
| CLROOT | Specifies the pathname of the client tree (see Figure 2-1). The default value is $DISKLESS/client/$HOST Reset this value if you plan to install your client trees in a directory other than the one specified by the $DISKLESS variable; be sure your entry ends in the string $HOST The value of $HOST is the host name of the client that you enter on the client_inst command line to install the client tree. | |
| SWAP | Specifies the pathname of the swap tree (see Figure 2-1). The default value is $DISKLESS/swap/$HOST. Reset this value if you plan to install your swap trees in a directory other than the one specified by the $DISKLESS variable; be sure your entry ends in the string $HOST. The value of $HOST is the host name of the client that you enter on the client_inst command line to install the swap tree. | |
| SWAPSIZE | Specifies the size of the swap space, in megabytes. The default value is 20 megabytes. If you change this value, your entry must end with the letter m (lower case), the only allowable value for megabytes. | |
| NISDOMAIN | Specifies the domain name for a client. The default setting is null ( " "), which assigns the server's domain name to its clients. This setting can vary for individual clients in a class. |
Set NISDOMAIN to null (" ") to assign the server's domain name to the client. The client_inst script will enter the server's domain name in the client's copy of /var/yp/ypdomain.
Set NISDOMAIN to an alternative domain name if clients are using a domain name that is different from the server's. The client_inst script will enter the domain name you specify in the client's copy of /var/yp/ypdomain.
![]() | Note: You will need to set yp to on with chkconfig(1M) on the client so that the client can participate in NIS. |
The variables in the lower portion of client.dat specify the hardware components of client workstations.
Example 4-2 illustrates the table in the lower portion of client.dat.
Example 4-2. Architecture Tables in client.dat
# Client CPUARCH/CPUBOARD/MACH/GFXBOARD values for IRIX releases 5.1 and
# beyond. CPUARCH should be omitted for releases prior to 4.0.4, but will
# not hurt if present (as long as the server is at 4.0.4 or later)
#
# NOTE NOTE NOTE NOTE NOTE
# CPUARCH should be set to MIPS1, rather than R3000, or MIPS2, rather than
# R4000 if the *client* (diskless) machine will have IRIX 4.0.4 or any of
# IRIX 4.0.5[ABC] installed on it. The values shown below are correct
# for clients that will run IRIX 4.0.5D or later.
#
# Key: 4D/20{G,TG} is an abbreviation for 4D/20, 4D/20G, and 4D/20TG.
#+-------------------+---------+---------+------------------------------------+
#| Machine Type | CPUARCH | CPUBOARD| GFXBOARD | VIDEO |
#| | | /MACH | | |
#+-------------------+---------+---------+---------------------------+--------|
#| 4D/20{G,TG} | R3000 | IP6 | "ECLIPSE -mSUBGR=ECLIPSE" | |
#| 4D/25{G,TG} | R3000 | IP6 | "ECLIPSE -mSUBGR=ECLIPSE" | |
#| | | | | |
#| 4D/30{G,TG} | R3000 | IP12 | "ECLIPSE -mSUBGR=ECLIPSE" | |
#| 4D/30EG (Elan) | R3000 | IP12 | "EXPRESS -mSUBGR=EXPRESS" | |
#| | | | | |
#| 4D/35{G,TG} | R3000 | IP12 | "ECLIPSE -mSUBGR=ECLIPSE" | |
#| 4D/35EG (Elan) | R3000 | IP12 | "EXPRESS -mSUBGR=EXPRESS" | |
#| | | | | |
#| Indigo | R3000 | IP12 | "LIGHT -mSUBGR=LIGHT" | |
#| Indigo Dual Head | R3000 | IP12 | "LIGHT -mSUBGR=LIGHT" | |
#| Indigo XS{24} | R3000 | IP12 | "EXPRESS -mSUBGR=EXPRESS" | |
#| Indigo Elan | R3000 | IP12 | "EXPRESS -mSUBGR=EXPRESS" | |
#| | | | | |
#| Indigo R4K | R4000 | IP20 | "LIGHT -mSUBGR=LG1MC" | |
#| Indigo R4K DH | R4000 | IP20 | "LIGHT -mSUBGR=LG1MC" | |
#| Indigo R4K XS | R4000 | IP20 | "EXPRESS -mSUBGR=EXPRESS" | |
#| Indigo R4K XZ | R4000 | IP20 | "EXPRESS -mSUBGR=EXPRESS" | |
#| Indigo R4K Elan | R4000 | IP20 | "EXPRESS -mSUBGR=EXPRESS" | |
#| Note: Indigo is also known as 4D/RPC. | | |
#| | | | | |
#| Indigo2 Extreme | R4000 | IP22 | "EXPRESS -mSUBGR=EXPRESS" | |
#| Indigo2 XZ | R4000 | IP22 | "EXPRESS -mSUBGR=EXPRESS" | |
#| Indigo2 Extreme+XL| R4000 | IP22 |"NEWPRESS -mSUBGR=NEWPRESS"| |
#| Indigo2 XL | R4000 | IP22 | "NEWPORT -mSUBGR=NG1 | |
#| | | | | |
#| Indy | R4000 | IP22 | "NEWPORT -mSUBGR=NG1" | "VINO" |
#+-------------------+---------+---------+---------------------------+--------+
#
CPUBOARD="IP20"
CPUARCH=R4000
MACH="IP20"
GFXBOARD="LIGHT -mSUBGR=LG1MC"
VIDEO=" "
|
The variables in the hardware specification section of client.dat have these meanings:
| CPUARCH | Specifies the type of CPU architecture in a client workstation. The default value for CPUARCH is R4000. Set CPUARCH to the value for the workstation model using this client tree. CPUARCH must be assigned only one value in client.dat. See Example 4-2 or the tables in client.dat for valid entries. | |
| CPUBOARD | Specifies the CPU subsystem in a client workstation. The default value for CPUBOARD is IP20. Set CPUBOARD to the workstation model using this client tree. CPUBOARD must be assigned only one value in client.dat. See Example 4-2 or the tables in client.dat for valid entries. | |
| MACH | Specifies the client's CPU type to selected software modules. The default value for MACH is IP20. Set MACH to the value for the workstation model using this client tree. MACH must be assigned only one value in client.dat. See Example 4-2 or the tables in client.dat for valid entries. | |
| GFXBOARD | Specifies the type of graphics subsystem in a client workstation. A subgroup designation is also required in this setting. The default value for GFXBOARD is LIGHT, whose subgroup is LG1MC. Set GFXBOARD to the value for the workstation model using this client tree. GFXBOARD and its subgroup must be assigned only one value in client.dat. See Example 4-2 or the tables in client.dat for valid entries. | |
| 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 is an Indy workstation; if it is not an Indy, use the default setting. |
The client.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 Indigo_XS.dat |
If a prompt is returned after your entry, then the syntax in your configuration file is correct. If you receive any other response, the execution was not successful. Check your entries in the working file and correct any syntax errors. Then, execute the working file again.
![]() | Note: This command does not check the validity of your settings in client.dat; it checks only the file syntax. |
To install a client tree, you run client_inst, which reads the working copy of client.dat and share.dat for configuration information; then client_inst calls inst to install the software. Since inst uses the share tree as its software source, you must have installed the share tree before installing any of the client trees that will use it. Unless you specify otherwise, client_inst installs all software subsystems in the share tree that are marked as the default selections on inst listings.
![]() | Note: You must install the nfs.sw.dskless_client subsystem in every client tree. |
As part of the installation process, client_inst installs the client's swap tree. It also creates the client's /etc/fstab and /etc/hosts files and includes them in the client tree. Finally, client_inst adds entries for the client in the server's /etc/exports file and /etc/bootparams file (or that of the NIS master server). The internet address for a client must be available to network software when you install its client tree(see Chapter 2, “Assigning Internet Addresses” for details).
The client_inst command initiates client and swap tree installation. client_inst requires arguments that identify the host name of the client being installed, and the working copies of share.dat and client.dat to be used in configuring the client tree.
Syntax for the client_inst command is shown below (see the man page client_inst (1M) for a more complete description).
client_inst -h hostname -r release - c class [-d] |
where
| -h | is the flag to specify the host name of a client | |
| hostname | is the host name of the client whose tree you are installing | |
| -r | is the flag to specify a share tree (release) | |
| release | is the working copy of share.dat that defines this client's share tree (without the .dat extension) | |
| -c | is the flag to specify a class | |
| class | is the name of the working copy of client.dat for this class (without the .dat extension) | |
| -d | is the flag to delete a client tree |
The following samples illustrate client_inst command entries.
client_inst -h starlite -r IRIX_51 -c Indigo_XS client_inst -h starlite -r IRIX_51 -c Indigo_XS -d |
The entry in the first sample installs a client tree and swap tree for a client named starlite, whose client tree is defined in a file named Indigo_XS (the .dat extension is omitted) and whose share tree is defined in the file called IRIX_51 (the .dat extension is omitted). The entry in the second sample deletes the client tree for host starlite.
When you install a group of clients, you can either run client_inst separately to install each client tree, or you can install one client tree and clone the tree for additional clients (see “Cloning Client Trees”). A client's swap tree is automatically installed when you install or clone its client tree.
![]() | Note: If you are updating an existing client tree, do not use the procedures that follows. Use the update procedures in Chapter 5 instead. |
Start client_inst as shown in this example:
# cd /var/boot # ./client_inst -h starlite -r IRIX_51 -c Indigo_XS |
This entry directs client_inst to create a client tree for starlite, using configuration information in IRIX_51.dat for its share tree and Indigo_XS.dat for its client tree. After processing your entry, client_inst displays this prompt:
Client tree = /diskless/client/starlite, shared tree = /diskless/share/IRIX_51 Enter confirmation (y/Y): Create 20m swap file ........ |
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&lbreak; Inst> |
Enter list to check your share tree subsystems (optional).
The list option displays the contents of your share tree and the subsystems selected for installation. This is the default set of subsystems for a client tree, and they are marked by the letter i.
The list option also calculates the disk space needed to install the selected options and displays the amount of disk space that is available for installation. After completing its calculations, list posts a disk space message like the one shown in this example:
Net change in blocks 4538+ Blocks available 795668+ |
Install the nfs.sw.dskless_client subsystem.
This subsystem is required for diskless operation.
Inst> install nfs.sw.dskless_client |
Select the other subsystems that you want to install.
If you want to accept the default selections for this client tree, go to Step 5. If you want to change any of the defaults, use the step option to make your selections (for details, see Step 5 of “The Share Tree Installation Procedure” in Chapter 3).
![]() | Tip: You can use two alternatives to the step option to make your selections. The install option lets you specify individual subsystems that you want to include in the client tree (your selections must be installed on the share tree), and the remove option lets you specify individual subsystems that you want to omit from the client tree. |
Enter go to launch the installation:
The go option installs all software subsystems marked for installation.
As it works, inst reports status messages and identifies subsystems that it is installing.
Installing new versions of selected subsystem. |
When it finishes, inst displays this message:
Installation and/or removal succeeded. You can insert another tape or CD-ROM now. |
The message indicates that client tree software is successfully installed.
Enter quit to finish the installation: |
After your entry, inst processes a suite of exit commands. Allow the exit commands several minutes to process.
![]() | Caution: Do not make any entries that will interrupt processing of the exit commands (such as <Ctrl> C , for example). Doing so can result in damage to your system. |
When processing is complete, one client tree is installed on the server system. Repeat this procedure for each diskless workstation that you plan to install.
Once you have installed one client tree, you can use the installed tree as a model for creating additional client trees with -clone, an option to the client_inst command. Like the conventional client_inst process, the clone option automatically creates a swap tree when it creates a client tree.
Cloning client trees takes less time than conventional installations, since the clone option bypasses inst. You can save additional time by customizing the private files on the model client tree before you clone it. For example, you could edit the /etc/fstab on the model tree to include the mount entries that all cloned trees require; you could do a similar edit on the model tree's copy of /etc/hosts and /etc/resolv.conf, and so on.
To clone a client tree, use this syntax of the client_inst command:
client_inst -h hostname -r release - c class -clone model |
Specify this information in command arguments:
Once you finish building a client tree, diskless software is ready to support clients. The procedure that follows explains how to prepare a client workstation, then boot it to run as a diskless system.
![]() | Note: If you are using the EPROM workaround on any client because it contains an early revision EPROM, you need to repeat Step 4 of this procedure each time the client is rebooted (see “Checking a Client” in Chapter 2 and “Compensating for EPROM Hardware” in Chapter 7 for details). |
Go to the client workstation to do this procedure:
Shut down the client, if it is up.
If the client is up, type shutdown on the console to bring down the system.
Go to the Command Monitor.
This step is different for different workstation models. See the Owner's Guide for this model if you need instructions.
Enter printenv and check its output for NVRAM variables. It should have several lines of these variables.
Set the NVRAM variables that support diskless operation.
The sample commands that follow illustrate how to set NVRAM variables. Notice that Indigo R4K models require two variables to specify the boot file setting:
>>setenv diskless 1 >>setenv netaddr 192.0.2.6 >>setenv bootfile bootp()sandy:/var/boot/starlite/unix |
The variables in these examples have the following meaning:
| diskless | is the variable that enables diskless service. Set diskless to 1. | |
| netaddr | is the client's internet address. See “Assigning Internet Addresses” in Chapter 2 if you need help with this setting. | |
| bootfile ; | is the complete pathname for the client's boot file (except on R4K Indigo systems). In the sample command above, /var/boot/starlite/unix on server sandy will be used to boot starlite. |
If your client is an R4K system, use these two variables in place of the bootfile variable to specify boot file location:
>>setenv SystemPartition bootp()sandy: /var/boot/starlite >>setenv OSLoader /unix |
The variables in these examples have the following meaning:
| SystemPartition | is the directory where the client's boot file is located. In the previous sample command, the directory /var/boot/starlite on server sandy contains the boot file for starlite. | |
| OSLoader | is the name of the IRIX boot file. The previous sample command specifies the boot file to be /unix. |
Enter printenv to verify your entries.
Check the values of the NVRAM variables in the output from printenv to verify that the settings are correct.
Enter init to set NVRAM variables.
If your system's Ethernet transceiver has light emitting diodes (LED), you will see Ethernet activity for about 3 to 10 minutes, depending on other Ethernet activity. After a few minutes, the Command Monitor menu is displayed.
To start the client, select 1) Start System.
Once booting is complete, the client workstation is running as a diskless workstation. Step 4 of this procedure should be repeated if any environment variables change (if the client gets a new internet address, for example); or each time you reboot this client, if you are using the EPROM workaround.