Previous Page
Next Page

JumpStart

Objectives:

Explain custom JumpStart configuration, including the boot, identification, configuration, and installation services.

  • Configure a JumpStart including implementing a JumpStart server; editing the sysidcfg, rules, and profile files; and establishing JumpStart software alternatives (setup, establishing alternatives, troubleshooting, and resolving problems).

There are two versions of JumpStart: JumpStart and custom JumpStart. JumpStart lets you automatically install the Solaris software on a SPARC-based system just by inserting the Solaris CD and powering on the system. You do not need to specify the boot command at the ok prompt. The software that is installed is specified by a default class file that is chosen based on the system's model and the size of its disks; you can't choose the software that is installed. For new SPARC systems shipped from Sun, this is the default method of installing the operating system when you first power on the system.

The custom JumpStart method of installing the operating system provides a way to install groups of similar systems automatically and identically. If you use the interactive method to install the operating system, you must interact with the installation program by answering various questions. At a large site with several systems that are to be configured exactly the same, this task can be monotonous and time consuming. In addition, there is no guarantee that each system is set up the same. Custom JumpStart solves this problem by providing a method to create sets of configuration files beforehand so that the installation process can use them to configure each system automatically.

Custom JumpStart requires up-front work, creating custom configuration files before the systems can be installed, but it's the most efficient way to centralize and automate the operating system installation at large enterprise sites. Custom JumpStart can be set up to be completely hands off.

The custom configuration files that need to be created for JumpStart are the rules and class files. Both of these files consist of several keywords and values and are described in this chapter.

Another file that is introduced in this chapter is the sysidcfg file, which can be used to preconfigure the system identification information and achieve a fully hands-off installation.

Table 14.1 lists the various commands that are introduced in this chapter.

Table 14.1. JumpStart Commands

Command

Description

setup_install_server

Sets up an install server to provide the operating system to the client during a JumpStart installation. This command is also used to set up a boot-only server when the -b option is specified.

add_to_install_server

A script that copies additional packages within a product tree on the Solaris 10 Software and Solaris 10 Languages CDs to the local disk on an existing install server.

add_install_client

A command that adds network installation information about a system to an install or boot server's /etc files so that the system can install over the network.

rm_install_client

Removes JumpStart clients that were previously set up for network installation.

check

Validates the information in the rules file.

pfinstall

Performs a dry run installation to test the class file.

patchadd -C

A command to add patches to the files in the miniroot (located in the Solaris_10/Tools/Boot directory) of an installation CD image created by setup_install_server. This facility enables you to patch Solaris installation commands and other miniroot-specific commands.


There are three main components to JumpStart:

  • Boot and Client Identification Services These services are provided by a networked boot server and provide the information that a JumpStart client needs to boot using the network.

  • Installation Services These are provided by a networked install server, which provides an image of the Solaris operating environment the JumpStart client uses as its source of data to install.

  • Configuration Services These are provided by a networked configuration server and provide information that a JumpStart client uses to partition disks and create file systems, add or remove Solaris packages, and perform other configuration tasks.

Note

Server Configurations At times we describe the boot server, the install server, and the configuration server as though they are three separate systems. The reality, however, is that most sites will have one system that performs all three functions. This is described in more detail in the section "The Install Server," later in this chapter.


Each of these components is described in this chapter. If any of these three components is improperly configured, the JumpStart clients can

  • Fail to boot.

  • Fail to find a Solaris Operating Environment to load.

  • Ask questions interactively for configuration.

  • Fail to partition disks, create file systems, and load the operating environment.

Preparing for a Custom JumpStart Installation

The first step in preparing a custom JumpStart installation is to decide how you want the systems at your site to be installed. Here are some questions that need to be answered before you begin:

  • Will the installation be an initial installation or an upgrade?

  • What applications will the system support?

  • Who will use the system?

  • How much swap space is required?

These questions will help you group the systems when you create the class and rules files later in this chapter.

Additional concerns to be addressed include what software packages need to be installed and what size the disk partitions need to be in order to accommodate the software. After you answer these questions, group systems according to their configuration (as shown in the example of a custom JumpStart near the end of this chapter).

The next step in preparing a custom JumpStart installation is to create the configuration files that will be used during the installation: the rules.ok file (a validated rules file) and a class file for each group of systems. The rules.ok file is a file that should contain a rule for each group of systems you want to install. Each rule distinguishes a group of systems based on one or more system attributes. The rule links each group to a class file, which is a text file that defines how the Solaris software is to be installed on each system in the group. Both the rules.ok file and the class files must be located in a JumpStart directory that you define.

The custom JumpStart configuration files that you need to set up can be located on either a diskette (called a configuration diskette) or a server (called a configuration server). Use a configuration diskette when you want to perform custom JumpStart installations on non-networked standalone systems. Use a configuration server when you want to perform custom JumpStart installations on networked systems that have access to the server. This chapter covers both procedures.

What Happens During a Custom JumpStart Installation?

This section provides a quick overview of what takes place during a custom JumpStart installation. Each step is described in detail in this chapter.

To prepare for the installation, you create a set of JumpStart configuration files, the rules and class files, on a server that is located on the same network as the client you are installing. Next, you set up the server to provide a startup kernel that is passed to the client across the network. This is called the boot server (or sometimes it is referred to as the startup server).

After the client starts up, the boot server directs the client to the JumpStart directory, which is usually located on the boot server. The configuration files in the JumpStart directory direct and automate the entire Solaris installation on the client.

To be able to start up and install the operating system on a client, you need to set up three servers: a boot server, an install server, and a configuration server. These can be three separate servers; however, in most cases, one server provides all of these services.

The Boot Server

The boot server, also called the startup server, is where the client systems access the startup files. This server must be on the local subnet (not across routers). Though it is possible to install systems over the network that are not on the same subnet as the install server, there must be a boot server that resides on the same subnet as the client.

When a client is first turned on, it does not have an operating system installed or an IP address assigned; therefore, when the client is first started, the boot server provides this information. The boot server running the RARP (Reverse Address Resolution Protocol) daemon, in.rarpd, looks up the Ethernet address in the /etc/ethers file, checks for a corresponding name in its /etc/hosts file, and passes the Internet address back to the client.

Note

Check rarpd Daemon rarpd is a daemon that is not always running. The inetd daemon is the network listener that starts rarpd automatically whenever a request is made. A corresponding entry for rarpd should exist in inetd.conf.


RARP is a method by which a client is assigned an IP address based on a lookup of its Ethernet address. After supplying an IP address, the server searches the /tftpboot directory for a symbolic link named for the client's IP address expressed in hexadecimal format. This link points to a boot program for a particular Solaris release and client architecture. For SPARC systems, the file name is <hex-IP address.architecture>, for example:

C009C864.SUN4U -> inetboot.sun4u.Solaris_10-1

The boot server uses the in.tftpd daemon to transmit the boot program to the client via trivial file transfer protocol (TFTP). The client runs this boot program to start up.

The boot program tries to mount the root file system. To do so, it issues the whoami request to discover the client's hostname. The boot server running the boot parameter daemon, rpc.bootparamd, looks up the hostname and responds to the client. The boot program then issues a getfile request to obtain the location of the client's root and swap space. The boot server responds with the information obtained from the /etc/bootparams file.

Once the client has its boot parameters, the boot program on the client mounts the / (root) file system from the boot server. The client loads its kernel and starts the init program. When the boot server is finished bootstrapping the client, it redirects the client to the configuration server.

The client searches for the configuration server using the bootparams information. The client mounts the configuration directory and runs sysidtool. The client then uses the bootparams information to locate and mount the installation directory where the Solaris image resides. The client then runs the suninstall program and installs the operating system.

For boot operations to proceed, the following files and directories must be properly configured on the boot server:

The following sections describe each file.

/etc/ethers

When the JumpStart client boots, it has no IP address, so it broadcasts its Ethernet address to the network using RARP. The boot server receives this request and attempts to match the client's Ethernet address with an entry in the local /etc/ethers file.

If a match is found, the client name is matched to an entry in the /etc/hosts file. In response to the RARP request from the client, the boot server sends the IP address from the /etc/hosts file back to the client. The client continues the boot process using the assigned IP address.

An entry for the JumpStart client must be created by editing the /etc/ethers file or using the add_install_client script described later in this chapter in the section titled "Setting Up Clients."

/etc/hosts

The /etc/hosts file was described in Chapter 8, "The Solaris Network Environment." The /etc/hosts file is the local file that associates the names of hosts with their IP addresses. The boot server references this file when trying to match an entry from the local /etc/ethers file in response to a RARP request from a client. In a name service environment, this file would be controlled by NIS. See Chapter 12, "Naming Services," for more information on how this file can be managed by NIS.

/etc/dfs/dfstab

The /etc/dfs/dfstab file lists local file systems to be shared to the network. This file is described in detail in Chapter 9, "Virtual File Systems, Swap, and Core Dumps."

/etc/bootparams

The /etc/bootparams file contains entries that network clients use for booting. JumpStart clients retrieve the information from this file by issuing requests to a server running the rpc.bootparamd program. See the section titled "Setting Up Clients" later in this chapter for more information on how this file is configured.

/tftpboot

/tftpboot is a directory that contains the inetboot.SUN4x.Solaris_10-1 file that is created for each JumpStart client when the add_install_client script is run.

The client's IP address is expressed in hexadecimal format. This link points to a boot program for a particular Solaris release and client architecture.

When booting over the network, the JumpStart client's boot PROM makes a RARP request, and when it receives a reply, the PROM broadcasts a TFTP request to fetch the inetboot file from any server that responds and executes it. See how this directory is configured in the section titled "Setting Up Clients."

Setting Up the Boot Server

The boot server is set up to answer RARP requests from clients using the add_install_client command. Before a client can start up from a boot server, the setup_install_server command is used to set up the boot server. If the same server is going to be used as a boot server and an install server, proceed to the next section titled "The Install Server."

To setup the boot server, follow the steps in Step by Step 14.1.

Note

Booting on a Separate Subnet Normally, the install server also provides the boot program for booting clients. However, the Solaris network booting architecture requires you to set up a separate boot server when the install client is on a different subnet than the install server. Here's the reason: SPARC install clients require a boot server when they exist on different subnets because the network booting architecture uses the reverse address resolution protocol (RARP). When a client boots, it issues a RARP request to obtain its IP address. RARP, however does not acquire the netmask number, which is required to communicate across a router on a network. If the boot server exists across a router, the boot will fail because the network traffic cannot be routed correctly without a netmask.


Step By Step 14.1: Setting Up the Boot Server

1.
On the system that is the boot server, log in as root. Ensure the system has an empty directory with approximately 350MB of available disk space.

2.
Insert the Solaris 10 Software CD 1 into the CD-ROM drive, allowing vold to automatically mount the CD. Change the directory to the mounted CD. Following is an example:

cd /cdrom/cdrom0/s0/Solaris_10/Tools

3.
Use the setup_install_server command to set up the boot server. The -b option copies just the startup software from the Solaris CD to the local disk. Enter this command:

./setup_install_server -b <boot_dir_path>

where -b specifies that the system is set up as a boot server and <boot_dir_path> specifies the directory where the CD image is to be copied. You can substitute any directory path, as long as that path is shared across the network.

For example, the following command copies the kernel architecture information into the /export/jumpstart directory:

./setup_install_server -b /export/jumpstart

The system responds with this:

Verifying target directory...
Calculating space required for the installation boot image
Copying Solaris_10 Tools hierarchy...
Copying Install Boot Image hierarchy...
Install Server setup complete


Note

Insufficient Disk Space The following error indicates that there is not enough room in the directory to install the necessary files. You'll need to either clean up files in that file system to make more room or choose a different file system:

ERROR: Insufficient space to copy Install Boot image
 362978 necessary -69372 available.


Note

Destination Must Be Empty The location in which you are trying to create the boot server must be empty. You'll see the following error if the target directory is not empty:

The target directory /export/jumpstart is not empty. Please choose\
 an empty directory or remove all files from the specified\
directory and run this program again.


If no errors are displayed, the boot server is now set up. This boot server will handle all boot requests on this subnet. A client can only boot to a boot server located on its subnet. If you have JumpStart clients on other subnets, you'll need to create a boot server for each of those subnets. The installation program will create a subdirectory named Solaris_10 in the <boot_dir_path> directory.

The Install Server

As explained in the previous section, the boot server and the install server are typically the same system. The exception is when the client on which Solaris 10 is to be installed is located on a different subnet than the install server. Then a boot server is required on that subnet.

The install server is a networked system that provides Solaris 10 CD images (or a single DVD image) from which you can install Solaris 10 on another system on the network. You can create an install server by copying the images on the Solaris installation media onto the server's hard disk. This chapter focuses on using CD images, but you should be aware that Solaris 10 is also available on a single DVD.

By copying these CD images to the server's hard disk, you enable a single install server to provide Solaris 10 CD images for multiple releases, including Solaris 10 CD images for different platforms. For example, a SPARC install server could provide the following:

  • Solaris 10 Software CD 1 CD image

  • Solaris 10 Software CD 2 CD image

  • Solaris 10 Software CD 3 CD image

  • Solaris 10 Software CD 4 CD image

  • Solaris 10 Languages CD image (this CD is optional)

To set up a server as a boot and installer server, complete Step by Step 14.2. This Step by Step assumes that all systems are on the same subnet, and the boot and install server are to be on the same system.

Step By Step 14.2: Setting Up a Server As a Boot and Install Server

1.
The first step is to copy the Solaris 10 Software CD images to the server by performing the following steps:

Insert the CD labeled "Solaris 10 Software CD 1" into the CD-ROM and allow vold to automatically mount the CD. Change to the Tools directory on the CD as follows:

cd /cdrom/cdrom0/s0/Solaris_10/Tools

2.
Use the setup_install_server command to install the software onto the hard drive. The syntax for the setup_install_server command is as follows:

./setup_install_server <install_dir_path>

<install_dir_path> is the path to which the CD images will be copied. This directory must be empty, and must be shared so that the JumpStart client can access it across the network during the JumpStart installation. Many system administrators like to put the CD images for the boot server and install server into /export/install and create a directory for each architecture being installed, such as sparc_10, or x86_10. This is because the install server could be used to hold multiple versions and multiple architectures. It's a personal preference; just be sure that the target directory is empty, shared, and has approximately 3GB of space available, if all four CD images and the Language CD image are to be copied.

To install the operating environment software into the /export/install/sparc_10 directory, issue the following command:

./setup_install_server /export/install/sparc_10

The system responds with:

Verifying target directory...
Calculating the required disk space for the Solaris_10 Product
Calculating space required for the installation boot image
Copying the CD image to disk. . .
Copying Install boot image hierarchy. . .
Install Server setup complete

3.
Eject the CD and insert the CD labeled "Solaris 10 Software CD 2" into the CD-ROM, allowing vold to automatically mount the CD.

Change to the Tools directory on the mounted CD as follows:

cd /cdrom/cdrom0/Solaris_10/Tools

4.
Run the add_to_install_server script to install the additional software into the <install_dir_path> directory as follows:

./add_to_install_server <install_dir_path>

For example, to copy the software into the /export/install/sparc_10 directory, issue the following command:

./add_to_install_server /export/install/sparc_10

The system will respond with the following messages:

The following Products will be copied to /export/install/sparc_10/\
Solaris_10/Product:

Solaris_2
If only a subset of products is needed enter Control-C \
and invoke ./add_to_install_server with the -s option.

Checking required disk space...

Copying Top Level Installer...
131008 blocks

Copying Tools Directory...
4256 blocks

Processing completed successfully.

After checking for the required disk space, the image is copied from CD to disk. When it's finished installing, repeat the process with the remaining CDs and then with the Solaris 10 Languages CD, if you are planning to support multiple languages.

After copying the Solaris CDs, you can use the patchadd -C command to patch the Solaris miniroot image on the install server's hard disk. This option only patches the miniroot. Systems that are installed will still have to apply recommended patches if they are required.


The Configuration Server

If you are setting up custom JumpStart installations for systems on the network, you have to create a directory on a server called a configuration directory. This directory contains all the essential custom JumpStart configuration files, such as the rules file, the rules.ok file, the class file, the check script, and the optional begin and finish scripts.

The server that contains a JumpStart configuration directory is called a configuration server. It is usually the same system as the install and boot server, although it can be a completely different server. The configuration directory on the configuration server should be owned by root and should have permissions set to 755.

To set up the configuration server, follow Step by Step 14.3.

Step By Step 14.3: Setting Up a Configuration Server

1.
Choose the system that acts as the server, and log in as root.

2.
Create the configuration directory anywhere on the server (such as /jumpstart).

3.
To be certain that this directory is shared across the network, edit the /etc/dfs/dfstab file and add the following entry:

share -F nfs -o ro,anon=0 /jumpstart

4.
Execute the svcadm enable network/nfs/server command. If the system is already an NFS server, you need only to type shareall and press Enter.

5.
Place the JumpStart files (that is, rules, rules.ok, and class files) in the /jumpstart directory. The rules, rules.ok, and class files are covered later in this section. Sample copies of these files can be found in the Misc/jumpstart_sample subdirectory of the location where you installed the JumpStart install server.


You can also use the add_install_client script, which makes an entry into the /etc/dfs/dfstab file as part of the script. The add_install_client script is described in the section titled "Setting Up Clients."

Setting Up a Configuration Diskette

An alternative to setting up a configuration server is to create a configuration diskette (provided that the systems that are to be installed have diskette drives). If you use a diskette for custom JumpStart installations, the essential custom JumpStart files (the rules file, the rules.ok file, and the class files) must reside in the root directory on the diskette. The diskette that contains JumpStart files is called a configuration diskette. The custom JumpStart files on the diskette should be owned by root and should have permissions set to 755. See Step by Step 14.4 to set up a configuration disk.

Step By Step 14.4: Setting Up a Configuration Disk

1.
Format the disk by typing the following:

fdformat -U

2.
If your system uses Volume Manager, insert the disk, and it will be mounted automatically.

3.
Create a file system on the disk by issuing the newfs command:

newfs /vol/dev/aliases/floppy0

(The newfs command is covered in Chapter 1, "Managing File Systems.")

4.
Eject the disk by typing the following:

eject floppy

5.
Insert the formatted disk into the disk drive.


You have completed the creation of a disk that can be used as a configuration disk. Now you can create the rules file and create class files on the configuration disk to perform custom JumpStart installations.

The Rules File

The rules file is a text file that should contain a rule for each group of systems you want to install automatically. Each rule distinguishes a group of systems based on one or more system attributes and links each group to a class file, which is a text file that defines how the Solaris software is installed on each system in the group.

After deciding how you want each group of systems at your site to be installed, you need to create a rules file for each specific group of systems to be installed. The rules.ok file is a validated version of the rules file that the Solaris installation program uses to perform a custom JumpStart installation.

After you create the rules file, validate it with the check script by changing to the /export/jumpstart directory and issuing the check command. If the check script runs successfully, it creates the rules.ok file. During a custom JumpStart installation, the Solaris installation program reads the rules.ok file and tries to find the first rule that has a system attribute matching the system being installed. If a match occurs, the installation program uses the class file specified in the rule to install the system.

A sample rules file for a Sun Ultra is shown next. You'll find a sample rules file on the install server located in the <install_dir_path>/Solaris_10/Misc/jumpstart_sample directory, where <install_dir_path> is the directory that was specified using the setup_install_server script when the install server was set up. For the examples in this chapter, the install directory is /export/install/sparc_10.

Notice that almost all the lines in the file are commented out. These are simply instructions and sample entries to help the system administrator make the correct entry. The last, uncommented line is the rule we added for the example. The syntax is discussed later in this chapter. Each line in the code table has a rule keyword and a valid value for that keyword. The Solaris installation program scans the rules file from top to bottom. If the program matches an uncommented rule keyword and value with a known system, it installs the Solaris software specified by the class file listed in the class file field. Following is the sample rules file:

#
#       @(#)rules 1.12 94/07/27 SMI
#
# The rules file is a text file used to create the rules.ok file for
# a custom JumpStart installation. The rules file is a lookup table
# consisting of one or more rules that define matches between system
# attributes and profiles.
#
# This example rules file contains:
#   o syntax of a rule used in the rules file
#   o rule_keyword and rule_value descriptions
#   o rule examples
#
# See the installation manual for a complete description of the rules file
#
#
##########################################################################
#
# RULE SYNTAX:
#
# [!]rule_keyword rule_value [&& [!]rule_keyword rule_value]... \
begin profile finish
#
#    "[ ]"  indicates an optional expression or field
#    "..."  indicates the preceding expression may be repeated
#     "&&"  used to "logically AND" rule_keyword and rule_value pairs \
together
#      "!"  indicates negation of the following rule_keyword
#
#  rule_keyword       a predefined keyword that describes a general system
#                     attribute. It is used with the rule_value to match a
#                     system with the same attribute to a profile.
#
#  rule_value  a value that provides the specific system attribute
#                     for the corresponding rule_keyword. A rule_value can
#                     be text or a range of values (NN-MM).
#                     To match a range of values, a system's value must be
#                     greater than or equal to NN and less than or equal \
to MM.
#
#  begin       a file name of an optional Bourne shell script
#              that will be executed before the installation begins.
#              If no begin script exists, you must enter a minus sign(-)
#              in this field.
#
#  profile     a file name of a text file used as a template by the
#              custom JumpStart installation software that defines how
#              to install Solaris on a system.
#
#  finish      a file name of an optional Bourne shell script
#              that will be executed after the installation completes.
#              If no finish script exists, you must enter a minus sign (-)
#              in this field.
#
# Notes:
# 1.        You can add comments after the pound sign (#) anywhere on a \
line.
# 2.        Rules are matched in descending order: first rule through \
the last rule.
# 3.        Rules can be continued to a new line by using the backslash\
 (\) before
#           the carriage return.
# 4.        Don't use the "*" character or other shell wildcards, \
because the rules
#           file is interpreted by a Bourne shell script.
#
#
##########################################################################
#
# RULE_KEYWORD AND RULE_VALUE DESCRIPTIONS
#
#
#        rule_keyword   rule_value Type     rule_value Description
# ------------    ---------------       ----------------------
#        any   minus sign (-) always matches
#        arch   text   system's architecture type
#        domainname    text   system's domain name
#        disksize      text range    system's disk size
#                      disk device name (text)
#                      disk size (MBytes range)
#        hostname      text   system's host name
#        installed     text text     system's insta lled version of Solaris
#                      disk device name (text)
#                      OS release (text)
#       karch text    system's kernel architecture
#       memsize       range  system's memory size (MBytes range)
#       model text    system's model number
#       network       text   system's IP address
#       totaldisk     range  system's total disk size (MBytes range)
#
#
##########################################################################
#
# RULE EXAMPLES
#
# The following rule matches only one system:
#

#hostname sample_host    -       host_class      set_root_pw

# The following rule matches any system that is on the 924.222.43.0 \
network
# and has the sun4u kernel architecture:
#    Note: The backslash (\) is used to continue the rule to a new line.

#network 924.222.43.0 && \
#        karch sun4c    -       net924_sun4u     -

# The following rule matches any sparc system with a c0t3d0 disk that is
# between 400 to 600 MBytes and has Solaris 2.1 installed on it:

#arch sparc && \
#              disksize c0t3d0 400-600 && \
#              installed c0t3d0s0 solaris_2.1 - upgrade  -

#
# The following rule matches all x86 systems:

#arch i386   x86-begin   x86-class   -

#
# The following rule matches any system:

#any -   -   any_machine  -
#
# END RULE EXAMPLES
#
#
karch sun4u    -    basic_prof    -

Table 14.2 describes the syntax that the rules file must follow.

Table 14.2. Rule Syntax

Field

Description

!

Use this before a rule keyword to indicate negation.

[ ]

Use this to indicate an optional expression or field.

...

Use this to indicate that the preceding expression might be repeated.

rule_keyword

A predefined keyword that describes a general system attribute, such as a hostname (hostname) or the memory size (memsize). It is used with rule_value to match a system with the same attribute to a profile. The complete list of rule_keywords is described in Table 14.3.

rule_value

Provides the specific system attribute value for the corresponding rule_keyword. See Table 14.3 for the list of rule_values.

&&

Use this to join rule keyword and rule value pairs in the same rule (a logical AND). During a custom JumpStart installation, a system must match every pair in the rule before the rule matches.

<begin>

A name of an optional Bourne shell script that can be executed before the installation begins. If no begin script exists, you must enter a minus sign (-) in this field. All begin scripts must reside in the JumpStart directory. See the section "begin and finish Scripts" for more information.

<profile>

The name of the class file, a text file that defines how the Solaris software is installed on the system if a system matches the rule. The information in a class file consists of class file keywords and their corresponding class file values. All class files must reside in the JumpStart directory. Class files are described in the section "Creating Class Files."

<finish>

The name of an optional Bourne shell script that can be executed after the installation completes. If no finish script exists, you must enter a minus sign (-) in this field. All finish scripts must reside in the JumpStart directory. See the section "begin and finish Scripts" for more information.


Rules File Requirements

The rules file must have the following:

  • At least one rule

  • The name "rules"

  • At least a rule keyword, a rule value, and a corresponding profile

  • A minus sign (-) in the begin and finish fields if there is no entry

The rules file should be saved in the JumpStart directory, should be owned by root, and should have permissions set to 644.

The rules file can contain any of the following:

  • A comment after the pound sign (#) anywhere on a line. If a line begins with a #, the entire line is a comment. If a # is specified in the middle of a line, everything after the # is considered a comment.

  • Blank lines.

  • Rules that span multiple lines. You can let a rule wrap to a new line, or you can continue a rule on a new line by using a backslash (\) before pressing Enter.

Table 14.3 describes the rule_keywords and rule_values that were introduced earlier.

Table 14.3. rule keyword and rule value Descriptions

Rule Keyword

Rule Value

Description

any

Minus sign (-)

The match always succeeds.

arch

<processor_type>

See the "Platform" keyword for the valid values for processor_type.

platform SPARC x86

<processor_type> sparc i386

Matches a system's processor type. The uname -p command reports the system's processor type.

domainname

<domain_name>

Matches a system's domain name, which controls how a name service determines information. If you have a system already installed, the domainname command reports the system's domain name.

disksize

< disk_name > <size_range> <disk_name>. A disk name in the form c?t?d?, such as c0t0d0, or the special word rootdisk. If rootdisk is used, the disk to be matched is determined in the following order: 1. The disk that contains the preinstalled boot image (a new SPARC-based system with factory JumpStart installed). 2. The c0t0d0s0 disk, if it exists. 3. The first available disk (searched in kernel probe order). 4. <size_range> The size of disk, which must be specified as a range of MB (xxxx).

Matches a system's disk (in MB), such as disksize c0t0d0 3276865536. This example tries to match a system with a c0t0d0 disk that is between 32768 and 65536MB (3264GB). Note: When calculating size_range, remember that a megabyte equals 1,048,576 bytes.

hostaddress

<IP_address>

Matches a system's IP address.

hostname

<host_name>

Matches a system's host name. If you have a system already installed, the uname -n command reports the system's host name.

installed

<slice> <version> <slice> A disk slice name in the form c?t?d?s?, such as c0t0d0s5, or the special words any or rootdisk. If any is used, all the system's disks will try to be matched (in kernel probe order). If rootdisk is used, the disk to be matched is determined in the following order: 1. The disk that contains the preinstalled boot image (a new SPARC-based system with factory JumpStart installed). 2. The disk c0t0d0s0, if it exists. 3. The first available disk (searched in kernel probe order). 4. <version> A version name, Solaris_2.x, or the special words any or upgrade. If any is used, any Solaris or SunOS release is matched. If upgrade is used, any upgradeable Solaris 2.1 or greater release is matched.

Matches a disk that has a root file system corresponding to a particular version of Solaris software. Example: installed c0t0d0s0 Solaris_9. This example tries to match a system that has a Solaris 9 root file system on c0t0d0s0.

karch

<platform_group>. Valid values are sun4m, sun4u, i86pc, and prep (the name for PowerPC systems).

Matches a system's platform group. If you have a system already installed, the arch - k command or the uname -m command reports the system's platform group.

memsize

<physical_mem> The value must be a range of MB (xxxx) or a single MB value.

Matches a system's physical memory size (in MB). Example: memsize 256-1024 The example tries to match a system with a physical memory size between 256 and 1GB. If you have a system already installed, the output of the prtconf command (line 2) reports the system's physical memory size.

model

<platform_name>

Matches a system's platform name. Any valid platform name will work. To find the platform name of an installed system, use the uname -i command or the output of the prtconf command (line 5). Note: If the <platform_name> contains spaces, you must enclose it in single quotes ('). Example: 'SUNW, Ultra-5_10'.

network

<network_num>

Matches a system's network number, which the Solaris installation program determines by performing a logical AND between the system's IP address and the subnet mask. Example: network 193.144.2.1. This example tries to match a system with a 193.144.2.0 IP address (if the subnet mask were 255.255.255.0).

osname

<solaris_2.x>

Matches a version of Solaris software already installed on a system. Example: osname Solaris_9. This example tries to match a system with Solaris 9 already installed.

totaldisk

<size_range>. The value must be specified as a range of MB (xxxx).

Matches the total disk space on a system (in MB). The total disk space includes all the operational disks attached to a system. Example: totaldisk 32768-65536. This example tries to match a system with a total disk space between 32GB and 64GB.


During a custom JumpStart installation, the Solaris installation program attempts to match the system being installed to the rules in the rules.ok file in orderthe first rule through the last rule.

Rules File Matches

A rule match occurs when the system being installed matches all the system attributes defined in the rule. As soon as a system matches a rule, the Solaris installation program stops reading the rules.ok file and begins installing the software based on the matched rule's class file.

Here are a few sample rules:

karch sun4u  -  basic_prof  -

The previous example specifies that the Solaris installation program should automatically install any system with the sun4u platform group based on the information in the basic_prof class file. There is no begin or finish script.

hostname pyramid2   -   ultra_class   -

The rule matches a system on the network called pyramid2. The class file to be used is named ultra_class. No begin or finish script is specified:

network 192.168.0.0 && !model 'SUNW,Ultra-5_10' - net_class set_root_passwd

The third rule matches any system on the network that is not an Ultra 5 or Ultra 10. The class file to be used is named net_class, and the finish script to be run is named set_root_passwd.

any - - generic_class -

The last example matches any system. The class file to be used is named generic_class and there is no begin or finish script.

Validating the Rules File

Before the rules file can be used, you must run the check script to validate that this file is set up correctly. If all the rules are valid, the rules.ok file is created.

To validate the rules file, use the check script provided in the <install_dir_path>/Solaris_10/Misc/jumpstart_sample directory on the install server.

Copy the check script to the directory containing your rules file and run the check script to validate the rules file:

cd /jumpstart
./check [-p path] [-r file_name]

<install_dir_path> is the directory that was specified using the setup_install_server script when the install server was set up.

The check script options are described in Table 14.4.

Table 14.4. Check Script Options

Option

Description

-p <path>

Validates the rules file by using the check script from a specified Solaris 10 CD image, instead of the check script from the system you are using. <path> is the pathname to a Solaris installation image on a local disk or a mounted Solaris CD. Use this option to run the most recent version of check if your system is running a previous version of Solaris.

-r <file_name>

Specifies a rules file other than a file named "rules." Using this option, you can test the validity of a rule before integrating it into the rules file. With this option, a rules.ok file is not created.


When you use check to validate a rules file, the following things happen:

  1. The rules file is checked for syntax. check makes sure that the rule keywords are legitimate, and the <begin>, <class>, and <finish> fields are specified for each rule.

  2. If no errors are found in the rules file, each class file specified in the rules file is checked for syntax. The class file must exist in the JumpStart installation directory and is covered in the next section.

  3. If no errors are found, check creates the rules.ok file from the rules file, removing all comments and blank lines, retaining all the rules, and adding the following comment line to the end:

    version=2 checksum=<num>

    As the check script runs, it reports that it is checking the validity of the rules file and the validity of each class file. If no errors are encountered, it reports the following:

    The custom JumpStart configuration is ok.

The following is a sample session that uses check to validate a rules and class file. I named the rules file "rulestest" temporarily, the class file is named "basic_prof" and I am using the -r option. With -r, the rules.ok file is not created, and only the rulestest file is checked.

# /export/jumpstart/install/Solaris_10/Misc/jumpstart_sample/check -r \
/tmp/rulestest
Validating /tmp/rulestest...
Validating profile basic_prof...

Error in file " /tmp/rulestest", line 113
                any - - any_maine -
ERROR: Profile  missing: any_maine

In this example, the check script found a bad option. "any_machine" had been incorrectly entered as "any_maine." The check script reported this error.

In the next example, the error has been fixed, we copied the file from rulestest to /export/jumpstart/rules, and reran the check script:

#cp rulestest /export/jumpstart/rules
#/export/jumpstart/install/Solaris_10/Misc/jumpstart_sample/check
Validating rules...
Validating profile basic_prof...
Validating profile any_machine...
The custom JumpStart configuration is ok.

As the check script runs, it reports that it is checking the validity of the rules file and the validity of each class file. If no errors are encountered, it reports The custom JumpStart configuration is ok. The rules file is now validated.

After the rules.ok file is created, verify that it is owned by root and that it has permissions set to 644.

begin and finish Scripts

A begin script is a user-defined Bourne shell script, located in the JumpStart configuration directory on the configuration server, specified within the rules file, that performs tasks before the Solaris software is installed on the system. You can set up begin scripts to perform the following tasks:

  • Backing up a file system before upgrading

  • Saving files to a safe location

  • Loading other applications

Output from the begin script goes to /var/sadm/system/logs/begin.log.

Caution

Beware of /a Be careful not to specify something in the script that would prevent the mounting of file systems to the /a directory during an initial or upgrade installation. If the Solaris installation program cannot mount the file systems to /a, an error occurs, and the installation fails.


begin scripts should be owned by root and should have permissions set to 744.

In addition to begin scripts, you can also have finish scripts. A finish script is a user-defined Bourne shell script, specified within the rules file, that performs tasks after the Solaris software is installed on the system but before the system restarts. finish scripts can be used only with custom JumpStart installations. You can set up finish scripts to perform the following tasks:

  • Move saved files back into place.

  • Add packages or patches.

  • Set the system's root password.

Output from the finish script goes to /var/sadm/system/logs/finish.log.

When used to add patches and software packages, begin and finish scripts can ensure that the installation is consistent between all systems.

Creating class Files

A class file is a text file that defines how to install the Solaris software on a system. Every rule in the rules file specifies a class file that defines how a system is installed when the rule is matched. You usually create a different class file for every rule; however, the same class file can be used in more than one rule.

A class file consists of one or more class file keywords (they are described in the following sections). Each class file keyword is a command that controls one aspect of how the Solaris installation program installs the Solaris software on a system. Use the vi editor (or any other text editor) to create a class file in the JumpStart configuration directory on the configuration server. You can create a new class file or edit one of the sample profiles located in /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample on the Solaris 10 Software CD 1. The class file can be named anything, but it should reflect the way in which it installs the Solaris software on a system. Sample names are basic_install, eng_profile, and accntg_profile.

A class file must have the following:

  • The install_type keyword as the first entry

  • Only one keyword on a line

  • The root_device keyword if the systems being upgraded by the class file have more than one root file system that can be upgraded

A class file can contain either of the following:

  • A comment after the pound sign (#) anywhere on a line. If a line begins with a #, the entire line is a comment. If a # is specified in the middle of a line, everything after the # is considered a comment.

  • Blank lines.

The class file is made up of keywords and their values. The class file keywords and their respective values are described in the following sections.

archive_location

This keyword is used when installing a Solaris Flash Archive and specifies the source of the Flash Archive. The syntax for this option is shown here:

archive_location retrieval type location

The retrieval_type parameter can be one of the following:

  • NFS

  • HTTP or HTTPS

  • FTP

  • Local Tape

  • Local Device

  • Local File

The syntax for a Flash Archive located on an NFS server is as follows:

archive_location nfs server_name:/path/filename retry n

Where retry n specifies the maximum number of attempts to mount the archive.

The syntax for a Flash Archive located on an HTTP or HTTPS server is as follows:

archive_location http://server_name:port/path/filename <optional keywords>

archive_location https://server_name:port/path/filename <optional keywords>

Table 14.5 lists the optional keywords that can be used with this option:

Table 14.5. HTTP Server Optional Keywords

Keyword

Description

auth basic user password

If the HTTP server is password protected then a username and password must be supplied to access the archive.

timeout min

Specifies the maximum time, in minutes, that is allowed to elapse without receiving data from the HTTP server.

proxy host:port

Specifies a proxy host and port. The proxy option can be used when you need to access an archive from the other side of a firewall. The port value must be supplied.


The syntax for a Flash Archive located on an FTP server is as follows:

archive_location ftp://username:password@server_name:port/path/filename <optional
keywords>

Table 14.6 lists the optional keywords that can be used with this option:

Table 14.6. FTP Server Optional Keywords

Keyword

Description

timeout min

Specifies the maximum time, in minutes, that is allowed to elapse without receiving data from the FTP server.

proxy host:port

Specifies a proxy host and port. The proxy option can be used when you need to access an archive from the other side of a firewall. The port value must be supplied.


The syntax for a Flash Archive located on local tape is as follows:

archive_location local_tape device position

where device specifies the device path of the tape drive and position specifies the file number on the tape where the archive is located. The position parameter is useful because you can store a begin script or a sysidcfg file on the tape prior to the actual archive.

The syntax for a Flash Archive located on a local device is as follows:

archive_location local_device device path/filename file_system_type

The syntax for a Flash Archive located in a local file is as follows:

archive_location local_file path/filename

All that is needed for this option is to specify the full pathname to the Flash Archive file.

backup_media

backup_media defines the medium that is used to back up file systems if they need to be re-allocated during an upgrade because of space problems. If multiple tapes or disks are required for the backup, you are prompted to insert these during the upgrade. Here is the backup_media syntax:

backup_media <type> <path>

type can be one of the keywords listed in Table 14.7.

Table 14.7. backup_media Keywords

Keyword

Description

local_tape

Specifies a local tape drive on the system being upgraded. The <path> must be the character (raw) device path for the tape drive, such as /dev/rmt/0.

local_diskette

Specifies a local diskette drive on the system being upgraded. The <path> is the local diskette, such as /dev/rdiskette0. The diskette must be formatted.

local_filesystem

Specifies a local file system on the system being upgraded. The <path> can be a block device path for a disk slice or the absolute <path> to a file system mounted by the /etc/vfstab file. Examples of <path> are /dev/dsk/c0t0d0s7 and /home.

remote_filesystem

Specifies an NFS file system on a remote system. The <path> must include the name or IP address of the remote system (host) and the absolute <path> to the file system. The file system must have read/write access. A sample <path> is sparc1:/home.

remote_system

Specifies a directory on a remote system that can be reached by a remote shell (rsh). The system being upgraded must have access to the remote system. The <path> must include the name of the remote system and the absolute path to the directory. If a user login is not specified, the login is tried as root. A sample <path> is bcalkins@sparcl:/home.


Here are some examples of class file keywords being used:

backup_media local_tape /dev/rmt/0
backup_media local_diskette /dev/rdiskette0
backup_media local_filesystem /dev/dsk/c0t3d0s7
backup_media local_filesystem /export
backup_media remote_filesystem sparc1:/export/temp
backup_media remote_system bcalkins@sparc1:/export/temp

backup_media must be used with the upgrade option only when disk space re-allocation is necessary.

boot_device

boot_device designates the device where the installation program installs the root file system and consequently what the system's startup device is. The eeprom value also lets you update the system's EEPROM if you change its current startup device so that the system can automatically start up from the new startup device.

Here's the boot_device syntax:

boot_device <device> <eeprom>

The device and eeprom values are described in Table 14.8.

Table 14.8. boot_device Keywords

Keyword

Description

<device>

Specifies the startup device by specifying a disk slice, such as c0t1d0s0 (c0d1 for x86 systems). It can be the keyword existing, which places the root file system on the existing startup device, or the keyword any, which lets the installation program choose where to put the root file system.

<eeprom>

Specifies whether you want to update the system's EEPROM to the specified startup device. <eeprom> specifies the value update, which tells the installation program to update the system's EEPROM to the specified startup device, or preserve, which leaves the startup device value in the system's EEPROM unchanged. An example for a Sparc system is boot_device c0t1d0s0 update.


Note

X86 Preserve Only For x86 systems, the <eeprom> parameter must be preserve.


The installation program installs the root file system on c0t1d0s0 and updates the EEPROM to start up automatically from the new startup device. For more information on the boot device, see Chapter 3, "Perform System Boot and Shutdown Procedures."

bootenv_createbe

bootenv_createbe enables an empty, inactive boot environment to be created at the same time as installing the Solaris OS. You only need to create a / file system; other file system slices are reserved, but not populated. This kind of boot environment is installed with a Solaris flash archive, at which time the other reserved file system slices are created.

Here's the bootenv createbe syntax:

bootenv createbe bename new_BE_name filesystem mountpoint:device:fs_options

The bename and filesystem values are described in Table 14.9.

Table 14.9. bootenv createbe Keywords

Keyword

Description

bename

Specifies the name of the new boot environment to be created. It can be no longer than 30 characters, all alphanumeric, and must be unique on the system.

filesystem

Specifies the type and number of filesystems to be created in the new boot environment. The mountpoint can be any valid mount point, or a hyphen (-) for swap, and fs_options can be swap or ufs. You cannot use Solaris Volume Manager volumes or Veritas Volume Manager objectsthe device must be in the form /dev/dsk/cwtxdysz.


client_arch

client_arch indicates that the operating system server supports a platform group other than its own. If you do not specify client_arch, any diskless client that uses the operating system server must have the same platform group as the server. client_arch can be used only when system_type is specified as server. You must specify each platform group that you want the operating system server to support.

Here's the client_arch syntax:

client_arch karch_value [karch_value...]

Valid values for <karch_value> are sun4u and i86pc.

Here's an example:

client_arch sun4u

client_root

client_root defines the amount of root space, in MB, to allocate for each diskless client. If you do not specify client_root in a server's profile, the installation software automatically allocates 15MB of root space per client. The size of the client root area is used in combination with the num_clients keyword to determine how much space to reserve for the /export/root file system. You can only use the client_root keyword when system_type is specified as server.

Here's the syntax:

client_root <root_size>

<root_size> is specified in MB. Here's an example:

client_root 20

Note

Don't Waste Space When allocating root space, 20MB is an adequate size. 15MB is the minimum size required. Any more than 20MB is just wasting disk space.


client_swap

client_swap defines the amount of swap space, in MB, to allocate for each diskless client. If you do not specify client_swap, 32MB of swap space is allocated. Physical memory plus swap space must be a minimum of 32MB. If a class file does not explicitly specify the size of swap, the Solaris installation program determines the maximum size that the swap file can be, based on the system's physical memory. The Solaris installation program makes the size of swap no more than 20 percent of the disk where it resides, unless there is free space left on the disk after the other file systems are laid out.

Here's the syntax:

client_swap <swap_size>

<swap_size> is specified in MB.

Here's an example:

client_swap 64

This example specifies that each diskless client has a swap space of 64MB.

cluster

cluster designates which software group to add to the system. The software groups are listed in Table 14.10.

Table 14.10. Software Groups

Software Group

group_name

Reduced network support

SUNWCrnet

Core

SUNWCreq

End-user system support

SUNWCuser

Developer system support

SUNWCprog

Entire distribution

SUNWCall

Entire distribution plus OEM support

SUNWCXall


You can specify only one software group in a profile, and it must be specified before other cluster and package entries. If you do not specify a software group with cluster, the end-user software group, SUNWCuser, is installed on the system by default.

Here is cluster's syntax:

cluster <group_name>

Here's an example:

cluster SUNWCall

This example specifies that the Entire Distribution group should be installed.

The cluster keyword can also be used to designate whether a cluster should be added to or deleted from the software group that was installed on the system. add and delete indicate whether the cluster should be added or deleted. If you do not specify add or delete, add is set by default.

Here's the syntax:

cluster <cluster_name> [add | delete]

<cluster_name> must be in the form SUNWCname.

dontuse

dontuse designates one or more disks that you don't want the Solaris installation program to use. By default, the installation program uses all the operational disks on the system. <disk_name> must be specified in the form c?t?d? or c?d?, such as c0t0d0.

Here's the syntax:

dontuse disk_name [disk_name...]

Here's an example:

dontuse c0t0d0 c0t1d0

Note

dontuse and usedisk You cannot specify the usedisk keyword and the dontuse keyword in the same class file because they are mutually exclusive.


filesys

filesys can be used to create local file systems during the installation by using this syntax:

filesys <slice> <size> [file_system] [optional_parameters]

The values listed in Table 14.11 can be used for <slice>.

Table 14.11. <slice> Values

Value

Description

any

This variable tells the installation program to place the file system on any disk.

c?t?d?s? or c?d??z

The disk slice where the Solaris installation program places the file system, such as c0t0d0s0.

rootdisk.sn

The variable that contains the value for the system's root disk, which is determined by the Solaris installation program. The sn suffix indicates a specific slice on the disk.


The values listed in Table 14.12 can be used for <size>.

Table 14.12. <size> Values

Value

Description

num

The size of the file system in MB.

existing

The current size of the existing file system.

auto

The size of the file system is determined automatically, depending on the selected software.

all

The specified slice uses the entire disk for the file system. When you specify this value, no other file systems can reside on the specified disk.

free

The remaining unused space on the disk is used for the file system.

<start>:<size>

The file system is explicitly partitioned. <start> is the cylinder where the slice begins, and <size> is the number of cylinders for the slice.


file_system is an optional field when slice is specified as any or c?t?d?s?. If file_system is not specified, unnamed is set by default, but you can't specify the optional_parameters value.

The values listed in Table 14.13 can be used for file_system.

Table 14.13. file_system Values

Value

Description

<mount_pt_name>

The file system's mount point name, such as /opt.

<swap>

The specified slice is used as swap.

<overlap>

The specified slice is defined as a representation of the whole disk. overlap can be specified only when <size> is existing, all, or start:size.

<unnamed>

The specified slice is defined as a raw slice, so the slice does not have a mount point name. If file_system is not specified, unnamed is set by default.

<ignore>

The specified slice is not used or recognized by the Solaris installation program. This can be used to ignore a file system on a disk during an installation so that the Solaris installation program can create a new file system on the same disk with the same name. ignore can be used only when existing partitioning is specified.


In the following example, the size of swap is set to 512MB, and it is installed on c0t0d0s1:

filesys                  c0t0d0s1 512 swap

In the next example, /usr is based on the selected software, and the installation program determines what disk to put it on when you specify the any value:

filesys                    any auto /usr

The optional_parameters field can be one of the options listed in Table 14.14.

Table 14.14. optional_parameters Options

Option

Description

preserve

The file system on the specified slice is preserved. preserve can be specified only when size is existing and slice is c?t?d?s?.

<mount_options>

One or more mount options that are added to the /etc/vfstab entry for the specified <mount_pt_name>.


A new option to the filesys keyword in Solaris 10 is mirror, which facilitates the creation of RAID-1 volumes as part of the custom JumpStart installation. This facility allows the creation of mirrored filesystems. You can issue this keyword more than once to create mirrors for different file systems.

Note

Only on Initial Install The filesys mirror keyword is only supported for initial installations.


The syntax for the filesys mirror keyword is as follows:

Filesys mirror [:name]slice [slice] size file_system optional_parameters

Table 14.15 details the available options for the filesys mirror keyword.

Table 14.15. filesys mirror Options

Option

Description

name

An optional keyword allowing you to name the mirror. The naming convention follows metadevices in Solaris Volume Manager, in the format dxxx (where xxx is a number between 0 and 127); for example d50. If a name is not specified then the custom JumpStart program assigns one for you.

slice

Specifies the disk slice where the custom JumpStart program places the file system you want to duplicate with the mirror.

size

The size of the file system in Megabytes.

file_system

Specifies the file system you are mirroring. This can be any file system, including root (/) or swap.

optional parameters

One or more mount options that are added to the /etc/vfstab entry for the specified <mount_pt_name>.


filesys can also be used to set up the installed system to mount remote file systems automatically when it starts up. You can specify filesys more than once. The following syntax describes using filesys to set up mounts to remote systems:

filesys <server>:<path> <server_address> <mount_pt_name> [mount_options]

The filesys keywords are described in Table 14.16.

Table 14.16. filesys Remote Mount Keywords

Keyword

Description

<server>:

The name of the server where the remote file system resides. Don't forget to include the colon (:).

<path>

The remote file system's mount point name.

<server_address>

The IP address of the server specified in <server>:<path>. If you don't have a name service running on the network, this value can be used to populate the /etc/hosts file with the server's IP address, but you must specify a minus sign (-).

<mount_pt_name>

The name of the mount point where the remote file system will be mounted.

[mount_options]

One or more mount options that are added to the /etc/vfstab entry for the specified <mount_pt_name>. If you need to specify more than one mount option, the mount options must be separated by commas and no spaces. An example is ro,quota.


Here's an example:

filesys zeus:/export/home/user1 192.9.200.1 /home ro,bg,intr

forced_deployment

This keyword forces a Solaris Flash differential archive to be installed on a clone system even though the clone system is different than what the software expects. This option deletes files to bring the clone system to an expected state, so it should be used with caution.

install_type

install_type specifies whether to perform the initial installation option or the upgrade option on the system. install_type must be the first class file keyword in every profile.

Following is the syntax:

install_type [initial_install | upgrade]

Select one of initial_install, upgrade, flash_install or flash_update.

Here's an example:

install_type initial_install

geo

The geo keyword followed by a locale designates the regional locale or locales you want to install on a system (or to add when upgrading a system). The syntax is geo <locale>

Values you can specify for locale are listed in Table 14.17.

Table 14.17. locale Values

Value

Description

N_Africa

Northern Africa, including Egypt

C_America

Central America, including Costa Rica, El Salvador, Guatemala, Mexico, Nicaragua, and Panama

N_America

North America, including Canada and the United States

S_America

South America, including Argentina, Bolivia, Brazil, Chile, Colombia, Ecuador, Paraguay, Peru, Uruguay, and Venezuela

Asia

Asia, including Japan, Republic of Korea, Republic of China, Taiwan, and Thailand

Ausi

Australasia, including Australia and New Zealand

C_Europe

Central Europe, including Austria, Czech Republic, Germany, Hungary, Poland, Slovakia, and Switzerland

E_Europe

Eastern Europe, including Albania, Bosnia, Bulgaria, Croatia, Estonia, Latvia, Lithuania, Macedonia, Romania, Russia, Serbia, Slovenia, and Turkey

N_Europe

Northern Europe, including Denmark, Finland, Iceland, Norway, and Sweden

S_Europe

Southern Europe, including Greece, Italy, Portugal, and Spain

W_Europe

Western Europe, including Belgium, France, Great Britain, Ireland, and the Netherlands

M_East

Middle East, including Israel


Refer to the "International Language Environments Guide" in the "Solaris 10 International Language Support Collection" for a complete listing of locale values. This guide is available on the Solaris 10 documentation CD, or online at http://docs.sun.com.

Here's an example where the locale specified is S_America:

geo S_America

layout_constraint

layout_constraint designates the constraint that auto-layout has on a file system if it needs to be re-allocated during an upgrade because of space problems. layout_constraint can be used only for the upgrade option when disk space re-allocation is required.

With layout_constraint, you specify the file system and the constraint you want to put on it.

Here's the syntax:

layout_constraint <slice> <constraint> [minimum_size]

The <slice> field specifies the file system disk slice on which to specify the constraint. It must be specified in the form c?t?d?s? or c?d?s?.

Table 14.18 describes the options for layout_constraint.

Table 14.18. layout_constraint Options

Option

Description

changeable

Auto-layout can move the file system to another location and can change its size.

You can change the file system's size by specifying the minimum_size value. When you mark a file system as changeable and minimum_size is not specified, the file system's minimum size is set to 10 percent greater than the minimum size required. For example, if the minimum size for a file system is 1000MB, the changed size would be 1010MB. If minimum_size is specified, any free space left over (the original size minus the minimum size) is used for other file systems.

movable

Auto-layout can move the file system to another slice on the same disk or on a different disk, and its size stays the same.

available

Auto-layout can use all the space on the file system to re-allocate space. All the data in the file system is then lost. This constraint can be specified only on file systems that are not mounted by the /etc/vfstab file.

collapse

Auto-layout moves (collapses) the specified file system into its parent file system.

You can use this option to reduce the number of file systems on a system as part of the upgrade. For example, if the system has the /usr and /usr/openwin file systems, collapsing the /usr/openwin file system would move it into /usr (its parent).

minimum_size

This value lets you change the size of a file system by specifying the size you want it to be after auto-layout re-allocates. The size of the file system might end up being more if unallocated space is added to it, but the size is never less than the value you specify. You can use this optional value only if you have marked a file system as changeable. The minimum size cannot be less than the file system needs for its existing contents.


The following are some examples:

layout_constraint c0t0d0s3 changeable 1200

The file system c0t0d0s3 can be moved to another location, and its size can be changed to more than 1200MB but no less than 1200MB.

layout_constraint c0t0d0s4 movable

The file system on slice c0t0d0s4 can move to another disk slice, but its size stays the same:

layout_constraint c0t2d0s1 collapse

c0t2d0s1 is moved into its parent directory to reduce the number of file systems.

local_customization

This keyword is used when installing Solaris Flash archives and can be used to create custom scripts to preserve local configurations on a clone system before installing a Solaris Flash Archive. The syntax for this option is

local_customization local_directory

The local_directory parameter specifies the directory on the clone system where any scripts are held.

locale

locale designates which language or locale packages should be installed for the specified locale_name. A locale determines how online information is displayed for a specific language or region, such as date, time, spelling, and monetary value. Therefore, if you want English as your language but you also want to use the monetary values for Australia, you would choose the Australia locale value (en_AU) instead of the English language value (C).

The English language packages are installed by default. You can specify a locale keyword for each language or locale you need to add to a system.

Following is the locale syntax:

locale locale_name

Here's an example:

locale es

This example specifies Spanish as the language package you want installed.

metadb

The metadb keyword allows you to create Solaris Volume Manager state database replicas as part of the custom JumpStart installation. You can use this keyword more than once to create state database replicas on several disk slices.

The syntax for this keyword is shown here:

metadb slice [size size-in-blocks] [count number-of-replicas]

Table 14.19 describes the options for metadb.

Table 14.19. metadb Options

Option

Description

slice

The disk slice on which you want to place the state database replica. It must be in the format cwtxdysz.

size size-in-blocks

The number of blocks specifying the size of the replica. If this option is omitted, a default size of 8192 is allocated.

count number-of-replicas

The number of replicas to create. If this option is omitted, then 3 replicas are created by default.


no_content_check

This keyword is used when installing Solaris Flash Archives. When specified, it ignores file-by-file validation, which is used to ensure that a clone system is a duplicate of the master system. Only use this option if you are sure the clone is a duplicate of the master system, because files are deleted to bring the clone to an expected state if discrepancies are found.

no_master_check

This keyword is used when installing Solaris Flash Archives. When specified, it ignores the check to verify that a clone system was built from the original master system. Only use this option if you are sure the clone is a duplicate of the original master system.

num_clients

When a server is installed, space is allocated for each diskless client's root (/) and swap file systems. num_clients defines the number of diskless clients that a server supports. If you do not specify num_clients, five diskless clients are allocated. You can only use this option when system_type is set to server.

Following is the syntax:

num_clients client_num

Here's an example:

num_clients 10

In this example, space is allocated for 10 diskless clients.

package

package designates whether a package should be added to or deleted from the software group that is installed on the system. add or delete indicates the action required. If you do not specify add or delete, add is set by default.

Following is the syntax:

package package_name [add [retrieval_type location] | delete]

The package_name must be in the form SUNWname.

The retrieval_type parameter can be one of the following:

  • NFS

  • HTTP or HTTPS

  • Local Device

  • Local File

The syntax for a package located on an NFS server is as follows:

package package_name add nfs server_name:/path retry n

where retry n specifies the maximum number of attempts to mount the directory.

The syntax for a package located on an HTTP or HTTPS server is as follows:

package package_name add http://server_name:port/path <optional keywords>
package package_name add https://server_name:port/path <optional keywords>

Table 14.20 lists the optional keywords that can be used with this option.

Table 14.20. HTTP package Optional Keywords

Keyword

Description

timeout min

Specifies the maximum time, in minutes, that is allowed to elapse without receiving data from the HTTP server.

proxy host:port

Specifies a proxy host and port. The proxy option can be used when you need to access a package from the other side of a firewall. The port value must be supplied.


The syntax for a package located on a local device is as follows:

package package_name add local_device device path file_system_type

The syntax for a package located in a local file is as follows:

package package_name add local_file path

All that is needed for this option is to specify the full pathname to the directory containing the package.

Here's an example:

package SUNWxwman add nfs server1:/var/spool/packages retry 5

In this example, SUNWxwman (X Window online man pages) is being installed on the system from a location on a remote NFS server.

partitioning

partitioning defines how the disks are divided into slices for file systems during the installation. If you do not specify partitioning, the default is set.

Following is the syntax:

partitioning default|existing|explicit

The partitioning options are described in Table 14.21.

Table 14.21. partitioning Options

Option

Description

default

The Solaris installation program selects the disks and creates the file systems where the specified software is installed. Except for any file systems specified by the filesys keyword, rootdisk is selected first. Additional disks are used if the specified software does not fit on rootdisk.

existing

The Solaris installation program uses the existing file systems on the system's disks. All file systems except /, /usr, /usr/openwin, /opt, and /var are preserved. The installation program uses the last mount point field from the file system superblock to determine which file system mount point the slice represents. When you specify the filesys class file keyword with partitioning, existing must be specified.

explicit

The Solaris installation program uses the disks and creates the file systems specified by the filesys keywords. If you specify only the root (/) file system with the filesys keyword, all the Solaris software is installed in the root file system. When you use the explicit class file value, you must use the filesys class file keyword to specify which disks to use and what file systems to create.


root_device

root_device designates the system's root disk.

Following is the syntax:

root_device slice

Here's an example:

root_device c0t0d0s0

Note

Specifying Mirrors If you are upgrading a RAID-1 (mirror) volume then the slice you specify should be one side of the mirror. The other side will be upgraded automatically.


system_type

system_type defines the type of system being installed. If you do not specify system_type in a class file, standalone is set by default.

Following is the syntax:

system_type [standalone | server]

Here's an example:

system_type server

usedisk

usedisk designates one or more disks that you want the Solaris installation program to use when the partitioning default is specified. By default, the installation program uses all the operational disks on the system. disk_name must be specified in the form c?t?d? or c?d?, such as c0t0d0. If you specify the usedisk class file keyword in a class file, the Solaris installation program uses only the disks that you specify.

Following is the syntax:

usedisk disk_name [disk_name]

Here's an example:

usedisk c0t0d0 c0t1d0

Note

dontuse and usedisk You cannot specify the usedisk keyword and the dontuse keyword in the same class file because they are mutually exclusive.


Testing Class Files

After you create a class file, you can use the pfinstall command to test it. Testing a class file is sometimes called a dry run installation. By looking at the installation output generated by pfinstall, you can quickly determine whether a class file will do what you expect. For example, you can determine whether a system has enough disk space to upgrade to a new release of Solaris before you actually perform the upgrade.

To test a class file for a particular Solaris release, you must test it within the Solaris environment of the same release. For example, if you want to test a class file for Solaris 10, you have to run the pfinstall command on a system running Solaris 10.

To test the class file, change to the JumpStart directory that contains the class file and type the following:

/usr/sbin/install.d/pfinstall -d

or type the following:

/usr/sbin/install.d/pfinstall -D

Caution

Install or Test? Without the -d or -D option, pfinstall actually installs the Solaris software on the system by using the specified class file, and the data on the system is overwritten.


Following is the syntax for pfinstall:

/usr/sbin/install.d/pfinstall [-D|-d] <disk_config> [-c <path>] <profile>

The pfinstall options are described in Table 14.22.

Table 14.22. pfinstall Options

Option

Description

-D

Tells pfinstall to use the current system's disk configuration to test the class file against.

-d <disk_config>

Tells pfinstall to use a disk configuration file, <disk_config>, to test the class file against. If the <disk_config> file is not in the directory where pfinstall is run, you must specify the path. This option cannot be used with an upgrade class file (an install-type upgrade). You must always test an upgrade class file against a system's disk configuration using the -D option. A disk configuration file represents a disk's structure. It describes a disk's bytes per sector, flags, and slices.

See the example following this table of how to create the <disk_config> file.

-c <path>

Specifies the path to the Solaris CD image. This is required if the Solaris CD is not mounted on /cdrom. For example, use this option if the system is using Volume Manager to mount the Solaris CD.

<profile>

Specifies the name of the class file to test. If class file is not in the directory where pfinstall is being run, you must specify the path.


You can create a <disk_config> file by issuing the following command:

prtvtoc /dev/rdsk/<device_name> > <disk_config>

/dev/rdsk/<device_name> is the device name of the system's disk. <device_name> must be in the form c?t?d?s2 or c?d?s2. <disk_config> is the name of the disk configuration file to contain the redirected output.

Note

Identifying Disks c?t?d?s2 designates a specific target for a SCSI disk, and c?d?s2 designates a non-SCSI disk.


Here's an example:

prtvtoc /dev/rdsk/c0t0d0s2 > test

The file named "test" created by this example would be your <disk_config> file, and it would look like this:

* /dev/rdsk/c0t0d0s2 partition map
*
* Dimensions:
*     512 bytes/sector
*     126 sectors/track
*       4 tracks/cylinder
*     504 sectors/cylinder
*    4106 cylinders
*    4104 accessible cylinders
*
* Flags:
*    1: unmountable
*   10: read-only
*
*                      First   Sector Last
*Partition  Tag   Flags  Sector   Count    Sector   Mount Directory
     0      2     00     0        268632   268631   /
     1      3     01     268632   193032   461663
     2      5     00     0        2068416  2068415
     3      0     00     461664   152712    614375  /export
     4      0     00     614376   141624    755999  /export/swap
     6      4     00     756000   1312416   068415  /usr

Note

Multiple Disks If you want to test installing Solaris software on multiple disks, concatenate single disk configuration files and save the output to a new file.


The following example tests the ultra_class class file against the disk configuration on a Solaris 10 system on which pfinstall is being run. The ultra_class class file is located in the /export/jumpstart directory, and the path to the Solaris CD image is specified because Volume Management is being used.

In addition, if you want to test the class file for a system with a specific system memory size, set SYS_MEMSIZE to the specific memory size in MB as follows:

SYS_MEMSIZE=memory_size
export SYS_MEMSIZE
cd /export/jumpstart
/usr/sbin/install.d/pfinstall -D -c /cdrom/cdrom0/s0 ultra_class

The system tests the class file and displays several pages of results. Look for the following message, which indicates that the test was successful:

Installation complete
Test run complete. Exit status 0.

sysidcfg File

When a JumpStart client boots for the first time, the booting software first tries to obtain system identification information (such as the system's hostname, IP address, locale, timezone, and root password) from a file named sysidcfg and then from the name service database. If you're not using a name service, you'll use this file to answer system identification questions during the initial part of the installation. If you're using a name service, you'll want to look over the section titled "Setting Up JumpStart in a Name Service Environment."

You'll use the sysidcfg file to answer system identification questions during the initial part of the installation. If the JumpStart server provides this information, the client bypasses the initial system identification portion of the Solaris 10 installation process. Without the sysidcfg file, the client displays the appropriate interactive dialog to request system identification information. You must create a unique sysidcfg file for every system that requires different configuration information.

The sysidcfg file can reside on a shared NFS directory or the root (/) directory on a UFS file system. It can also reside on a PCFS file system located on a diskette. Only one sysidcfg file can reside in a directory or on a diskette. The location of the sysidcfg file is specified by the -p argument to the add_install_client script used to create a JumpStart client information file.

Creating a sysidcfg file requires the system administrator to specify a set of keywords in the sysidcfg file to preconfigure a system. There are two types of keywords you use in the sysidcfg file: independent and dependent. Here's an example illustrating independent and dependent keywords:

name_service=NIS {domain_name=pyramid.com name_server=server(192.168.0.1)}

In this example, name_service is the independent keyword, while domain_name and name_server are the dependent keywords.

Note

Dependent Keywords Enclose all dependent keywords in curly braces {} to tie them to their associated independent keyword. Values can optionally be enclosed in single (') or double quotes (").


To help explain sysidcfg keywords, we'll group them in categories and describe each of them in detail.

Name Service, Domain Name, and Name Server Keywords

The following keywords are related to the name service you will be using.

The name_service=<value> keyword is assigned one of five values which specify the name service to be used: NIS, NIS+, LDAP, DNS, and NONE. These are described below:

  • NIS or NIS+ If you are using NIS as your name service, for example, then specify the following:

    name_service=NIS

    For the NIS and NIS+ values, additional keywords are specified, which are

    domain_name=<value>

    The domain <value> in the previous line is the domain name such as pyramid.com.

    name_server=<value>

    The name_server <value> is the hostname or IP address for the name server. For the name_server <value>, you can specify up to three IP addresses for the name_server. For example:

    name_server=192.168.0.1,192.168.0.2,192.168.0.3
  • DNS If you are using DNS for the name_service <value>, specify the following:

    name_service=DNS

    Then you'll need to specify the following additional dependent keywords:

    domain_name=<value>

    Enter the domain name for the domain_name <value>. For example, if the domain name is pyramid.com, specify it as follows:

    domain_name=pyramid.com

    For the name_server <value>, you can specify up to three IP addresses for the name_server. For example:

    name_server=192.168.0.1,192.168.0.2,192.168.0.3

    The search option adds the values to the search path to use for DNS queries. Specify the following:

    search=<value>

    where <value> is the search entry, which cannot exceed 250 characters. Here's a sample DNS search entry:

    search=pyramid.com,east.pyramid.com,west.pyramid.com
  • LDAP If you are using LDAP for the name_service <value>, specify the following:

    name_service=LDAP

    Then you'll need to specify the following additional dependent keywords:

    domain_name=<value>

    Enter the domain name for the domain_name <value>. For example, if the domain name is pyramid.com, specify it as follows:

    domain_name=pyramid.com

    The profile parameter can also be specified to identify an LDAP profile to use. Specify this as follows:

    profile=<value>

    where <value> is the profile name.

    The profile server identifies the IP address of the profile server from which the LDAP profile can be obtained. Specify this as follows:

    profile_server=<value>

    where <value> is the IP address of the profile server.

    Here's an example LDAP entry with its dependent keywords:

    name_service_LDAP
    {domain_name=west.pyramid.com
    profile=default
    profile_server=192.168.0.100}
Network Related Keywords

Network related keywords relate to the network interface to be used. Specify this item as follows:

network_interface=<value>

Specify a <value> for the interface to be configured. You can enter a specific interface, such as hme0, or you can enter NONE (if there are no interfaces to configure) or PRIMARY (to select the primary interface) as follows:

network_interface=hme0

If you are not using DHCP, the dependent keywords for a PRIMARY interface are as follows:

hostname=<hostname>
ip_address=<ip_address>
netmask=<netmask value>
default_route=<ip_address>
protocol_ipv6=<yes or no>

For example, if your primary network interface is named hme0, here's a sample sysidcfg file:

network_interface=hme0
{primary hostname=client1
ip_address=192.168.0.10
netmask=255.255.255.0
default_route=192.168.0.1
protocol_ipv6=no}

If you are using DHCP, the only keywords available are the following:

dhcp protocol_ipv6=<yes or no>

For example, here's a sample entry:

network_interface=hme0
{primary dhcp protocol_ipv6=no}

Whether using DHCP or not, the protocol_ipv6 keyword is optional.

Note

Multiple Interfaces Allowed You can now enter multiple network interfaces into the sysidcfg file; just specify a separate network_interface entry for each one to be included.


Setting the Root Password

The root password keyword is

root_password=<encrypted passwd>

The value for <encrypted passwd> is taken from the /etc/shadow file. For example, an entry might look like this:

root_password=XbcjeAgl8jLeI

The following is the security related keyword:

security_policy=<value>

Where <value> is either KERBEROS or NONE.

When specifying the KERBEROS value, you'll need to also specify the following dependent keywords:

default_realm=<fully qualified domain name>
admin_server=<fully qualified domain name>
kdc=<value>

<value> can list a maximum of three key distribution centers (KDCs) for a security_policy keyword. At least one is required. Here's an example using the security_policy keyword:

security_policy=kerberos
{default_realm=pyramid.com
admin_server=krbadmin.pyramid.com
kdc=kdc1.pyramid.com,kdc2.pyramid.com}

Setting the System Locale, Terminal, Time Zone, and Time Server

The keyword used to set the system locale is

system_locale=<value>

<value> is an entry from the /usr/lib/locale directory. The following example sets the value to English:

system_locale=en_US

The keyword to set the terminal type is as follows:

terminal=<terminal_type>

<terminal_type> is an entry from the /usr/share/lib/terminfo database. The following example sets the terminal type to vt100:

terminal=vt100

The keyword to set the time zone is as follows:

timezone=<timezone>

<timezone> is an entry from the /usr/share/lib/zoneinfo directory. The following entry sets the time zone to Eastern Standard Time:

timezone=EST

The keyword to set the time server is as follows:

timeserver=<value>

<value> can be LOCALHOST, HOSTNAME, or IP_ADDRESS. The following example sets the time server to be the localhost:

timeserver=localhost

The following rules apply to keywords in the sysidcfg file:

  • Keywords can be in any order.

  • Keywords are not case sensitive.

  • Keyword values can be optionally enclosed in single quotes (').

  • Only the first instance of a keyword is valid; if you specify the same keyword more than once, the first keyword specified will be used.

The following is a sample sysidcfg file, located in the configuration directory named /export/jumpstart:

system_locale=en_US
timezone=EST
timeserver=localhost
terminal=vt100
name_service=NONE
security_policy=none
root_password=XbcjeAgl8jLeI
network_interface=hme0 {primary protocol_ipv6=no netmask=255.255.255.0}

Setting Up JumpStart in a Name Service Environment

As stated in the previous section, you can use the sysidcfg file to answer system identification questions during the initial part of installation regardless of whether a name service is used. When the sysidcfg file is used with the NIS naming service, identification parameters such as locale and time zone can be provided from the name service. The sysidcfg file necessary for installing a JumpStart client on a network running the NIS name service is typically much shorter, and a separate sysidcfg file for each client is unnecessary.

You'll use the /etc/locale, /etc/timezone, /etc/hosts, /etc/ethers, and /etc/netmasks files as the source for creating NIS databases to support JumpStart client installations. See Chapter 12, "Naming Services," for more information on NIS and how to create NIS maps.

Setting Up Clients

Now you need to set up the clients to install over the network. After setting up the /export/jumpstart directory and the appropriate files, use the add_install_client command on the install server to set up remote workstations to install Solaris from the install server. The command syntax for the add_install_client command is as follows:

add_install_client [-e <ethernet_addr>] [-i <ip_addr>] \
[-s <install_svr:/dist>] [-c <config_svr:/config_dir>] \
[-p <sysidcfg_svr/sysid_config_dir>] <host_name> <platform group>

add_install_client -d [-s <install_svr:/dist>] [-c <config_svr:/config_dir>] \
[-p <sysidcfg_svr/sysid_config_dir>] [-t install_boot_image_path] \
<platform_name> <platform group>

The add_install_client options are described in Table 14.23.

Table 14.23. add_install_client Options

Option

Description

-d

Specifies that the client is to use DHCP to obtain the network install parameters. This option must be used for PXE clients to boot from the network.

-e <ethernet_addr>

Specifies the Ethernet address of the install client and is necessary if the client is not defined in the name service.

-i <ip_addr>

Specifies the IP address of the install client and is necessary if the client is not defined in the name service.

-s <install_svr:/dist>

Specifies the name of the install server (install_svr) and the path to the Solaris 10 operating environment distribution (/dist). This option is necessary if the client is being added to a boot server.

-p < sysidcfg_svr/ sysid_config_dir>

Specifies the configuration server (sysidcfg_svr) and the path to the sysidcfg file (sysid_config_dir).

-t < install_boot_image_path>

This option allows you to specify an alternate miniroot.

<host_name>

The hostname for the install client.

-c <config_svr:/config_dir>

Specifies the configuration server (config_svr) and path (/config_dir) to the configuration directory.

<platform_name>

Specifies the platform group to be used. Determine the platform group of the client by running uname -i. For an ultra10 box, this would be set to SUNW,Ultra-5_10.

<platform_group>

Specifies the client's architecture of the systems that use <servername> as an install server.


For additional options to the add_install_client command, see the Solaris online manual pages.

In Step by Step 14.5, you'll create a JumpStart client that will boot from a system that is configured as both the boot and install server. In addition, the entire Solaris 10 media is copied to the local disk.

Step By Step 14.5: Creating a JumpStart Client

Note

Example Setup In the following steps, the following associations have been made in the examples:

Install server nameultra5

Distribution directory/export/jumpstart/install

Configuration server nameultra5

Configuration directory/export/jumpstart/config

Boot server nameultra5

Install clientclient1

Install client's MAC address8:0:20:21:49:25

Client architecturesun4u


1.
On the install server, change to the directory that contains the installed Solaris 10 Operating Environment image as follows:

cd /export/jumpstart/install/Solaris_10/Tools

2.
Create the JumpStart client using the add_install_client script found in the local directory as follows:

./add_install_client -s ultra5:/export/jumpstart/install -c ultra5:
/export/jumpstart/config -p ultra5:/jumpstart -e 8:0:20:21:49:25 \
-i 192.168.1.106 client1 sun4u

The system responds with

Adding Ethernet number for client1 to /etc/ethers
Adding "share -F nfs -o ro,anon=0 /export/jumpstart/install" to \
/etc/dfs/dfstab
making /tftpboot
enabling tftp in /etc/inetd.conf
updating /etc/bootparams
copying inetboot to /tftpboot

The add_install_client script automatically made entries into the following files and directory:

/etc/ethers
8:0:20:21:49:25  client1
/etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/jumpstart/install
/etc/bootparams
client1  root=ultra5:/export/jumpstart/Solaris_10/Tools/Boot \
install=ultra5:
/export/jumpstart/install boottype=:in sysid_\
config=ultra5:/export/jumpstart/config
install_config=ultra5:/export/jumpstart rootopts=:rsize=32768

/tftpboot directory
lrwxrwxrwx    1 root     other    26 Jun 19 16:11 C0A8016A -> \
inetboot.SUN4U.Solaris_10-1
lrwxrwxrwx    1 root     other    26 Jun 19 16:11 C0A8016A.SUN4U ->\
inetboot.SUN4U.Solaris_10-1
-rwxr-xr-x    1 root     other     158592 Jun 19 16:11 \
inetboot.SUN4U.Solaris_10-1
-rw-r--r--    1 root     other   317 Jun 19 16:11 rm.192.168.1.106\
lrwxrwxrwx    1 root     other     1 Jun 19 16:11  tftpboot -> .

3.
Use the rm_install_client command to remove a JumpStart client's entries and configuration information from the boot server as follows:

./rm_install_client client1

The system responds with

removing client1 from bootparams
removing /etc/bootparams, since it is empty
removing /tftpboot/inetboot.SUN4U.Solaris_10-1
removing /tftpboot
disabling tftp in /etc/inetd.conf


Tip

Know your config files Make sure you are familiar with the differences between the rules file, a class file, and the sysidcfg file. It is quite common to get an exam question that displays the contents of one of them and asks the candidate to identify which one it is.


Troubleshooting JumpStart

The most common problems encountered with custom JumpStart involve the setting up of the network installation, or booting the client. This section describes briefly some of the more popular errors and what to do if you are faced with them.

Installation Setup

When running the add_install_client command to set up a new JumpStart client, you might get the following message:

Unknown client "hostname"

The probable cause of this error message is that the client does not have an entry in the hosts file (or table if using a name service).

Make sure the client has an entry in the hosts file, or table, and rerun the add_install_client command.

When you have setup the JumpStart Install server, make sure the relevant directories are shared correctly. It is a common problem to share the file systems at the wrong level, so that the table of contents file cannot be found when the client tries to mount the remote file system.

Client Boot Problems

The following error message can appear if the Ethernet address of the JumpStart client has been specified incorrectly:

Timeout waiting for ARP/RARP packet...

Check the /etc/ethers file on the JumpStart server and verify that the client's Ethernet address has been specified correctly.

When booting the client from the network, to initiate a custom JumpStart installation, you might get the following error message if more than one server attempts to respond to the boot request:

WARNING: getfile: RPC failed: error 5 (RPC Timed out).

This error indicates that more than one server has an entry for the client in its /etc/bootparams file. To rectify this problem, you will need to check the servers on the subnet to find any duplicate entries and remove them, leaving only the entry required on the JumpStart server.

When booting the client from the network, you could get the following error message if the system cannot find the correct media required for booting:

The file just loaded does not appear to be executable

You will need to verify that the custom JumpStart server has been correctly set up as a boot and install server. Additionally, make sure you specified the correct platform group for the client when you ran add_install_client to set up the client to be able to use JumpStart.

A Sample JumpStart Installation

The following example shows how you would set up a custom JumpStart installation for a fictitious site. The network consists of an Enterprise 3000 server and five Ultra1 workstations. The next section details how to start the JumpStart installation process by creating the install server.

Setting Up the Install Server

The first step is to set up the install server (see Step by step 14.6). You'll choose the Enterprise server. This is where the contents of the Solaris CD are located. The contents of the CD can be made available by either loading the CD in the CD-ROM drive or copying the CD to the server's local hard drive. For this example, you will copy the files to the local hard drive. Use the setup_install_server command to copy the contents of the Solaris CD to the server's local disk. Files are copied to the /export/install directory.

Step By Step 14.6: Setting Up the Install Server

1.
Insert the Solaris Software CD 1 into the server's CD-ROM drive.

2.
Type the following:

cd /cdrom/cdrom0/s0/Solaris_10/Tools
./setup_install_server /export/install

The system responds with this:

Verifying target directory...
Calculating the required disk space for the Solaris_10 Product
Calculating space required for the installation boot image
Copying the CD image to disk...
Copying Install boot image hierarchy...
Install Server setup complete

3.
Eject the Solaris 10 Software CD 1 and put in the Solaris 10 Software CD 2. Let vold automatically mount the CD.

4.
Change to the Tools directory on the CD as follows:

cd /cdrom/cdrom0/Solaris_10/Tools

5.
Execute the add_to_install_server script as follows to copy the images from the CD to the /export/install directory:

./add_to_install_server /export/install

6.
Repeat steps 3, 4, and 5 for the remaining CDs.


Creating the JumpStart Directory

After you install the install server, you need to set up a JumpStart configuration directory on the server. This directory holds the files necessary for a custom JumpStart installation of the Solaris software. You set up this directory by copying the sample directory from one of the Solaris CD images that has been put in /export/install. Do this by typing the following:

mkdir  /jumpstart
cp -r /export/install/Solaris_10/Misc/jumpstart_sample /jumpstart

Any directory name can be used. You'll use /jumpstart for this example.

Setting Up a Configuration Server

Follow the procedure in Step by Step 14.7 to set up a configuration server.

Step By Step 14.7: Setting Up a Configuration Server

1.
Log in as root on the server where you want the JumpStart configuration directory to reside.

2.
Edit the /etc/dfs/dfstab file. Add the following entry:

share -F nfs -o ro, anon=0 /jumpstart

Note

NFS Server It may be necessary to run the svcadm enable nfs/server command if the NFS server daemons are not running. See Chapter 9, "Virtual File Systems, Swap Space, and Core Dumps," for more information.

3.
Type shareall and press Enter. This makes the contents of the /jumpstart directory accessible to systems on the network.

4.
Working with the sample class file and rules files that were copied into the JumpStart directory earlier, use them to create configuration files that represent your network. For this example, I create a class file named engrg_prof. It looks like this:

#Specifies that the installation will be treated as an initial
#installation, as opposed to an upgrade.
install_type initial_install
#Specifies that the engineering systems are standalone systems.
system_type standalone
#Specifies that the JumpStart software uses default disk
#partitioning for installing Solaris software on the engineering
#systems.
partitioning default
#Specifies that the developer's software group will be
#installed.
Cluster     SUNWCprog
#Specifies that each system in the engineering group will have 512
#Mbytes of swap space.
filesys any 512 swap

The rules file contains the following rule:

network 192.9.200.0 - engrg_prof -

This rules file states that systems on the 192.9.200.0 network are installed using the engrg_prof class file.

5.
Validate the rules and class files as follows:

cd /jumpstart
./check
/usr/sbin/install.d/pfinstall -d -c /export/install engrg_prof

If check doesn't find any errors, it creates the rules.ok file. Look for the following message, which indicates that the pfinstall test was successful:

Installation complete
Test run complete. Exit status 0.

You are finished creating the configuration server.


Setting Up Clients

Now, on the install server, set up each client as follows:

cd /export/install/Solaris_10/Tools

./add_install_client -s sparcserver:/export/install -c sparcserver:/jumpstart\
-p sparcserver:/jumpstart -e 8:0:20:21:49:25 -i 192.9.200.106 sun1 sun4u


./add_install_client -s sparcserver:/export/install -c sparcserver:/jumpstart \
-p sparcserver:/jumpstart -e 8:0:20:21:49:24 -i 192.9.200.107 sun2 sun4u

This example sets up two engineering workstations, sun1 and sun2, so that they can be installed over the network from the install server named sparcserver.

Starting Up the Clients

After the setup is complete, you can start up the engineering systems by using the following startup command at the OK (PROM) prompt of each system:

boot net  -  install

You'll see the following displayed on the screen:

Rebooting with command: net - install
Boot device: /pci@1f,0/pci@1,1/network@1,1  File and args: - \
install
20800
SunOS Release 5.10 Version Generic_64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
whoami: no domain name
Configuring /dev and /devices
Using RPC Bootparams for network configuration information.
Configured interface hme0
Using sysid configuration file 192.9.200.101:/jumpstart/sysidcfg
The system is coming up.  Please wait.
Starting remote procedure call (RPC) services: sysidns done.
Starting Solaris installation program...
Searching for JumpStart directory...
Using rules.ok from 192.9.200.101:/jumpstart.
Checking rules.ok file...
Using profile: engrg_prof
Executing JumpStart preinstall phase...
Searching for SolStart directory...
Checking rules.ok file...
Using begin script: install_begin
Using finish script: patch_finish
Executing SolStart preinstall phase...
Executing begin script "install_begin"...
Begin script install_begin execution completed.
Processing default locales
        - Specifying default locale (en_US)
Processing profile
        - Selecting cluster (SUNWCprog)

WARNING: Unknown cluster ignored (SUNWCxgl)
        - Selecting package (SUNWaudmo)
        - Selecting locale (en_US)

Installing 64 Bit Solaris Packages
- Selecting all disks
- Configuring boot device
- Configuring swap (any)
- Configuring /opt (any)
- Automatically configuring disks for Solaris operating environment

Verifying disk configuration
Verifying space allocation
        - Total software size:  2401.60 Mbytes
Preparing system for Solaris install
Configuring disk (c0t0d0)
        - Creating Solaris disk label (VTOC)

Creating and checking UFS file systems
- Creating / (c0t0d0s0)
- Creating /opt (c0t0d0s5)

Beginning Solaris software installation
Starting software installation
SUNWxwrtl...done.  2401.55 Mbytes remaining.
SUNWulcf....done.  2397.28 Mbytes remaining.
SUNWuium....done.  2397.25 Mbytes remaining.
SUNWuiu8....done.  2390.46 Mbytes remaining.
  <output truncated>

Completed software installation

Solaris 10 software installation succeeded

Customizing system files
        - Mount points table (/etc/vfstab)
        - Network host addresses (/etc/hosts)

Customizing system devices
        - Physical devices (/devices)
        - Logical devices (/dev)

Installing boot information
        - Installing boot blocks (c0t0d0s0)

Installation log location
        - /a/var/sadm/system/logs/install_log (before reboot)
        - /var/sadm/system/logs/install_log (after reboot)

Installation complete
Executing SolStart postinstall phase...
Executing finish script "patch_finish"...

Finish script patch_finish execution completed.
Executing JumpStart postinstall phase...

The begin script log 'begin.log'
is located in /var/sadm/system/logs after reboot.

The finish script log 'finish.log'
is located in /var/sadm/system/logs after reboot.

syncing file systems... done
rebooting...

The client reads the sysidcfg file, then the class file, and then the rules.ok file on the server. If any system identification information is missing in the sysidcfg file, the client will display the appropriate dialog requesting identification information. The system then automatically installs the Solaris operating environment.

This completes the JumpStart configuration.


Previous Page
Next Page