System Administration Guide: Basic Administration
  Buscar sólo este libro
Ver este libro:
Descargar este libro en PDF (2862 KB)

Chapter 7 Managing Diskless Clients (Tasks)

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


Note –

You cannot use the smosservice and the smdiskless commands on systems that have a ZFS root file system installed. This is a known issue with all Solaris releases that support the installation of a ZFS root file system.

You can quickly provision systems that run a UFS root file system or a ZFS root file system by using the Solaris Flash installation feature. For more information, see Installing a ZFS Root File System (Flash Archive Installation) in Solaris ZFS Administration Guide.


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:

  • The Solaris installation program doesn't prompt you to set up diskless client support. You must manually create an /export partition to support diskless clients. You create the /export partition during or after the installation process.

  • The /export partition must contain a minimum of 5 Gbytes, depending upon the number of clients supported. For specific information, see Disk Space Requirements for OS Servers.

  • The name service identified in the smosservice or smdiskless commands must match the primary name service identified in the /etc/nsswitch.conf file. If you don't specify a name service in the smdiskless or smosservice commands, the default name service is files.

    Use the -D option to the smosservice and smdiskless commands to specify a name server. For more information, see the smosservice(1M) and smdiskless(1M) man pages.

    Starting with the Solaris 10 8/07 release, the set_nfs4_domain script that was delivered in the Solaris 10 OS is no longer used to set the NFSv4 domain. To set the NFSv4 domain, add the nfs4_domain keyword to the diskless client's sysidcfg file, for example, server:/export/root/client/etc/sysidcfg .

    If the nfs4_domain keyword exists in the client system's sysidcfg file, the first boot of a diskless client sets the domain accordingly. Also, the OS server should be up and running, and the diskless client's NFSv4 domain setting must match the setting in the OS server's /var/run/nfs4_domain file.

    For more information, see Preconfiguring With the sysidcfg File in Solaris 10 Installation Guide: Network-Based Installations.

  • The OS server and the diskless client must be on the same subnet.

  • You cannot provide client services on a multiterabyte UFS file system, because OS and diskless client services cannot be added to a UFS file system that resides on an EFI-labeled disk.


    Note –

    Attempts to add OS and diskless client services to a UFS file system that resides on an EFI-labeled disk result in an erroneous insufficient disk space message similar to the following:


    The partition /export does not have enough free space.
    1897816 KB (1853.34 MB) additional free space required.
    Insufficient space available on
    /dev/dsk/c0t5d0s0 /export

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:

  • /export/Solaris_version /Solaris_version-instruction-set .all (symbolic link to /export/exec/Solaris_ version/Solaris_version-instruction-set .all)

  • /export/Solaris_version

  • /export/Solaris_version/var

  • /export/Solaris_version/opt

  • /export/share

  • /export/root/templates/Solaris_version

  • /export/root/clone

  • /export/root/clone/Solaris_version

  • /export/root/clone/Solaris_version/ machine-class

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

  • /export/root/diskless-client

  • /export/swap/diskless-client

  • /tftpboot/diskless-client-ipaddress-in-hex/export/dump/diskless-client (if you specify the -x dump option)


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.


Procedimientox86: 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_10

    The following are the possible platform options:

    Instruction Set 

    Machine Class 

    Solaris Version 

    sparc 

    sun4v 

    sun4u, sun4m, sun4d, and sun4c 

    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, Solaris 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 10 Installation Guide: Network-Based Installations.

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

    Use one of the following scripts:

    • CD 1 – /cdrom/cdrom0/Solaris_10/Tools/setup_install_server

    • Additional Solaris Software CDs – /cdrom/cdrom0/Solaris_10/Tools/add_to_install_server

    • Language CD – /cdrom/cdrom0/Solaris_10/Tools/add_to_install_server

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


    # mkdir /export/install/sol_10_x86
    # cd /cd_mount_point/Solaris_10/Tools
    
    # ./setup_install_server /export/install/sol_10_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 10 Installation Guide: Network-Based Installations, and Part III, 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_10_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.


ProcedimientoHow 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 10 Installation Guide: Network-Based Installations.

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

    Use one of the following scripts:

    • CD 1 – /cdrom/cdrom0/Solaris_10/Tools/setup_install_server

    • Additional Solaris Software CDs – /cdrom/cdrom0/Solaris_10/Tools/add_to_install_server

    • Language CD – /cdrom/cdrom0/Solaris_10/Tools/add_to_install_server

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


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


    /export/install/sparc_10
  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.


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

Procedimientox86: 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.01 ethernet-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.


ProcedimientoHow 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

Procedimientox86: 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 10 6/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:

  • Confirm that the name service used to add the diskless client and the OS services matches the primary name in the server's /etc/nsswitch.conf file.

  • Verify that the DHCP and tftp boot services are running.

  • Configure the system BIOS to boot the system from the network by enabling the PXE ROM option.

    Some PXE-capable network adapters have a feature that enables PXE boot if you type a particular keystroke in response to a brief boot-time prompt. See your hardware documentation for information about how to set the boot priority in the BIOS.

  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.

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

Before You Begin

Verify the following prerequisites on the OS server:

  • Confirm that the name service used to add the diskless client and the OS services matches the primary name in the server's /etc/nsswitch.conf file.

    Otherwise, the diskless client will not boot.

  • Confirm that the rpc.bootparamd daemon is running. If it is not running, start it.

  1. Boot the diskless client.


    ok boot net
    

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

ProcedimientoHow 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:

  • Establish the /export/diskless/Patches patch spool directory on an OS server.

  • Add patches to the patch spool directory. If the patch you are adding obsoletes an existing patch in the spool, the obsolete patch is moved to /export/diskless/Patches/Archive.

  • Delete patches from the patch spool directory.

  • List the patches in the patch spool directory.

  • Synchronize spooled patches out to clients. You must reboot each synchronized client for the client to recognize the patch update.


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:

  • Kernel patches are logged in the diskless client's /var/sadm/patch directory. To display kernel patches, type the following command on the diskless client:


    % patchadd –p
    

    Note –

    You must be logged in to the diskless client when you run this command. Running the patchadd -p command on the OS server displays kernel patches for the OS server only.


  • /usr patches are logged in the OS server's /export/Solaris_version/var/patch directory. A directory is created for each patch ID. To display /usr patches, type the following command on the OS server:


    % patchadd -S Solaris_version -p
    Patch: 111879-01 Obsoletes: Requires: Incompatibles: Packages: SUNWwsr

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

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

ProcedimientoHow 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:

  • Respond to client Reverse Address Resolution Protocol (RARP) requests

  • Respond to client bootparam requests

  • Mount a diskless client root (/) file system

Solution:

The following solutions apply in a files environment.

  • Verify that files is listed as the first source for hosts, ethers, and bootparams in the /etc/nsswitch.conf file on the OS server.

  • Verify that the client's IP address appears in the /etc/inet/hosts file.


    Note –

    If you are not running at least the Solaris 10 8/07 release, you must also verify that the client's IP address appears in the /etc/inet/ipnodes file.

    In this Solaris release, there is no longer two separate hosts files. The /etc/inet/hosts file is a single file that contains both IPv4 and IPv6 entries. You do not need to maintain IPv4 entries in two hosts files that always require synchronization. For backward compatibility, the /etc/inet/ipnodes file is replaced with a symbolic link of the same name to the /etc/inet/hosts file. For more information, see the hosts(4) man page.


  • Verify that the client's Ethernet address appears in the /etc/ethers file.

  • Verify that the /etc/bootparams file contains the following paths to the client's root (/) directory and swap areas.


    client root=os-server:/export/root/
    client swap=os-server:
    /export/swap/client 
    

    The swap size varies depending on whether you specify the -x swapsize option when you add the diskless client. If you specify the -x dump option when you add the diskless client, the following line is present.


    dump=os-server:/export/dump/client
     dumpsize=512

    The dump size varies depending on whether you specify the -x dumpsize option when you add the diskless client.

  • Verify that the OS server's IP address appears in the /export/root/ client/etc/inet/hosts file.

Problem:

The OS server fails to do the following:

  • Respond to client RARP requests

  • Respond to client bootparam requests

  • Mount a diskless client root (/) file system

Solution:

The following solutions apply in a name service environment.

  • Verify that both the OS server's and the client's Ethernet address and IP address are correctly mapped.

  • Verify that the /etc/bootparams file contains the paths to the client's root (/) directory and swap areas.


    client root=os-server:/export/
    root/client swap=os-server:/export/
    swap/client swapsize=24

    The swap size varies depending on whether you specify the -x swapsize option when you add the diskless client. If you specify the -x dump option when you add the diskless client, the following line is present:


    dump=os-server:/export/dump/
    client dumpsize=24

    The dump size varies depending on whether you specify the -x dumpsize option when you add the diskless client.

Problem:

Diskless client panics

Solution:

Verify the following:

  • The OS server's Ethernet address is correctly mapped to its IP address. If you physically moved a system from one network to another, you might have forgotten to remap the system's new IP address.

  • The client's host name, IP address, and Ethernet address do not exist in the database of another server on the same subnet that responds to the client's RARP, Trivial File Transfer Protocol (TFTP), or bootparam requests. Often, test systems are set up to install their OS from an install server. In these cases, the install server answers the client's RARP or bootparam request, returning an incorrect IP address. This incorrect address might result in the download of a boot program for the wrong architecture, or a failure to mount the client's root (/) file system.

  • The diskless client's TFTP requests are not answered by an install server (or previous OS server) that transfers an incorrect boot program. If the boot program is of a different architecture, the client immediately panics. If the boot program loads from a non-OS server, the client might obtain its root partition from the non-OS server and its /usr partition from the OS server. In this situation, the client panics if the root and /usr partitions are of conflicting architectures or versions.

  • If you are using both an install server and an OS server, verify that the following entry exists in the /etc/dfs/dfstab file.


    share -F nfs -o -ro 
    /export/exec/Solaris_version- \
    instruction-set.all/usr
    

    where version= 8, 9, 10, and instruction-set=sparc or i386.

  • Verify that the diskless client's root (/), /swap, and /dump (if specified) partitions have share entries:


    share -F nfs -o rw=client,root=client
     /export/root/client 
    share -F nfs -o rw=client,root=client /export/swap/
    client 
    share -F nfs -o rw=client,root=client /export/dump/
    client
    
  • On the OS server, type the following command to check which files are shared:


    % share
    

    The OS server must share /export/root/client and /export/swap/client-name (defaults), or the root, /swap, and /dump partitions that you specified when you added the diskless client.

    Verify that the following entries exist in the /etc/dfs/dfstab file:


    share -F nfs -o ro /export/exec/Solaris_version-
    instruction-set.all/usr
    share -F nfs -o rw=client,root=client /export/root/
    client
    share -F nfs -o rw=client,root=client /export/swap/
    client
    
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