Sun Microsystems, Inc.
  SunSolve Online suninfo :  Edit Account  
spacer
black dot
Simple |  Advanced |  Product |  Tips
black fade
spacer
Home   SunSolve Online  Document
  

Infodoc ID   Synopsis   Date
13328   Solaris 2.X -> 2.5 Jumpstart setup and troubleshooting tips PSD   14 Jun 2000

Description Top
Jumpstart Setup and Troubleshooting Product Support Document (PSD)

If you are new to network and system administration and would like
to know more about jumpstart in addition to what is in this document
please read "Automating Solaris Installations" A Custom Jumpstart
Guide by Paul Anthony Kasper and Alan L. McClellan.

Contents:

1) What is jumpstart?
2) Setting up up the Server
3) Adding clients
4) Check list 
5) Troubleshooting Techniques

Section 1:

What is jumpstart?

1a) Jumpstart is used to install new systems with preconfigured 
    software.

1b) Custom Jumpstart - Used to automatically configure and
    install systems; can be made completely "hands off."

Section 2: 

Setting up the server:

You must have an install server. If the install sever and the 
boot server are on different subnets, the boot server must be 
on the same subnet as the client.

1) On the server, insert the Solaris CD-ROM and 
    # cd /cdrom/cdrom0/s0 (for Solaris versions 2.5.1 and earlier)
   or
    # cd /cdrom/cdrom0/s0/Solaris_2.x/Tools (substitute 6 or 7 as required)
    # ./setup_install_server /export/install

    This assumes a running volume manager.
    The script might abort for the following reasons:

     a) Insufficient disk space.
     b) Cannot create /export/install.
     
If the install server is on a different subnet, set up a boot server:
   
Insert the solaris cdrom on the boot server and then
    # cd /cdrom/cdrom0/s0
    # ./setup_install_server -b /export/install sun4c

This will copy required kernel architecture information from the Solaris CD
image to the boot server's local disk.

You must have a name service so that you can setup automatic
system configuration such as geographic region, time zone, netmask value.

Creating a profile server:

This server provides all the custom JumpStart files for install clients
to use.

Do the following to create the profile server:

   a) Create a jumpstart directory on a server.
   b) Edit the /etc/dfs/dfstab file and share the jumpstart directory.
   c) Copy the sample custom jumpstart installation files into the jumpstart
      directory on the server.

2) Create profiles:

Sample installation profiles reside in the auto_install_sample directory
on the solaris CD image, do the following to create profiles:

   a) Create a file and give it a descriptive name.
   b) Add profile keywords and profile values to the profile.

Section 3:

Adding Clients

3) Update the system files or nameserver maps or tables:
   
   Use AdminSuite to add client hosts
    a) Select hostmanager.
    b) Select nameservice (nis, nis+, none).
    c) Select edit - add host.
    d) Leave remote install disabled.

     or

   Add the client to files, maps, or tables manually:

   a) /etc/ethers
      8:0:20:12:1f:34  clienthostname
   b) /etc/hosts
      129.131.111.58   clienthostname

4) Add Clients
  
   a) Run the add_install_client script on the install server with the -c option

   # cd /export/install
   # ./add_install_client -c server:/export/install/jumpstart clientname sun4c

   Run the add_install_client on the boot server if the install 
   server is on a different subnet 

   # cd /export/install
   # ./add_install_client -s server:/export/install -c \ 
    server:/export/install/jumpstart clientname sun4c

If you have more than one architecture, you can avoid using -c option
above by putting an asterisk (the wild card) entry in /etc/bootparams,
which allows all clients to access to jumpstart information
 
  * install_config=server:/export/install/jumpstart

What does add_install_client do?

  - Adds the client entry in the /etc/bootparams file.
 
  - Creates client boot file in the /tftpboot directory.
 
  - Enables in.tftpd daemon for booting sparc clients, modifies /etc/inetd.conf.
  
  - Stores the ethernet address of the install client /etc/ethers.
  
  - Stores the IP address and the hostname in /etc/hosts.
  
  - Updates nsswitch.conf file to specify the name service search path
    for the client.
 
  - Adds an entry to /etc/dfs/dfstab to share /export/install directory.

Making Jumpstart Non-Interactive ( automatic or "hands-off" )

If you want to make jumpstart non-interactive ( automatic ) then
perform these additional steps:
 
   NOTE: These steps are required if you want to make jumpstart hands-off.
         They are not required if you want an interactive jumsptart.

1) Create a jumpstart directory on the install server, which contains 
   all the files needed by clients.

   Use the sample directory from solaris cdrom.

   # cd /export/install 
   # cp -r auto_install_sample jumpstart

2) Create a custom jumpstart rules file.
   This is a text file that is created by using the rules keywords.
   Use the one on the Solaris cd as an example and change it
   if necessary.
   
   # cd /export/install/jumpstart
   # cp rules rules.orig
   # vi rules [ make changes as per your need ]
    
   Make sure you use the predefined keywords.
   For information on supported keywords see InfoDoc 12063 for model rules
   and platform names.

3) Create custom profile file or files.
   Profiles are text files used to define the installation configuration.
   
4) Create begin and finish scripts as needed.
   The begin script is a shell script for pre-install tasks.
   The finish script is a shell script for post-install tasks.
   # cd /export/install/jumpstart
   # cp finish finish.orig
   # vi finish  [ make changes as per your need ]
   See InfoDoc #11826 for a sample finish script to install patches.

5) Create a rules.ok file using ./check script.
   The check script runs a validity check on the rules file and creates rules.ok
   you can run it by
   # ./check -p /export/install
  
or

   # cd /export/install/jumpstart
   # ./check

   This validates the profile and rules files for syntax and, if no errors
   are found, creates rules.ok

6) Configure for "hands off" installation.
  
   Requires the name server switch file /etc/nsswitch.conf.
   NIS or NIS+ name service is required.
     
Section 4:

Check list: first things first

Have I done everything??

a) Create one or more install servers.
b) Create a boot server on the subnets.
c) Enable auto-configuration.
d) Create a profile server.
e) Create profiles.
f) Create begin and finish scripts(optional).
g) Create rules files.
h) Create a rules.ok file, execute the check script.
i) Add the install client information to the name server.
j) Boot the install client.


Section 5: Troubleshooting

Understanding the Network Boot Process:

Client                                 Server

ok boot net - install         

--------------------------------------------------------------------------|
                                                                          |
PROM broadcasts RARP request ---------> RARP server sends IP address      |
                             <---------  rarpd /etc/ethers                |
                                                                          |
PROM makes TFTP request      ---------> TFTP server sends inetboot code   |
                            <----------  in.tftpd /tftpboot/ipadd.arch    |
                                                                          |
INETBOOT sends WHOAMI       ----------> server sends hostname             |
request                     <----------  rpc.bootparamd /etc/hosts        |
                                                                          |
IBETBOOT sends GETFILE      ----------> Server sends servername and path  |
request                     <----------  rpc.bootparamd /etc/bootparams   |
                                                                          |
INETBOOT sends NFS mount    ----------> Server sends kernel               |
request                     <----------  rpc.mountd /etc/dfs/dfstab       |
                                         nfsd                             |
                                                                          |
-------------------------------------------------------------------------- 

The one best tool to use to troubleshoot jumpstart issues
is the snoop command.

Look at the manual pages for the command.
A couple of options that work well for debugging are:

  snoop -o snoop.out Client_Ethernet_Address

  use snoop -i snoop.out
  
  (View the file infodoc 11813 for more information).

The use of the Client_Ethernet_Address will eliminate any traffic not
addressed to or from the client in question. Additionally it will 
allow the viewing of the early portions of the boot process including
the initial RARP and loading of the inetboot program.

You can just use snoop without naming a system to capture all
network activity (more often more data than you'll need - although
you can limit the protocols monitored. Or, modify the "snoop all
activity" approach by naming one of the involved servers AND the
JumpStartClient to monitor the activity or lack of it between those
two systems only.

Also observe the boot messages for clues as to what may be happening.

a) Client does not boot.
   Look for the error message.
   boot net - install loads the inet boot code, check the server for:
   -ethernet entry in the ethers file, table or maps.
   -client entry /tftpboot directory has the correct IP address and 
architecture
      
 # ps -ef | grep in.tftpd
 
 if this daemon is not running, make sure tftpd is enabled in the
 /etc/inetd.conf file.
   
b) Client asks for hosts, time zone and netmasks information
    
   If you are using 

   NIS or NIS+ look at SRDB # 10247
   No nameservice look at infodoc # 16484

c) Time out ARP/RARP error during boot net - install

   See InfoDoc 11812, make sure network hardware is ok

   One helpful troubleshooting method is to, as superuser, kill
   the in.rarpd process running on the boot server and restart it
   as "/usr/sbin/in.rarpd -d".  If in.rarpd has any difficulties,
   informational (debug) messages will be presented on the boot
   server (which could also be the install/config server) console
   screen.

d) client will not autoinstall
   
   -Verify ethers or host files
   -Verify whether the correct server is responding; if not 
    you can remove the entries for the client on the server that
    is responding or bring the server down until the client starts to
    boot from the correct server.
   -Make sure you have a boot server on the same subnet as the client.
   -Make sure the files are shared properly on the server.

    # showmount -e
    # dfshares
    # unshareall
    # shareall

      	This way you can make sure all the files are shared as per
	/etc/dfs/dfstab. cat the /etc/dfs/dfstab file to see whether
	you see an entry for /export/install directory.

   -Check proper entry in the bootparams file.

   The "rpc.bootparamd" proceess, as was mentioned above for "in.rarpd",
   can be run in Debug mode.  On the boot server, as superuser, kill
   the then current "rpc.bootparam" process and restart it as
   "/usr/sbin/rpc.bootparamd -d".  If "rpc.bootparamd" encounters any
   difficulties, informational (debug) messages will be presented on the
   boot server (which could also be the install/config server) console
   screen.

e) Problems with finish script
   
   chroot: no such file or directory

   use the "-R" option when installing patches or using pkgadd.
   ( refer to SRDB 13135 ).

f) Patch install problems

   Make sure the script is correct. Some of the patches and packages
   cannot be installed using the finish script because some of these patches
   need the machine to be rebooted. Read the "README" file for the patches.

g) There are other troubleshooting tips on page 253 of the
   Automating Solaris Installations Guide.


Summary of other SRDB and InfoDoc articles under jumpstart:
(As this list keeps growing, you can always search for new articles)

10919 srdb Jumpstart fails to detect rules.ok
10952 srdb Jumpstart does not mount all file systems
12315 srdb Client does not configure hostname.le0 after jumpstart
11972 srdb Jumpstart boots interactive instead using rules.ok file
12195 srdb Jumpstart: Install client boots from wrong server
12018 srdb Jumpstart error:filename is not a valid Solaris 2.x install CDROM
11070 srdb Jumpstart gets stuck in configuring /dev
12019 srdb Jumpstart add_install_client Error:Unknown client "hostname"
12196 srdb jumpstart: install client doesn't boot, install server configured
12022 srdb No network boot server, unable to install the system
12040 srdb Requesting IP address
12171 srdb WARNING: getfile: RPC failed: error 5 (RPC timed out)
6383  srdb autoinstall does not use begin and finish script
11862 srdb System hangs during boot net - install

12112 infodoc Changes in Solaris 2.5
12139 infodoc Solaris 2.5 changes in service setup for clients
12308 infodoc How to (re)install jumpstart image on to disk
12063 infodoc Jumpstart model rules Platform Names and Groups      

Top


 
    
Copyright 1994-2000 Sun Microsystems, Inc., 901 San Antonio Road,
Palo Alto, CA 94303 USA. All rights reserved.
Terms of Use. Privacy Policy. Feedback