System Administration Guide: Basic Administration

Troubleshooting Diskless Client Problems

This section describes problems that are encountered when managing diskless clients and possible solutions.

Troubleshooting Diskless Client Installation Problems

The smosservice add command does not install any packages that are designated ARCH=all in the root (/ ) or /usr file systems. As a result, these packages are skipped. No warning or error messages are displayed. You must add these packages to the newly created Oracle Solaris OS service manually. This behavior has existed since the Solaris 2.1 OS. The behavior applies to both SPARC based and x86 based clients. Note that the list of missing packages varies, depending on which Oracle Solaris release you are running.

ProcedureHow to Locate and Install Missing ARCH=all Packages

This procedure shows you how to locate and install missing ARCH=all packages after you have created the Oracle Solaris OS service on the server. Examples that are provided in this procedure apply to the Solaris 10 6/06 OS.

  1. Locate all the packages with the ARCH=all parameter.

    1. Change directories to the Product directory of the media for the Oracle Solaris 10 image. For example:


      % cd /net/server/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product
      
    2. List all the packages in the pkginfo file that have the ARCH=all parameter.


      % grep -w ARCH=all */pkginfo
      

      If an error message indicating the arguments list is too long is displayed, you can alternately run the following command to generate the list:


      % find . -name pkginfo -exec grep -w ARCH=all {} /dev/null \;
      

      Note that running this command takes longer to produce results.

      The output is similar to the following:

      ./SUNWjdmk-base/pkginfo:ARCH=all
      ./SUNWjhdev/pkginfo:ARCH=all
      ./SUNWjhrt/pkginfo:ARCH=all
      ./SUNWjhdem/pkginfo:ARCH=all
      ./SUNWjhdoc/pkginfo:ARCH=all
      ./SUNWmlibk/pkginfo:ARCH=all

      The information that is provided in this list enables you to determine which packages are installed in the /usr file system and which packages are installed in the root (/) file system.

    3. Check the value of the SUNW_PKGTYPE parameter in the package list you generated.

      Packages that belong in the /usr file system are designated as SUNW_PKGTYPE=usr in the pkginfo file. Packages that belong in the root ( /) file system are designated as SUNW_PKGTYPE=root in the pkginfo file. In the preceding output, all the packages belong in the /usr file system.

  2. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  3. Create the temporary installation administration files.

    You must create a separate installation administration file for packages that are installed in the root (/) file system and a separate installation administration file for packages that are installed in the /usr file system.

    • For ARCH=all packages that are installed in the /usr file system, create the following temporary installation administration file:


      # cat >/tmp/admin_usr <<EOF
      mail=
      instance=unique
      partial=nocheck
      runlevel=nocheck
      idepend=nocheck
      rdepend=nocheck
      space=nocheck
      setuid=nocheck
      conflict=nocheck
      action=nocheck
      basedir=/usr_sparc.all
      EOF
      #
    • For ARCH=all packages that are installed in the root (/) file system, if any exist, create the following temporary installation administration file:


      # cat >/tmp/admin_root <<EOF
      mail=
      instance=unique
      partial=nocheck
      runlevel=nocheck
      idepend=nocheck
      rdepend=nocheck
      space=nocheck
      setuid=nocheck
      conflict=nocheck
      action=nocheck
      EOF
      #
  4. Install the missing ARCH=all packages.

    1. If the current directory is not the Product directory of the media for the Oracle Solaris 10 image, change directories to that directory. For example:


      # cd /net/server/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product
      

      You can run the pwd command to determine the current directory.

    2. Install the missing ARCH=all packages in the /usr file system.


      # pkgadd -R /export/Solaris_10 -a /tmp/admin_usr -d `pwd` [
      package-A package-B ...]
      

      Multiple packages can be listed when you running the pkgadd command.

    3. Check that the ARCH=all packages were installed.


      # pkginfo  -R /export/Solaris_10  [package-A 
      package-B ...]
      
    4. Install the missing ARCH=all packages that in the root (/) file system.

      Note that it is possible that none of these packages exist.


      # pkgadd  -R /export/root/clone/Solaris_10/sun4u  -a /tmp/admin_root -d `pwd`  [
      package-X package-Y ...]
      
    5. Check that the ARCH=all packages were installed.


      # pkginfo  -R /export/root/clone/Solaris_10/sun4u [
      package-X package- ...]
      
  5. After you have finished adding the missing ARCH=all packages, remove the temporary installation administration file.


    # rm /tmp/administration-file
    

Example 7–10 Locating and Installing Missing ARCH=allPackages

This example shows how to install the missing ARCH=all package, SUNWjdmk-base, in the /usr file system.


% uname -a
SunOS t1fac46 5.10 Generic_118833-02 sun4u sparc SUNW,UltraSPARC-IIi-cEngine

% cat /etc/release
                       Solaris 10 6/06 s10s_u2wos_03 SPARC
           Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
                        Use is subject to license terms.
                           Assembled 06 February 2006

% cd /net/ventor/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product
% grep -w ARCH=all */pkginfo
Arguments too long

% find . -name pkginfo -exec grep -w ARCH=all {} /dev/null \;
./SUNWjdmk-base/pkginfo:ARCH=all
./SUNWjhdev/pkginfo:ARCH=all
./SUNWjhrt/pkginfo:ARCH=all
./SUNWjhdem/pkginfo:ARCH=all
./SUNWjhdoc/pkginfo:ARCH=all
./SUNWmlibk/pkginfo:ARCH=all

% grep -w SUNW_PKGTYPE=usr ./SUNWjdmk-base/pkginfo ./SUNWjhdev/pkginfo ...
./SUNWjdmk-base/pkginfo:SUNW_PKGTYPE=usr
./SUNWjhdev/pkginfo:SUNW_PKGTYPE=usr
./SUNWjhrt/pkginfo:SUNW_PKGTYPE=usr
./SUNWjhdem/pkginfo:SUNW_PKGTYPE=usr
./SUNWjhdoc/pkginfo:SUNW_PKGTYPE=usr

% grep -w SUNW_PKGTYPE=root ./SUNWjdmk-base/pkginfo ./SUNWjhdev/pkginfo ...
% su
Password: xxxxxx
# cat >/tmp/admin_usr <<EOFmail=
instance=unique
partial=nocheck
runlevel=nocheck
idepend=nochec> k
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
basedir=/usr_sparc.all
EOF

# pwd
/net/ventor/export/Solaris/s10u2/combined.s10s_u2wos/latest/Solaris_10/Product

# pkginfo  -R /export/Solaris_10  SUNWjdmk-base 
ERROR: information for "SUNWjdmk-base" was not found

# pkgadd  -R /export/Solaris_10  -a /tmp/admin_usr  -d `pwd`  SUNWjdmk-base


Processing package instance <SUNWjdmk-base> </net/ventor/export/Solaris/s10u2/combined.s10s_u2wos...


Java DMK 5.1 minimal subset(all) 5.1,REV=34.20060120
Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Using </export/Solaris_10/usr_sparc.all>
## Processing package information.
## Processing system information.

Installing Java DMK 5.1 minimal subset as <SUNWjdmk-base>

## Installing part 1 of 1.
2438 blocks

Installation of <SUNWjdmk-base> was successful.

# pkginfo -R /export/Solaris_10 SUNWjdmk-base
application SUNWjdmk-base Java DMK 5.1 minimal subset

# rm /tmp/admin_usr

Troubleshooting General Diskless Client Problems

This section lists some common problems with diskless clients that you might encounter and possible solutions.

Problem:

Diskless client reports Owner of the module /usr/lib/security/pam_unix_session.so.1 is not root, when attempting to log in, the /usr file system is owned by nobody.

Solution:

To correct the problem, follow this workaround:

  1. Using a text editor, modify the diskless client's server:/export/root/client/etc/default/nfs file.

  2. Change the #NFSMAPID_DOMAIN=domain line to the following:


    NFSMAPID_DOMAIN=the_same_value_as_in_server's_/var/run/nfs4_domain
  3. Ensure that the OS server and the diskless client have the same nfsmapid domain. To verify this information, check the /var/run/nfs4_domain file.


    Caution – Caution –

    If the diskless client's nfs4_domain file contains a different value than the OS server's /var/run/nfs4_domain file, you will not be able to log in to the system after the diskless client boots.


  4. Reboot the diskless client.

For more information, see Chapter 3, NFS Tunable Parameters, in Oracle Solaris Tunable Parameters Reference Manual and nfsmapid(1M).

Problem:

The OS server fails to do the following:

Solution:

The following solutions apply in a files environment.

Problem:

The OS server fails to do the following:

Solution:

The following solutions apply in a name service environment.

Problem:

Diskless client panics

Solution:

Verify the following:

Problem:

OS server is not responding to diskless client's RARP request

Solution:

From the client's intended OS server, run the snoop command as superuser (root) by using the client's Ethernet address:


# snoop xx:xx:xx:xx:xx:xx
Problem:

Boot program downloads but panics early in the process

Solution:

Use the snoop command to verify that the intended OS server is answering the client's TFTP and NFS requests.

Problem:

Diskless client hangs.

Solution:

Restart the following daemons on the OS server:


# /usr/sbin/rpc.bootparamd
# /usr/sbin/in.rarpd -a
Problem:

Incorrect server responds to diskless client's RARP request

Solution:

Restart the following daemons on the OS server:


# /usr/sbin/rpc.bootparamd
# svcadm enable network/rarp