Solaris Jumpstart – howto guide
Setup and configuration of jumpstart server & clients .
Jumpstart offers a way to install Solaris using network over multiple server with similar of different configurations.
Here is a step by Step howto guide to install Solaris over network .
1.0 Before you start
Pre Installation Checklist :
* The install server or boot server is in the same local network segment as client with network link up .
* NFS services are running On jumpstart server
* The tftp services are running . To start uncomment the tftp entry in /etc/inet/inetd.conf and restart the inet services
* The reverse address lookup daemon ,in.rarpd , is running .
2.0 Preparing for a jumpstart server
Create and share a directory to store and share install server data.
#mkdir /export/install
share it
#vi /etc/dfs/dfstab
add share -F nfs -o ro,anon=0 /export/install
to export file system for sharing.
Do a shareall so that the file system is now exported
2.1 Setting up an Install server
Mount Solaris cdrom
Follow the steps :
#cd /cdrom/cdrom0/s0/Solaris_2.7/Tools
#./setup_install_server /export/install
This will copy the cdrom contents in to the /export/install directory.
2.2 Setting up a boot server
For installing clients over different networks you need a boot server in the same subnet as client .
Boot server after booting the client hands over subsequent installation & configuration process to install server .
# ./setup_install_server -b /export/install sun4u
the above command installs software for booting the client.
You also have to do a add host and add_install_client in boot server, see adding clients . Rest of the configuration has to be done at install server.
2.3 Setting up configuration files
Make a jumpstart directory say /jumpstart
Copy sample jumpstart files from cd
#cp –r /cdrom/cdrom0/s0/Solaris_2.7/Misc/* /jumpstart
2.4 Making Rules
Edit the sample rules file as per your requirement
#vi /jumpstart/rules
Keywords their value and usage is described in rules file itself.
any minus sign (-) in rule value always matches for that keyword.
RULE_KEYWORD RULE_VALUE DESCRIPTIONS
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 installed ver. 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)
The following rule set matches any machine and redirect the install request to a profile file called any_machine.
any – - any_machine -
more examples can be found in rules file.
2.5 Verifying rules
A script called check validates and generates a rules.ok file if syntax, keywords are in order.
#./check
Validating rules…
Validating profile any_machine…
rules ok.
The clients will read the rules.ok file for booting information
2.6 Creating Profiles
Profile is a text file which contains configuration information for the clients
A sample profile file called any_machine is already there . You can create your custom profile files through text editor and mention in rules file.
#vi any_machine
install_type initial_install
system_type server
partitioning explicit
filesys c0t0d0s0 500 /
filesys c0t0d0s1 1000 swap
filesys c0t0d0s3 1000 /usr
filesys c0t0d0s4 1000 /var
filesys c0t0d0s5 1000 /opt
cluster SUNWCall add
2.7 Sysidcfg file
Sysidcfg file keeps the various system information like locale time zone etc and supply it to the client at the booting time. In the absence of this the installation turns in to interactive mode to prompt you to supply the value for these variables
You have to create this file in text editor . A sample file would look like following
# vi sysidcfg
system_locale=en_US
install_locale=en_US
timeserver=localhost
timezone=US/Pacific
network_interface=hme0 {netmask=255.255.255.0}
name_service=NONE
2.8 Add a host entry
Edit the /etc/ethers file and put a host entry for your client ;ethernet address followed by host name.
On client ok>banner will give ethernet address
#vi /etc/ethers
8:00:50:44:88:12 mercury
2.9 Adding a Client
The clients are added using add_install_client command . You have to be in the Tools directory of Solaris CD or image as the programme looks for the presence of valid Boot image dir in the same directory.
#cd /export/install/Solaris_2.7/Tools
#./add_install_client -e 8:00:50:44:88:12 -s jupiter:/export/install -c jupiter:/jumpstart -p jupiter:/jumpstart mercury sun4u
-e specify the ethernet address of client -s option specify the location of boot image ( As given in setup_install_server)
-c option specify the jumpstart directory path.
-p option specify the sysidcfg file location
jupiter is your jumpstart server
mercury is jumpstart client to be installed.
sun4u is the architecture of client
You need to enter the client through above command at the boot server also
3.0 Starting The client Installation
at client use the following command
ok>boot net – install
the system will initialize and starts booting from network
and you will see these messages
System is coming up
checking rules file
using profile any _machine
selecting cluster SUNWCall
Preparing system to install software
setting up disk
creating and checking up file systems
installing packages
After completion it will reboot and ask the new root password and after that takes you to the
console prompt where you can login and do additional task you want to do.
4.0 Begin & Finish Scripts
These are the optional features of jumpstart .
A begin script is a shell script which is used to perform the task before Solaris OS is installed. These are specified in the rules file.
These can be used for creating dynamic derived profiles or backing up files before upgrading.
A finish script is used to perform the tasks after the OS is installed but before reboot.
These can be used to customize root environment , adding patches , files etc.
These scripts can not be checked by the check script so it must be accurate.
Out put of these scripts goes to /var/adm/begin.log and finish.log.
These should be owned by the root with permission 644
5.0 Trouble Shooting
The following are a few of the common errors encountered in jumpstart.
Error : unknown client “client host name”
Source : add_install_client
Cause : host name can’t be resolved . check host entry is there in /etc/ethers or in nis/nis+ maps .
File just loaded does not appear to be executable .
Source : Solaris booting process
Cause : Improper media . Make sure proper media is available through disk image or CD in the install server . Also see
that the rules point to valid media type.
Warning : getfile:RPC failed : error 5 (RPC timed out)
Source: Client boot requests
Cause : Muliple entries for a client in different servers. There should not be multiple entries in different install server’s /etc/bootparams , /tftpboot or /rplboot . These causes a hang situation when all of them try to answer.
No network boot server .Unable to install the system. See installation instructions
Source : Client boot request.
Cause : Installation is not proper. Check the boot server installation again for any error in command or file .
Timeout waiting for ARP/RARP packet …
Source : Client boot request .
Cause : No server is answering its request for booting .Probably they don’t know about this client . See the proper entries are there in /etc/bootparams or nis maps with proper entries in nsswitch.conf . add_install_client is responsible for adding client information in jumpstart server so check the command and its option