Chapter 4. Creating Client Trees
Prev |  | Next

## Chapter 4. Creating Client Trees

To install software in a client tree, you run the `/var/boot/client_setup` program to create a new client tree configuration file that specifies the requirements of your client and swap trees. To modify a client tree configuration file that already exists, you use a text editor. When the configuration file is finished, you run the client tree installation script, `/var/boot/client_inst`, to install the client and swap trees. Both the client tree configuration file and the share tree configuration file are used in the client tree installation process. After the client and swap trees are installed, clients are ready to be booted and put into service.

This chapter provides the information and procedures that are needed to configure and install client and swap trees. It contains these sections:

- “Client Tree Configuration File”

- “Creating a New Client Tree Configuration File”

- “Editing the Client Tree Configuration File”

- “Verifying the Client Tree Configuration File”

- “Installing Client and Swap Trees”

- “Booting a Client Workstation”

| Note: To update an existing client tree with a newer version of the software, use the information in Chapter 5, “Updating Software on Diskless Trees.”

## Client Tree Configuration File

The client tree configuration file contains a list of variables that specify the location of the client tree, the location and size of the swap tree, and the NIS domain of the client. This file also specifies the hardware components of the client, because hardware-specific software modules must be installed in each client tree. The software installed in a client tree is obtained from the share tree that supports it.

| Note: Your server should already have a default copy of a client tree configuration file in `/var/boot/client.dat` as a result of installing Diskless software.

To create a new client tree configuration file, you can run the `/var/boot/client_setup` program, or you can create a working copy of the `/var/boot/client.dat` file that was stored on the server during the Diskless software installation process. If you plan to modify an existing client tree configuration file, you must use a text editor to make your changes.

Although each client in a diskless implementation must have its own client tree, it is not necessary to create an individual client tree configuration file for each client. Because the information in one configuration file frequently pertains to an entire client class, a single copy of the file can often be used to create multiple client trees. You can use the client tree configuration file for multiple client trees whenever these conditions are true:

- Clients are identical workstation models (including graphics hardware).

- Client trees for all clients is in the same directory.

- Swap trees for all clients is 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 R4000 Elan workstations with client trees in the `/diskless/client` directory, swap trees in the `/diskless/swap` directory, and 64 MB of swap space.

Client tree configuration files are stored in the `/var/boot` directory. By convention, a client tree configuration file is named for the model of clients that it configures. For example, client tree configuration files might have names like this:

`/var/boot/Indigo.dat
/var/boot/Indigo_XS.dat
/var/boot/O2.dat`

Figure 4-1 illustrates two client configuration files that are used to create client trees for seven clients.

Figure 4-1. Multiple Client Trees From One Configuration File

### Client and Swap Tree Variables

The variables in the upper portion of the client configuration file 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 file.

Example 4-1 illustrates the upper portion of the `client.dat` file.

Example 4-1. 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.3 $
    #
    #
    #      DISKLESS CLIENT TREE SPECIFICATIONS
    #
    #      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=”64m”
    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 (in the share tree configuration file); be sure your entry ends in the string $HOST. The value of $HOST is the hostname 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 (in the share tree configuration file); be sure your entry ends in the string $HOST. The value of $HOST is the hostname 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 64 megabytes. If you change this value, your entry must end with the letter m (lowercase), 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` on the client so that the client can participate in NIS.

### Client Hardware Variables

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/GFXBOARD/MODE values for 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)
    #
    # NOTES    NOTES    NOTES    NOTES    NOTES
    #
    # 1. For CPUARCH values which are derivatives of the R4000 architecture,
    #        like R4400, just use R4000 as the CPUARCH value.
    #
    # 2.  CPUARCH should be set to the values shown below.
    #
    # 3. If you modify the supported or unsupported architectures below, please
    #        change the file d1_classes.
    #
    # 4. The MACH variable is no longer applicable to current releases.
    #
    # 5. The MODE pad should be set on Indigo2 R10000, O2, & OCTANE.
    #
    #+-------------------+---------+----------+------------------------------------+
    #| Machine Type      | CPUARCH | CPUBOARD | GFXBOARD                  | VIDEO  |
    #|                   |         | /MACH    |                           |        |
    #+-------------------+---------+----------+---------------------------+--------|
    #| 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”      |        |
    #| Indigo2 IMPACT    | R4000   |   IP22   | “MGRAS   -mSUBGR=MGRAS”   |        |
    #|   Notes: (1) Extreme+XL indicates dual heads: one Extreme, one XL.          |
    #|  (2) The galileo board is only a graphics option.  It does not change       |
    #|      the architecture of a diskless client.                                 |
    #
    #| Indy              | R4000   |   IP22   | “NEWPORT -mSUBGR=NG1”     | VINO   |
    #| Indy R5000        | R5000   |   IP22   | “NEWPORT -mSUBGR=NEWTON”  | VINO   |
    #|   Note: VIDEO tag is only used by Indy for now.                    |        |
    #|                   |         |          |                           |        |
    #| Indigo2 10000     |         |          |                           |        |
    #|         IMPACT    | R10000  |   IP28   | “MGRAS -mSUBGR=I2_64”     |        |
    #|         Extreme   | R10000  |   IP28   | “EXPRESS -mSUBGR=I2_64”   |        |
    #|         XZ        | R10000  |   IP28   | “EXPRESS -mSUBGR=I2_64”   |        |
    #| NOTE: MODE=”64bit”|         |          |                           |        |
    #|                   |         |          |                           |        |
    #| OCTANE            |         |          |                           |        |
    #|         SI/SSI/MXI| R10000  |   IP30   | “MGRAS -mSUBGR=RACER”     |        |
    #| NOTE: MODE=”64bit”|         |          |                           |        |
    #|                   |         |          |                           |        |
    #| O2                | R5000   |   IP32   | “CRIME -mSUBGR=CRM”       | VICE   |
    #|                   | R10000  |   IP32   | “CRIME -mSUBGR=CRM”       | VICE   |
    #| NOTE: MODE=”32bit”|         |          |                           |        |
    #|                   |         |          |                           |        |
    #+--------------------+---------+----------+---------------------------+-------+
    #
    # The following machines are NOT supported for diskless operation in the
    # current release.  The last column states the version of IRIX which last
    # supported a specific architecture.  NEVER means a specific architecture
    # was never supported in a diskless configuration.
    #
    #+--------------------+---------+----------+---------------------------+-------+
    #| Machine Type       | CPUARCH | CPUBOARD |          GFXBOARD         |VERSION|
    #+--------------------+---------+----------+---------------------------+-------+
    #| 4D/50G             | R3000   |   IP4    | “CLOVER1”                 | NEVER  |
    #| 4D/50GT            | R3000   |   IP4    | “CLOVER2 -mSUBGR=IP4GT”   | NEVER  |
    #| 4D/70G             | R3000   |   IP4    | “CLOVER1”                 | NEVER  |
    #| 4D/70GT            | R3000   |   IP4    | “CLOVER2 -mSUBGR=IP4GT”   | NEVER  |
    #|                    |         |          |                           |        |
    #| 4D/120GTX          | R3000   |   IP5    | “CLOVER2 -mSUBGR=IP5GT”   | NEVER  |
    #|                    |         |          |                           |        |
    #| 4D/xy0GTX          | R3000   | IP{5,7,9}| “CLOVER2 -mSUBGR=IP7GT”   | NEVER  |
    #| 4D/xy0RE           | R3000   | IP{5,7,9}| “VENICE  -mSUBGR=IP7”     | NEVER  |
    #| 4D/xy0SKY          | R3000   | IP{5,7,9}| “STAPUFT -mSUBGR=SKYWR”   | NEVER  |
    #| 4D/xy0VGX          | R3000   | IP{5,7,9}| “STAPUFT -mSUBGR=IP7GT”   | NEVER  |
    #|  where x=2, 3 or 4, and y=1, 2, 4, or 8.                            |        |
    #|                    |         |          |                           |        |
    #| 4D/20{G,TG}        | R3000   |   IP6    | “ECLIPSE -mSUBGR=ECLIPSE” |  5.3   |
    #| 4D/25{G,TG}        | R3000   |   IP6    | “ECLIPSE -mSUBGR=ECLIPSE” |  5.3   |
    #| Key:  4D/20{G,TG} is an abbreviation for 4D/20, 4D/20G, and 4D/20TG.|        |
    #|                    |         |          |                           |        |
    #| 4D/210GTX
    #| 4D/30{G,TG}        | R3000   |   IP12   | “ECLIPSE -mSUBGR=ECLIPSE” |  5.3   |
    #| 4D/30EG (Elan)     | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #| 4D/30XS{24}        | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #| 4D/35XS{24}        | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #|                    |         |          |                           |        |
    #| 4D/35{G,TG}        | R3000   |   IP12   | “ECLIPSE -mSUBGR=ECLIPSE” |  5.3   |
    #| 4D/35EG (Elan)     | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #|                    |         |          |                           |        |
    #| Indigo             | R3000   |   IP12   | “LIGHT   -mSUBGR=LIGHT”   |  5.3   |
    #| Indigo Dual Head   | R3000   |   IP12   | “LIGHT   -mSUBGR=LIGHT”   |  5.3   |
    #| Indigo XS{24}      | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #| 4D/35EG (Elan)     | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #|                    |         |          |                           |        |
    #| Indigo             | R3000   |   IP12   | “LIGHT   -mSUBGR=LIGHT”   |  5.3   |
    #| Indigo Dual Head   | R3000   |   IP12   | “LIGHT   -mSUBGR=LIGHT”   |  5.3   |
    #| Indigo XS{24}      | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #| Indigo Elan        | R3000   |   IP12   | “EXPRESS -mSUBGR=EXPRESS” |  5.3   |
    #|                    |         |          |                           |        |
    #| Crimson BLG        | R4000   |   IP17   | “LIGHT   -mSUBGR=IP17”    | NEVER  |
    #| Crimson XS{24}     | R4000   |   IP17   | “EXPRESS -mSUBGR=IP17”    | NEVER  |
    #| Crimson Elan       | R4000   |   IP17   | “EXPRESS -mSUBGR=IP17”    | NEVER  |
    #| Crimson GTX        | R4000   |   IP17   | “CLOVER2 -mSUBGR=IP17”    | NEVER  |
    #| Crimson VGX        | R4000   |   IP17   | “STAPUFT -mSUBGR=IP17”    | NEVER  |
    #| Crimson VGXT       | R4000   |   IP17   | “STAPUFT -mSUBGR=IP17SKY” | NEVER  |
    #| Crimson RE         | R4000   |   IP17   | “VENICE  -mSUBGR=IP17”    | NEVER  |
    #|                    |         |          |                           |        |
    #| Onyx               |         |          |                           |        |
    #|    Extreme         | R4000   |   IP19   | “EXPRESS -mSUBGR=IP19”    | NEVER  |
    #|    Extreme         | R10000  |   IP25   | “EXPRESS -mSUBGR=IP25”    | NEVER  |
    #|    RealityEngine2  | R4000   |   IP19   | “VENICE  -mSUBGR=IP19”    | NEVER  |
    #|    RealityEngine2  | R10000  |   IP25   | “VENICE  -mSUBGR=IP25”    | NEVER  |
    #|    InfiniteReality | R4000   |   IP19   | “KONA    -mSUBGR=IP19”    | NEVER  |
    #|    InfiniteReality | R10000  |   IP25   | “KONA    -mSUBGR=IP25”    | NEVER  |
    #|                    |         |          |                           |        |
    #| PowerOnyx          |         |          |                           |        |
    #|    Extreme         | R8000   |   IP21   | “EXPRESS -mSUBGR=IP21”    | NEVER  |
    #|    RealityEngine2  | R8000   |   IP21   | “VENICE  -mSUBGR=IP21”    | NEVER  |
    #|    InfiniteReality | R8000   |   IP21   | “KONA    -mSUBGR=IP21”    | NEVER  |
    #|                    |         |          |                           |        |
    #| Power Indigo2      |         |          |                           |        |
    #|         Extreme    | R8000   |   IP26   | “EXPRESS -mSUBGR=I2_64”   | 6.0.1  |
    #|         XZ         | R8000   |   IP26   | “EXPRESS -mSUBGR=I2_64”   | 6.0.1  |
    #+--------------------+---------+----------+---------------------------+--------+
    #
    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.
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 |  | Specifies the video chip for Indy (VINO) and O2 (VICE) workstations. The default setting is null, which indicates systems with no on-board video hardware. Set VIDEO to VINO for Indy workstations; set it to VICE for O2 workstations. For other models, use the default setting (null).
MODE |  | Specifies the 32-bit or 64-bit version of the operating system.

## Creating a New Client Tree Configuration File

Use the `client_setup` setup program to create a client tree configuration file for an individual client or class of clients in your diskless implementation (see “Client Tree Configuration File”).

| Note: If you prefer to use an editor to create this file, or if you need to modify an existing client tree configuration file, use the information in “Editing the Client Tree Configuration File” instead of this procedure.

This procedure explains how to create a new client tree configuration file using `client_setup`.

1. Start `client_setup`.

       # cd /var/boot
       # ./client_setup

   After your entry, this prompt is displayed:

       This program will help you create a client tree configuration
       file for the client you would like to install.

       Choose the CPU board:
              1. IP20
              2. IP22
              3. IP28
              4. IP30
              5. IP32
       Choose one (1 2 3 4 5):

2. Enter the number of your selection.

   After your entry, your selection is confirmed and another prompt is displayed:

       >> IP28 selected.
         Choose the graphics board:
              1. LIGHT
              2. EXPRESS
       Choose one (1 2):

3. Enter the number of your selection.

   After your entry, your selection is confirmed and another prompt is displayed:

       >>LIGHT selected.
       You have defined a client class with these components:
               CPUBOARD=IP20
               CPUARCH=R4000
               GFXBOARD=LIGHT -mSUBGR=LG1MC
               VIDEO=
               MODE=32bit
       Specify a size in MB for swap.
       Swap size (Default is 64m - <Enter> for default):

4. Specify the size of your swap file.

   If you wish to specify a swap file that is different from the default, enter the size (the unit of measure is megabytes). Or, press `Enter` to set the swap size to 64 megabytes.

   After your entry, this prompt is displayed:

       Enter your NIS domain name (hit <Enter> for no domain name):

5. Specify a domain or simply press `Enter`.

   If the clients supported by this file are using an NIS domain name that is different from the server's, enter the domain name for the clients. Otherwise, press `Enter` to set the client domain name to the domain name of the server.

   After your entry, this prompt is displayed:

       Specify a name for your client tree configuration file
       (no extension please):

6. Specify a name for this client tree configuration file.

   See “Client Tree Configuration File” for naming conventions.

7. Verify that your client tree configuration file executes.

   See the information in “Verifying the Client Tree Configuration File” for this step.

## Editing the Client Tree Configuration File

To modify an existing client tree configuration file, use a text editor to make your changes. You can also use a text editor instead of `client_setup` to create a new client tree configuration file.

When you install Diskless software on a server, a default version of the configuration file is stored at `/var/boot/client.dat`. If you are creating a new configuration file with a text editor, use a working copy of `client.dat` as the source for the new file. (Do not edit the original version of `client.dat`; make a copy of it and make your changes to the copy.) You will need to change several values in the default version of `client.dat`.

Refer to these sections for information on setting variables when you edit a working copy of`client.dat`:

- “Client and Swap Tree Variables”

- “Client Hardware Variables”

## Verifying the Client Tree Configuration File

The `client.dat` file and its working copies are executable shell scripts. After you create a new client tree configuration file or edit an existing one, 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.

## Installing Client and Swap Trees

To install a client tree, run `client_inst`, which reads the working copy of the client and share tree configuration files for configuration information; then `client_inst` calls `inst` to install the software. Because the share tree serves as the software source, you must have installed the share tree before installing any of the client trees that will use it. After you create one client tree, you can use the `client_clone` program to create additional copies of the tree (see “Cloning Client Trees”). Individual client trees are stored in `/diskless/client_root/client_name`.

| Note: You must install the `nfs.sw.dskless_client` subsystem in every client tree.

As part of the client tree installation process, `client_inst` installs the swap tree for each client in `/diskless/swap/client_name`. It also creates the `/etc/fstab` and `/etc/hosts` files that clients need and includes them in the client trees. Finally, `client_ins`t adds entries that clients need 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 “Assigning Internet Addresses” in Chapter 2 for details).

### The client_inst Command

The `client_inst` command initiates client and swap tree installations. This command requires arguments that identify the hostname of the client being installed and the share tree and client tree configuration files to be used in the installation.

Syntax for the `client_inst` command is shown below (see the man page `client_inst` for a more complete description).

    client_inst -h hostname -r release -c class [-d]

Arguments to `client_inst` have these meanings:

`-h` hostname |  | Specifies the hostname of an individual client whose tree you are installing.
`-r` release |  | Specifies the share tree configuration file (without the `.dat` extension) that is used during client tree installations.
`-c` class |  | Specifies the working copy of cl `ient.dat` for this class (without the `.dat` extension).
`-d` |  | Deletes a client tree.

The following sample illustrate `client_inst` command entries.

    client_inst -h starlite -r IRIX_65-32 -c O2

The entry in this sample installs a client tree and swap tree for a client named starlite using a share tree configuration file called `IRIX_ 65-32` (the `.dat` extension is omitted) and a client tree configuration file named `O2` (the `.dat` extension is omitted).

### Client and Swap Tree Installation Procedure

The procedure in this section explains how to use `client_inst` to launch a client tree installation that creates a client and swap tree. Remember, only software that is installed on the share tree can be installed in a client tree.

When running `client_inst`, use the same media in the same order that you used with `share_inst`, that is, the operating system CD first, then the NFS CD, and any other source media.

The procedure assumes that you are using Inst, the command-line interface to the installation program, but you can use Software Manager, the graphical interface, instead. (See IRIX Admin: Software Installation and Licensing for information on using Inst; see the Personal System Administration Guide for information on using Software Manager.) After a client tree is created, you can add new clients by cloning the tree (see “Cloning Client Trees”).

| Note: If you are updating an existing client tree, do not use the procedures that follows. Use the update procedures in Chapter 5 instead.

1. Shut down the client system.

2. From the `/var/boot` directory, start `client_inst,` use the same media in the same order that you used with `share_inst`, that is, the operating system CD first, then the NFS CD, and any other source media.

       # ./client_inst -h starlite -r  IRIX_65-32 -c O2

   This example directs `client_inst` to create a client tree for starlite using configuration information in `IRIX_65-32.dat` for its share tree and `O2.dat` for its client tree. A swap tree is automatically created for this client.

   After processing this entry, `client_inst` displays this prompt:

       Client tree = /diskless/client/starlite,
                            shared tree = /diskless/share/IRIX_65-32
       Enter confirmation (y/Y):
       Create 64m swap file ........

   | Note: The pathname of the client and share trees in this prompt should match the pathnames that appear in this prompt.

3. 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. open [source...]          Specify additional software locations
        3. close [source]            Close distributions
        4. list [keywords][names]    Display information about software subsystems
        5. go                        Perform software installation and removal now
        6. install [keywords][names] Select subsystems to be installed
        7. remove [keywords][names]  Select subsystems to be removed
        8. keep [keywords][names]    Do not install or remove these subsystems
        9. step [keywords][names]    Enter interactive mode for install/remove/keep
       10. conflicts [choice...]     List or resolve installation conflicts
       11. help [topic]              Get help in general or on a specific word
       12. view ...                  Go to the View Commands Window
       13. admin                     Go to the Administrative Commands Menu
       14. quit                      Terminate software installation

       Inst>

4. Enter `list` to check to check the software selected for installation (optional).

   The `list` option displays the contents of the share tree; the subsystems selected for installation (automatically chosen by `inst`) are marked by the letter i.

   The `list` option also calculates the disk space needed to install the default selections and displays the amount of disk space that is available for installation. When the calculations are complete, check the disk space summary to determine the amount of disk space the client tree will require.

5. Install the nfs.sw.dskless_client subsystem.

   This subsystem is required for diskless operation.

       Inst> install nfs.sw.dskless_client

6. Change the default selections if necessary.

   If you want to change the default selections, use the `step i` option to advance through the list of selected subsystems on the source. Use one of these entries for each subsystem that the `step` option posts:

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

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

8. Enter `quit` to finish the installation:

   After your entry, `inst` processes a suite of `exit` commands. Allow the `exit` commands several minutes to process. During exit processing, watch for a “building kernel” message.

   | 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. You can repeat this procedure for other clients, or use the `clone_client` command to reproduce additional client trees automatically (see “Cloning Client Trees”).

### Cloning Client Trees

Client trees can be reproduced using the `clone_client` program. Like the conventional `client_inst` process, `clone_client` automatically creates a swap tree when it creates a client tree. When you use`clone_client`, you can create a duplicate client tree from another client tree or from the share tree. The software installed in cloned trees is obtained from the same source as the software used to install the model client or share tree originally. For example, if the software in the model client tree /`diskless/client/starlite` was installed from the remote distribution directory `sandy:/dist/IRIX65-32`, then the software in any tree cloned from the starlite tree is obtained from that directory on sandy.

The `clone_client` command has this syntax:

    client_inst -f filename -r release -c class -clone src_root

Specify this information in command arguments:

`-f` filename |  | A file containing the names of hosts whose trees are being created by the cloning process.
`-r` release |  | The working copy of the share tree configuration file that defines this client's share tree (without the `.dat` extension).
`-c` class |  | Is the name of the working copy of client tree configuration file that was used for the model client tree (without the `.dat` extension).
`-clone` src_root |  | The complete pathname to the source of the software to be included in client tree. The source can be a share tree or another client tree. You must specify the complete pathname of the source. For example, if starlite's client tree is used as the model, this argument will read -clone /diskless/client/starlite.

## Booting a Client Workstation

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: Be sure that bootparams is enabled in the server's `/etc/inetd.conf` file before you begin this procedure (see step 9 of “Checking a Server”).

Go to the client workstation to do this procedure:

1. Shut down the client, if it is running.

   If the client is running, type `shutdown` on the console to bring down the system. If you do not shut down the client, a message warns you that the client might crash.

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

3. Check the NVRAM variables.

   Enter `printenv` and check its output for NVRAM variables. It should have several lines of these variables.

4. Set the NVRAM variables that support diskless operation.

   The sample commands that follow illustrate how to set NVRAM variables. Notice that Indigo R4000 workstations 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
       >>setenv SystemPartition bootp()sandy:/var/boot/starlite
       >>setenv OSLoadPartition bootp()sandy:/var/boot/starlite
       >>setenv OSLoader /unix

   The variables in these examples have the following meaning:

   diskless |  | The variable that enables diskless service. Set diskless to 1.
   netaddr |  | The client's Internet address. See “Assigning Internet Addresses” in Chapter 2 if you need help with this setting.
   bootfile |  | The complete pathname for the client's boot file. In the sample command above, `/var/boot/starlite/unix` on server sandy will be used to boot client starlite.
   SystemPartition |  | The directory where the operating system loader is located. In the previous sample command, the directory `/var/boot/starlite` on server sandy contains the operating system loader for starlite.
   OSLoadPartition |  | The directory where the core operating system 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`.

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

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

7. To start the client, select `1) Start System` from the Command Monitor.

8. Configure the client as you would normally configure any host.

   For many networks, host configuration commonly includes such tasks as setting a netmask, mounting (or automounting) filesystems, and setting up user accounts. Perform such tasks on the diskless clients that you are running.

9. Reboot each client to put them into operation.

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

Prev | Table of Contents | Next
Chapter 3. Creating a Share Tree |  | Chapter 5. Updating Software on Diskless Trees