Installing a Solaris JumpStart server

We acquired a number of SunFire T1000 servers recently which came with Solaris 10 U2 (06/06) pre-installed. Before putting them into full-time use, we decided to take the opportunity to upgrade them to a later revision of Solaris, namely U3 (or 10/06). However, since these systems do not come with an internal CDROM drive, we had to reinstall the operating system over the network and to do this we needed a JumpStart server.

I used this site as the basis of my activities. It looks like it was written for Solaris 2.7 but seemed to work just as well (for me) on Solaris 2.10. So, here are my notes on installing and configuring a Solaris 10 jumpstart server. I used an existing SPARC system as my jumpstart server.

1. Preparation

Configure some NFS-mountable directories to store the contents of the Solaris installation media and some additional jumpstart configuration files:

# mkdir /export/install/5.10u3-sparc
# mkdir /export/jumpstart

Add the following lines to the /etc/dfs/dfstab file to make these directories shareable:

# vi /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install/5.10u3-sparc
share -F nfs -o ro,anon=0 /export/jumpstart

Finally to share (and verify) these directories, use the following command:

# shareall

Finally, you will need to mount the CDROM/DVD containing the Solaris media. This should happen automatically as soon as you insert the disc in the drive (if your system has the Solaris Volume Manager running on it) but strangely, it did not for me. I actually had to restart the Volume Manager to get the DVD mounted:

# /etc/init.d/volmgt stop
# /etc/init.d/volmgt start

Now use the mount or df command(s) to verify that the CD/DVD has been mounted. For the record, here is a useful way to determine the device name for your CD/DVD drive:

# ls -al /dev/sr*
xrwxrwx 1 root root 12 May 2 16:42 /dev/sr0 -> dsk/c2t0d0s2
# mount -F hsfs -o ro /dev/dsk/c2t0d0s2 /mnt/cdrom

However, the Solaris 10 DVD contains several UFS slices and cannot be mounted in this way.

2. Installing the JumpStart Server

Assuming that your CD/DVD has been mounted on /cdrom, here is how to install the core of the jumpstart server:

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /export/install/5.10u3-sparc

This will copy the appropriate contents from the CD/DVD to the relevant directories within /export/install/5.10u3-sparc. This part of the process can take some time to complete so be patient.

You may also want to configure a Boot Server (I wasn’t sure if I needed this but did it anyway):

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server -b /export/install/5.10u3-sparc/sun4v

3. Copying up the JumpStart sample configuration files

There are several configuration files within a JumpStart server and the Solaris CD contains some samples to get you started. We created a directory for these earlier but must copy them from the CD now:

# cp -r /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample/* /export/jumpstart

4. Setting up the JumpStart configuration files

As the reference site indicates, there are several files that need to be configured before you can attempt to initiate a network installation from a client, namely:

/export/jumpstart/rules

This file is mandatory and helps to define some rules to specify what (type of) clients are allowed to use this install server and what to do before and after the installation. I created a single rule as follows:

network XX.XX.XX.0 && arch sparc - myT1000 -

which says that only SPARC systems in the XX.XX.XX.0 network are allowed to use this server and when they do, the settings in the myT1000 file should be used to specify how those systems should be configured.

/export/jumpstart/myT1000

This file specifies how a given system should be configured by allowing you to predefine what type of installation you want, which software packages you want (and do not want) and how to lay out your file systems etc.

Here is the profile file that I used:

install_type initial_install
system_type server
partitioning explicit
filesys c0t0d0s0 10240 /
filesys c0t0d0s1 2048 swap
filesys c0t0d0s3 10240 /var
filesys c0t0d0s4 10240 /usr
filesys c0t0d0s5 10240 /opt
cluster SUNWCprog add
package SUNWauda delete
package SUNWaudh delete
package SUNWaudf delete
package SUNWxorg-devel-docs delete

As you can see, I chose the Developer Support software cluster but then requested that several software packages be excluded from it. I chose to remove many more than are shown here but I think you get the point…

/export/jumpstart/sysidcfg

This is an optional file that essentially allows you to specify extra settings for your installation. In summary, the more settings you specify here, the less questions you are asked during the network installation and the more automated the process becomes. Here is the sysidcfg file that I used:

system_locale=en_IE.UTF-8
install_locale=en_IE.UTF-8
timezone=Eire
terminal=vt100
timeserver=localhost
name_service=DNS { domain_name=XXXX.YYY name_server=X.X.X.X,Y.Y.Y.Y search=XXX.YYY,XXX.YY }
network_interface=bge0 {netmask=255.255.255.192 default_route=X.X.X.X protocol_ipv6=no }
security_policy=NONE

Once you have all of these files in place, you need to verify that they are syntactically correct. This is done using the check tool as follows:

# cd /export/jumpstart
# ./check
Validating rules...
Validating profile myT1000...
The custom JumpStart configuration is ok.

5. Telling the server about a client

Before you can commence an installation from a client, you need to tell the install server about that client. Since I was not using DHCP and already had a DNS server with a valid entry for my client, this stage was a little easier for me. Of course you also need to ensure that your server is running a TFTP Boot Server.

To tell the server about a client, you need to know the MAC address of the primary network adapter of the client and the intended hostname of the client. Once you know this, use the following command:

# cd /export/install/5.10u3-sparc/Solaris_10/Tools
# ./add_install_client -e 11:22:33:44:55:66 -s fonda:/export/install/5.10u3-sparc -c fonda:/export/jumpstart -p fonda:/export/jumpstart shefflin sun4v

The name of my client was shefflin (it was a sun4v system) and as I indicated earlier, the name of my server was fonda. Clearly, you will need to use your own values for the parameters as well as the correct MAC address. The result of this command is some new files in the TFTP Boot area as well an a new entry in the /etc/ethers file.

You are now ready to start the installation from the client.

6. Starting the Client Installation

This is actually the simplest part of the exercise and involves one command. However, you do need to ensure that the Network Management port of your client has been configured with a valid IP address. Anyway, to start the client installation, use the following command from the boot prompt of your client:

boot net - install

The system should then start installing the new version of Solaris. It will do things like request an IP address from the network, attempt to configure the network interfaces in the client and ultimately follow pretty much the same procedure as if you were installing from a CD or DVD. The more configuration files you provided on the server, the fewer questions you will be asked during the installation.

When the installation has completed, you will be dropped back to the (root) command prompt. You should now reboot the system after which you will be asked to provide a password for the root user. Upon completion of this task, you should finally be presented with the console login prompt and, hey presto, you’re done!

Reference Sites

Here are some other useful websites I discovered during this exercise:

And some links to others who have attempted the same task:

Best of luck!


11 thoughts on “Installing a Solaris JumpStart server”

  1. Hi James,

    Your site and instuctions were very helpful as I am attempting to configure a 4 node Solaris 10 env.

    One point I was trying to find clarification on was how to install addiotnal 3rd Party packages via jumpstart and perhaps patches aswell.

    Some further clarification with begin and finish scripts within rules would also be very useful.

    I appreciate that this may be outside the scope of the document. But consider it as the ‘next section’ .

    Eirther way keep up the good work,

    With kindest regards, Jas

  2. Hi James
    Thanks for the posts they have been informative. But I have had problems doing a network install of Sol 10 08/07 onto a T2000. I am receiving an error of tftp transfer Timed out. When I monitor the tftp request I get:
    # snoop -i /u/alisdair/tftptroubleshoot
    1 0.00000 sundb1 -> BROADCAST TFTP Read “” (octet)
    2 128.07096 sundb1 -> BROADCAST TFTP Read “” (octet)

    For some reason the OBP is passing a null value for the boot-file. I have given this a value but maybe my syntax is wrong can you advise as to what the correct syntax should be for specifying the boot-file in OBP
    It is currently set at C0A8000A.SUN4V (the octet value for the boot-file)

    I have also set the:
    diag-switch? False
    AND
    keyswitch is in the normal position
    as I am aware that if these are not set with the above values the boot-file argument can be ignored.

    I would also be interested to to know which version of firmware was your T2000 when you did the jumpstart over the network?

    Any help is greatly appreciated as I have posted on numerous Sun and Unix forums as well as hunting high and low in google and so far I have not found a solution. Your blog is one of the few sources of good info on a T2000.

    Many thanks for any assistance you can give.

  3. Alisdair,

    I did not have to change any of the boot parameters when performing a network installation. All I did from the “ok” prompt was type “boot net – install” and that seemed to do the trick.

    Having said that, I did find that Section 5 above (Telling the server about the client) was quite tricky. From memory, I recall that when attempting the add_client_client command , the JumpStart server performed some sort of network lookup on the hostname I supplied and derived it’s IP address from that. So, if the system you are trying to install via JumpStart does not have a valid DNS entry associated with it, this might be a problem. I have not done a DHCP JumpStart install.

    Also, after you have executed the add_install_client command, the JumpStart should have created a file in /tftpboot which is named something like rm.XXX.XXX.XXX.XXX where the XXX is the IP address of the system you want to install via JumpStart. You might want to verify that this is happening on your JumpStart server and see if takes you anywhere.

    Regarding the firmware I am using, I’m pretty sure that I upgraded my T2000’s to firmware version 6.4.4 before doing the JumpStart installation. Here is my current setup:

    sc> showhost version
    Sun-Fire-T2000 System Firmware 6.4.4 2007/04/20 10:13
    Host flash versions:
    Hypervisor 1.4.1 2007/04/02 16:37
    OBP 4.26.1 2007/04/02 16:26
    POST 4.26.0 2007/03/26 16:45
    sc>

    I tried running the “eeprom” command from my T2000 (when logged in as root) but many of the settings that you would be most interested in are shown as “data not available”. Unfortunately, the system is in use
    at present so I am unable to obtain further details on this.

    One last thing you should verify is that the IP address that you have assigned to the NETMGT interface (via the setupsc command from ALOM) is in the same subnet as your JumpStart server. I think this is a requirement for JumpStart installations.

    Best of luck!

  4. Fantastic.. these instructions have been a lifesaver in getting JumpStart up and running for our site.

    Thank you! :D:D

  5. Hi James,

    Thanks a lot for your Nice work !!
    And also you are responding the all posts… good.
    Please give us more on solaris 10.

    Thanks & Regards,
    Kals
    Bangalore

  6. Hi James,

    As soon as I start the Server T1000, I see junk characters in the terminal. Do you know what could be the reason and how it could be fixed?

    Thanks in Advance
    Rohit

  7. Hi Mernin,

    Could you please post the complete steps for configuring the jumpstart like /etc/ethers, defining rules/profiles and other funda’s in jumpstart.

Leave a Reply