System Administration Guide: Basic Administration

Chapter 7 Managing Diskless Clients (Tasks)

This chapter describes how to manage diskless clients in the Solaris Operating System (Solaris OS).

For information on the procedures that are associated with managing diskless clients, see Managing Diskless Clients (Task Map). For information about installation problems that are associated with managing diskless clients, see Troubleshooting Diskless Client Installation Problems. For overview information on managing diskless clients, see Chapter 6, Managing Client-Server Support (Overview).

Managing Diskless Clients (Task Map)

The following table identifies the procedures that are required to manage diskless clients.

Task 

Description 

For Instructions 

1. (Optional) Enable Solaris Management Console logging to view diskless client error messages. 

Choose Log Viewer from the console main window to view diskless client error messages. 

Starting the Solaris Management Console

 

2. Prepare for adding a diskless client. 

Verify supported releases and identify the platform, media path, and cluster (or software group) of each diskless client. 

x86: How to Prepare for Adding Diskless Clients in a GRUB Based Boot Environment

How to Prepare for Adding Diskless Clients in the Solaris 10 OS

3. Add required OS services to an OS server. 

Add the OS services for the diskless clients you want to support by using the smosservice command. You must identify the platform, media path, and each diskless client platform that you want to support.

How to Add OS Services for Diskless Client Support

4. Locate and install any ARCH=all packages that were missed when you added OS services to the server.


Note –

To avoid having to add these packages to each diskless client individually, perform this task prior to adding diskless client support .


The smosservice add command does not install any root (/) or /usr packages that are designated ARCH=all. These packages must be installed manually after adding the OS services to the OS server.

This behavior has existed since the Solaris 2.1 OS. The behavior applies to both SPARC based and x86 based platforms. Missing ARCH=all packages vary, depending on which Solaris OS you are running.

How to Locate and Install Missing ARCH=all Packages

5. Add a diskless client. 

Add diskless client support by specifying all required information by using the smdiskless command.

x86: How to Add a Diskless Client in the GRUB Based Boot Environment

How to Add a Diskless Client in the Solaris 10 OS

6. Boot the diskless client. 

Verify that a diskless client was successfully added by booting the diskless client. 

x86: How to Boot a Diskless Client With GRUB

SPARC: How to Boot a Diskless Client in the Solaris 10 OS

7. (Optional) Delete diskless client support. 

Delete support for a diskless client if it is no longer required. 

How to Remove Diskless Client Support

8. (Optional) Delete OS services for a diskless client. 

Delete OS services for a diskless client if they are no longer needed. 

How to Remove OS Services for Diskless Clients

9. (Optional) Patch OS services. 

Add, delete, list, or synchronize patches for diskless client OS services. 

How to Add an OS Patch for a Diskless Client

Preparing for Managing Diskless Clients

These sections describe the preparations that are necessary for managing diskless clients.

Keep the following key points in mind when managing diskless clients:

After you determine the platform, media path, and cluster for each diskless client, you are ready to add OS services.

The following directories are created and populated for each OS service that you add:

The following default directories are created and populated on the OS server for each diskless client that you add:


Note –

You can modify the default locations of the root (/), /swap, and /dump directories by using the -x option to the smosservice and smdiskless commands. However, do not create these directories under the /export file system.


Procedurex86: How to Prepare for Adding Diskless Clients in a GRUB Based Boot Environment

Use this procedure to prepare for adding a diskless client. This procedure includes general information for x86 based systems.

When you use the smosservice add command to add OS services, you must specify the platform, media path, and cluster (or software group) of each diskless client platform that you want to support.

Before You Begin

Ensure that the system that is intended to be the OS service is running a supported release. Also, verify that the OS server release and diskless client release combination is supported. For more information, see OS Server and Diskless Client Support Information.

  1. Identify the diskless client platform by using this format:

    instruction-set.machine-class.Solaris-version

    For example:

    i386.i86pc.Solaris_11

    The following are the possible platform options:

    InstructionSet 

    MachineClass 

    SolarisVersion 

    sparc 

    sun4v 

    sun4u, sun4m, sun4d, and sun4c 

    Starting with the Solaris 10 1/06 OS 

    Solaris Express, Solaris 10, Solaris 9, and Solaris 8 

    i386 

    i86pc 

    Solaris Express, Solaris 10, Solaris 9, and Solaris 8 


    Note –

    The sun-4c architecture is not supported in the Solaris 8, Solaris 9, Solaris 10, or Solaris Express releases. The sun-4d architecture is not supported in the Solaris 9, Solaris 10, or Solaris Express releases. The sun-4m architecture is not supported in the Solaris Express Developer Editionor the Solaris 10 release.


  2. Identify the media path.

    The media path is the full path to the disk image that contains the OS that you want to install for the diskless client.

    The Solaris OS is delivered on multiple CDs. However, you cannot use the smosservice command to load OS services from a multiple CD distribution. You must run the scripts that are found on the Solaris software CDs (and optional Language CD) to do the following:

  3. Create an install image on a server. For information on setting up an install server, refer to Solaris Express Installation Guide: Network-Based Installations.

  4. Load the required OS services from the CD image.

    Use one of the following scripts:

    • CD 1 – /media/Solaris_11/Tools/setup_install_server

    • Additional Solaris Software CDs – /media/Solaris_11/Tools/add_to_install_server

    • Language CD – /media/Solaris_11/Tools/add_to_install_server

    For example, if you are using the setup_install_server script from the Solaris Express Software 1 CD on a locally connected CD-ROM device, the syntax looks similar to the following:


    # mkdir /export/install/sol_11_x86
    # cd /cd_mount_point/Solaris_11/Tools
    # ./setup_install_server /export/install/sol_11_x86
    
  5. Add the BootFile and BootSrvA DHCP options to your DHCP server configuration to enable a PXE boot.

    For example:


    Boot server IP (BootSrvA) : svr-addr
    (BootFile) : 01client-macro
    

    where svr-addr is the IP address of the OS server and client-macro is named by the client's Ethernet type (01) and the mac address of the client. This number is also the name of the file that is used in the /tftpboot directory on the installation server.


    Note –

    The notation for the client-macro consists of uppercase letters. This notation should not contain any colons.


    You can add these options from the command-line, or by using DHCP Manager. See Example 7–4 for more information.

    For more information, see x86: How to Perform a GRUB Based Boot From the Network, Preconfiguring System Configuration Information With the DHCP Service (Tasks) in Solaris Express Installation Guide: Network-Based Installations, and Part II, DHCP, in System Administration Guide: IP Services.

  6. After the Solaris CD image is installed on the disk, note the disk media path. For example:


    /net/export/install/sol_11_x86_

    This is the disk media path that needs to be specified when you use the smosservice command.

  7. Identify the SUNWCXall cluster when you add OS services.

    You must use the same cluster for diskless clients that run the same OS on the same system.


    Note –

    Always specify SUNWCXall as the cluster.


ProcedureHow to Prepare for Adding Diskless Clients in the Solaris 10 OS

When you use the smosservice add command to add OS services, you must specify the platform, media path, and cluster (or software group) of each diskless client platform that you want to support.

Before You Begin

Ensure that the system that is intended to be the OS service is running a supported release. Also verify that the combination of OS server release and diskless client release is supported. For more information, see OS Server and Diskless Client Support Information.

  1. Identify the diskless client platform by using this format:

    instruction-set.machine-class.Solaris-version

    For example:

    sparc.sun4u.Solaris_10

    The following are the possible platform options:

    instruction-set

    machine-class

    Solaris_version

    sparc 

    sun4v 

    sun4c, sun4d, sun4m, sun4u, 

    Starting with the Solaris 10 1/06 OS 

    Solaris_10, Solaris_9, and Solaris_8 

    i386 

    i86pc 

    Solaris_10, Solaris_9, and Solaris_8 


    Note –

    The sun-4c architecture is not supported in the Solaris 8, Solaris 9, or Solaris 10 releases. The sun-4d architecture is not supported in the Solaris 9 or 10 releases. The sun-4m architecture is not supported in the Solaris 10 release.


  2. Identify the media path.

    The media path is the full path to the disk image that contains the OS that you want to install for the diskless client.

    The Solaris OS is delivered on multiple CDs. However, you cannot use the smosservice command to load OS services from a multiple CD distribution. You must run the scripts that are found on the Solaris software CDs (and optional Language CD) to do the following:

  3. Create an install image on a server. For information on setting up an install server, refer to Solaris Express Installation Guide: Network-Based Installations.

  4. Load the required OS services from the CD image.

    Use one of the following scripts:

    • CD 1 – /media/Solaris_11/Tools/setup_install_server

    • Additional Solaris Software CDs – /media/Solaris_11/Tools/add_to_install_server

    • Language CD – /media/Solaris_11/Tools/add_to_install_server

    For example, if you are using the setup_install_server script from the Solaris Express Community Edition Software 1 CD on a locally connected CD-ROM device, the syntax looks similar to the following:


    # mkdir /export/install/sparc_11
    # cd /cd_mount_point/Solaris_11/Tools
    # ./setup_install_server /export/install/sparc_11
    
  5. After the Solaris CD image is installed on the disk, specify the disk media path. For example:


    /export/install/sparc_11
  6. Identify the SUNWCXall cluster when you add OS services.

    You must use the same cluster for diskless clients that run the same OS on the same system.

    For example, consider the following Solaris 9 diskless clients:

    • sparc.sun4m.Solaris_9

    • sparc.sun4u.Solaris_9

    To set up these diskless clients, you would need to specify the SUNWCXall cluster for each diskless client because the sun4u and sun4m systems require the SUNWCXall cluster. In addition, diskless clients that run the same operating release (in this example, Solaris_9) on the same system must use the same cluster.


    Note –

    If you are using a sun4u system, or if you are using a system with an accelerated 8-bit color memory frame buffer (cgsix), you must specify SUNWCXall as the cluster.


ProcedureHow to Add OS Services for Diskless Client Support

Use this procedure to add OS services for a diskless client on the server.


Note –

When adding OS services with the smosservice add command, root (/) and /usr packages with the ARCH=all type are not installed. These packages are skipped. No warning or error messages are displayed. After you add the OS services to the OS server, you must install the missing packages manually. For instructions, see How to Locate and Install Missing ARCH=all Packages.


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

  2. Verify that the Solaris Management Console server is running and that the diskless client tools are available on the system.


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    
  3. Add the OS services.


    # /usr/sadm/bin/smosservice add -H host-name:898 -- -o host-name 
    -x mediapath=path -x platform=instruction-set.machine-class.Solaris_version 
    -x cluster=cluster-name -x locale=locale-name
    
    add

    Adds the specified OS service.

    -H host-name:898

    Specifies the host name and port to which you want to connect. If you do not specify a port, the system connects to the default port, 898.


    Note –

    The -H option is not a required option when using the smossservice command to add OS services.


    --

    Identifies that the subcommand arguments start after this point.

    -x mediapath=path

    Specifies the full path to the Solaris image.

    -x platform=instruction-set.machine-class..Solaris_version

    Specifies the instruction architecture, machine class, and the Solaris version to be added.

    -x cluster=cluster-name

    Specifies the Solaris cluster to install.

    -x locale=locale-name

    Specifies the locale to install.


    Note –

    The installation process can take about 45 minutes, depending on the server speed and the OS service configuration you choose.


    For more information, see the smosservice(1M) man page.

  4. (Optional) Continue to add the other OS services.

  5. When you are finished adding OS services, verify that the OS services were installed.


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    

Example 7–1 SPARC: Adding an OS Service for Diskless Client Support

This example shows how to add Solaris 10 SPARC based OS services on the server jupiter. The server jupiter is running the Solaris 10 release. The CD image of the Solaris 10 SPARC based OS is located on the installation server, myway, in /export/s10/combined.s10s_u2wos/61.


# /usr/sadm/bin/smosservice add -H jupiter:898 -- -o jupiter 
-x mediapath=/net/myway/export/s10/combined.s10s_u2wos/61
-x platform=sparc.sun4u.Solaris_10 
-x cluster=SUNWCXall -x locale=en_US

# /usr/sadm/bin/smosservice list - H jupiter:898
Authenticating as user: root

Type /? for help, pressing enter accepts the default denoted by [ ]
Please enter a string value for: password :: xxxxxx
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli
from jupiter:898
Login to jupiter as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from jupiter:898 
was successful.


Example 7–2 x86: Adding an OS Service for Diskless Client Support

This example shows how to add Solaris 10 x86 based OS services on the server orbit. The server orbit is running the Solaris 10 release. The CD image of the Solaris 10 x86 based OS is located on the installation server, seriously, in /export/s10/combined.s10x_u2wos/03.


# /usr/sadm/bin/smosservice add -H orbit:898 -- -o orbit -x
mediapath=/net/seriously/export/s10u2/combined.s10x_u2wos/03 -x
platform=i386.i86pc.Solaris_10 -x cluster=SUNWCXall -x locale=en_US

# /usr/sadm/bin/smosservice list - H orbit:898
Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password ::
Starting Solaris Management Console server version 2.1.0.
endpoint created: :898
Solaris Management Console server is ready.
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from orbit:898
Login to orbit as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from orbit:898 was successful.
Client       	Root Area
                Swap Area
                Dump Area
--------------------------------------------------------------------------------
.
.
.
#

Next Steps

Locate and install any ARCH=all packages that were missed when you ran the smosservice add command to add the OS services to the OS server. For more information, see How to Locate and Install Missing ARCH=all Packages.

Procedurex86: How to Add a Diskless Client in the GRUB Based Boot Environment

Starting with the Solaris 10 1/06 release, use this procedure to add a diskless client after you have added OS services.

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

  2. Add the diskless client.


    # /usr/sadm/bin/smdiskless add -- -i ip-address -e ethernet-address 
    -n client-name -x os=instruction-set.machine-class.Solaris_version 
    -x root=/export/root/client-name -x swap=/export/swap/client-name 
    -x swapsize=size -x tz=time-zone -x locale=locale-name
    
    add

    Adds the specified diskless client.

    --

    Identifies that the subcommand arguments start after this point.

    -i ip-address

    Identifies the IP address of the diskless client.

    -e ethernet-address

    Identifies the Ethernet address of the diskless client.

    -n client-name

    Specifies the name of the diskless client.

    -x os=instruction-set.machine-class.Solaris_version

    Specifies the instruction architecture, machine class, OS, and the Solaris version for the diskless client.

    -x root=root=/export/root/client-name

    Identifies the root (/) directory for the diskless client.

    -x swap=root=/export/root/client-name

    Identifies the swap file for the diskless client.

    -x swapsize=size

    Specifies the size of the swap file in Mbytes. The default is 24 Mbytes.

    -x tz=time-zone

    Specifies the time-zone for the diskless client.

    -x locale=locale-name

    Specifies the locale to install for the diskless client.

    For more information, see the smdiskless(1M) man page.

  3. If not already created, add the BootSrva and BootFile DHCP options to your DHCP server configuration to enable a PXE boot.

    For example:


    Boot server IP (BootSrvA) : svr-addr 
    Boot file (BootFile) : 01client-macro
    

    where svr-addr is the IP address of the server and client-macro is named by the client's Ethernet type (01) and the mac address of the client. This number is also the name of the file that is used in the /tftpboot directory on the installation server.


    Note –

    The client-macro notation consists of uppercase letters. The notation should not contain any colons.


    The following files and directories are created in the /tftpboot directory:


    drwxr-xr-x   6 root sys     512 Dec 28 14:53 client-host-name
    lrwxrwxrwx   1 root root     31 Dec 28 14:53 menu.lst.01ethernet-address
    						-> /tftpboot/client-host-name/grub/menu.lst
    -rw-r--r--   1 root root 118672 Dec 28 14:53 01ethernet-address
    
  4. If the console is on a serial port, edit the /tftpboot/menu.lst.01ethernet-address file. Uncomment the line that specifies the tty setting.

    To change the default menu.lst file that is created on the client, edit the echo lines in the /usr/sadm/lib/wbem/config_tftp file.

    For more information, see Booting an x86 Based System from the Network.

  5. Verify that the diskless clients were installed.


    # /usr/sadm/bin/smdiskless list -H host-name:898 --
    
  6. (Optional) Continue to use the smdiskless add command to add each diskless client.


Example 7–3 x86: Adding Diskless Client Support to an x86 Based System in the GRUB Boot Environment

This example shows how to add a Solaris 10 x86 based diskless client, mikey1.


rainy-01# /usr/sadm/bin/smdiskless add -H sdts-01-qfe0 -- -o sdts-01-qfe0
-n mikey1 -i 192.168.20.22 -e 00:E0:88:55:33:BC -x os=i386.i86pc.Solaris_10
-x root=/export/root/mikey1 -x swap=/export/swap/mikey1
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli
from  sdts-01-qfe0
Login to rainy-01-qfe0 as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from
rainy-01-qfe0 was successful.

# /usr/sadm/bin/smdiskless list -H mikey1:898 --
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from mikey1:898
Login to mikey1 as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from mikey1:898 was 
successful.
Platform
--------------------------------------------------------------------------------
i386.i86pc.Solaris_10                                                           
sparc.sun4us.Solaris_10                                                         
sparc.sun4u.Solaris_10                                                          
i386.i86pc.Solaris_9                                                            


Example 7–4 x86: Adding the BootSrvA and BootFile DHCP Options to the DHCP Server Configuration

This example shows how to add the BootSrva and BootFile DHCP options that are necessary for enabling a PXE boot.


rainy-01# pntadm -A mikey1 -m  0100E0885533BC -f 'MANUAL+PERMANENT' \
-i 0100E0885533BC 192.168.0.101

rainy-01# dhtadm  -A -m 0100E0885533BC -d \
":BootSrvA=192.168.0.1:BootFile=0100E0885533BC:"

In the preceding examples, the server address is the IP address of the server, and the client macro is named by the client's Ethernet type (01) and its mac address. This number is also the name of the file that is used in the /tftpboot directory on the installation server. Note that the notation for the client macro consists of uppercase letters and should not contain any colons.


ProcedureHow to Add a Diskless Client in the Solaris 10 OS

Use this procedure to add a diskless client after you have added OS services. Unless otherwise noted, this procedure includes general information for both SPARC based and x86 based systems.

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

  2. Add the diskless client.


    # /usr/sadm/bin/smdiskless add -- -i ip-address -e ethernet-address 
    -n client-name -x os=instruction-set.machine-class.Solaris_version 
    -x root=/export/root/client-name -x swap=/export/swap/client-name 
    -x swapsize=size -x tz=time-zone -x locale=locale-name
    
    add

    Adds the specified diskless client.

    --

    Identifies that the subcommand arguments start after this point.

    -i ip-address

    Identifies the IP address of the diskless client.

    -e ethernet-address

    Identifies the Ethernet address of the diskless client.

    -n client-name

    Specifies the name of the diskless client.

    -x os=instruction-set.machine-class..Solaris_version

    Specifies the instruction architecture, machine class, OS, and the Solaris version for the diskless client.

    -x root=root=/export/root/client-name

    Identifies the root (/) directory for the diskless client.

    -x swap=root=/export/root/client-name

    Identifies the swap file for the diskless client.

    -x swapsize=size

    Specifies the size of the swap file in Mbytes. The default is 24 Mbytes.

    -x tz=time-zone

    Specifies the time-zone for the diskless client.

    -x locale=locale-name

    Specifies the locale to install for the diskless client.

    For more information, see the smdiskless(1M) man page.

  3. (Optional) Continue to use the smdiskless add command to add each diskless client.

  4. Verify that the diskless clients were installed.


    # /usr/sadm/bin/smdiskless list -H host-name:898 --
    

Example 7–5 SPARC: Adding Diskless Client Support to a SPARC Based System

This example shows how to add Solaris 10 sun4u diskless client, starlite, from the server bearclaus.


# /usr/sadm/bin/smdiskless add -- -i 172.20.27.28 -e 8:0:20:a6:d4:5b 
-n starlite -x os=sparc.sun4u.Solaris_10 -x root=/export/root/starlite 
-x swap=/export/swap/starlite -x swapsize=128 -x tz=US/Mountain 
-x locale=en_US

# /usr/sadm/bin/smdiskless list -H starlite:898 --
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from line2-v480:898
Login to line2-v480 as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from line2-v480:898 was 
successful.
Platform
--------------------------------------------------------------------------------
i386.i86pc.Solaris_10                                                           
sparc.sun4us.Solaris_10                                                         
sparc.sun4u.Solaris_10                                                          
i386.i86pc.Solaris_9                                                            
sparc.sun4m.Solaris_9                                                           
sparc.sun4u.Solaris_9                                                           
sparc.sun4us.Solaris_9

Note that the smdiskless list -H command output lists both SPARC based and x86 based systems.



Example 7–6 x86: Adding Diskless Client Support to an x86 Based System in the Solaris 10 OS

This example shows how to add a Solaris 10 x86 based diskless client, mars, from the server bearclaus.


# /usr/sadm/bin/smdiskless add -- -i 172.20.27.176 -e 00:07:E9:23:56:48
-n mars -x os=i386.i86pc.Solaris_10 -x root=/export/root/mars 
-x swap=/export/swap/mars -x swapsize=128 -x tz=US/Mountain 
-x locale=en_US

Procedurex86: How to Boot a Diskless Client With GRUB

If you have installed or upgraded your system to at least the Solaris 10 1/06 OS, the procedure for booting a diskless client has changed. Follow these steps to boot a diskless client with GRUB.


Note –

Starting with the Solaris Express 3/06 release, the GRUB failsafe interaction has changed. When booting the failsafe archive, you are no longer prompted by the system to automatically update the boot archives. The system prompts you to update the boot archives only if inconsistent boot archives are detected. For more information, see How to Boot the Failsafe Archive on an x86 Based System by Using GRUB.


Before You Begin

To ensure that the system boots from the network, verify the following prerequisites on the OS server:

  1. Boot the diskless client by typing the correct keystroke combination.

    The GRUB menu is displayed.

    Depending on the configuration of your network installation server, the GRUB menu that is displayed on your system might vary from the GRUB menu that is shown here.

  2. Use the arrow keys to select a boot entry, then press Enter.

    If you do not make a selection, the default OS instance is automatically booted after several seconds.

    • If you need to modify the GRUB kernel behavior by editing the GRUB menu at boot time, use the arrow keys to select a boot entry, then type e to edit the entry.


      Note –

      The previous example shows the GRUB multiboot implementation. The GRUB menus vary, depending on the Solaris release you are running.


      The boot command that you want to edit is displayed in the GRUB edit screen.

      For more information about modifying kernel behavior at boot time, see Chapter 11, Modifying Solaris Boot Behavior (Tasks).

    • To save the edits and return to the GRUB menu, press Enter.

      The GRUB menu is displayed, showing the edits you made to the boot command.

    • Type b to boot the system from the network.

ProcedureSPARC: How to Boot a Diskless Client in the Solaris 10 OS

Before You Begin

Verify the following prerequisites on the OS server:

  1. Boot the diskless client.


    ok boot net
    

ProcedureHow to Remove Diskless Client Support

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

  2. Remove the diskless client support.


    # /usr/sadm/bin/smdiskless delete -- -o host-name:898 -n client-name
    
  3. Verify that the diskless client support has been removed.


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    

Example 7–7 Removing Diskless Client Support

This example shows how to remove the diskless client holoship from the OS server starlite.


# /usr/sadm/bin/smdiskless delete -- -o starlite:898 -n holoship
Authenticating as user: root

Type /? for help, pressing enter accepts the default denoted by [ ]
Please enter a string value for: password :: 
Starting SMC server version 2.0.0.
endpoint created: :898
SMC server is ready.

# /usr/sadm/bin/smosservice list -H starlite:898 --
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite
Login to starlite as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite
was successful.

ProcedureHow to Remove OS Services for Diskless Clients

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

  2. Remove the OS services for the diskless clients.


    # /usr/sadm/bin/smosservice delete -H $HOST:$PORT -u root -p $PASSWD -- 
    -x instruction-set.all.Solaris_version
    

    Note –

    Only the machine-class, all, is supported.


  3. Verify that the OS services have been removed.


    # /usr/sadm/bin/smosservice list -H host-name:898 --
    

Example 7–8 Removing OS Services for Diskless Clients

The following example shows how to removing the diskless client OS services (sparc.all.Solaris_10) from the server starlite.


# /usr/sadm/bin/smosservice delete -H starlite:898 -u root
-p xxxxxx -- -x sparc.all.solaris_10
Authenticating as user: root
Type /? for help, pressing enter accepts the default denoted by [ ]
Please enter a string value for: password :: 

# /usr/sadm/bin/smosservice list -H starlite:898 --
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite:898
Login to starlite as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite:898
was successful

Patching Diskless Client OS Services

You use the smosservice patch command to do the following:


Note –

Keep your OS servers up to date by installing recommended OS patches on a timely basis.


For information on downloading patches, see How to Download and Apply a Solaris Patch.

Displaying OS Patches for Diskless Clients

Diskless client patches are logged in different directories, depending on the type of patch:

To list all spooled patches by OS and architecture, use the smosservice command with the -P option.

ProcedureHow to Add an OS Patch for a Diskless Client

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

  2. Log in to the diskless client system and shut it down.


    # init 0
    
  3. Add the patch to a spool directory.


    # /usr/sadm/bin/smosservice patch -- -a /var/patches/patch-ID-revision
    

    If the patch to add depends on another patch, adding the patch fails with the following message:


    The patch patch-ID-revision could not be added 
    because it is dependent on other patches which have not yet been spooled. 
    You must add all required patches to the spool first.
  4. Verify that the patch has been spooled.


    # /usr/sadm/bin/smosservice patch -- -P
    
  5. Push the spooled patch to the diskless client.


    # /usr/sadm/bin/smosservice patch -- -m -U
    

    Note –

    Pushing and synchronizing the patch to the diskless client can take up to 90 minutes per patch.


  6. Verify the patch is applied to the diskless client.


    # /usr/sadm/bin/smosservice patch -- -P
    

Example 7–9 Adding an OS Patch for a Diskless Client

This example shows how to add a Solaris 8 patch (111879-01) to the diskless client's OS services on the server.


# /usr/sadm/bin/smosservice patch -- -a /var/patches/111879-01
Authenticating as user: root

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password :: 
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite
Login to starlite as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite 
was successful..
.
# /usr/sadm/bin/smosservice patch -- -P
Patches In Spool Area
Os Rel Arch   Patch Id  Synopsis
-------------------------------------------------------------------------
8      sparc  111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr  

Patches Applied To OS Services
Os Service                              Patch
-------------------------------------------------------------------------
Solaris_8                               

Patches Applied To Clone Areas
Clone Area                              Patch
-------------------------------------------------------------------------
Solaris_8/sun4u          Patches In Spool Area
Os Rel Arch   Patch Id  Synopsis
----------------------------------------------------------------------------
8      sparc  111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr   
.
.
.
# /usr/sadm/bin/smosservice patch -- -m -U
Authenticating as user: root

Type /? for help, pressing <enter> accepts the default denoted by [ ]
Please enter a string value for: password :: 
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite
Login to starlite as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starlite 
was successful.

# /usr/sadm/bin/smosservice patch -- -P
Authenticating as user: root
.
.
.
Patches In Spool Area
Os Rel Arch   Patch Id  Synopsis
----------------------------------------------------------------------------
8      sparc  111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr   

Patches Applied To OS Services
Os Service                              Patch
----------------------------------------------------------------------------
Solaris_8                               

Patches Applied To Clone Areas
Clone Area                              Patch
----------------------------------------------------------------------------
Solaris_8/sun4u

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 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 Solaris OS 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 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 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 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 <<EOF
mail=
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 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