Home / Documents / Tutorials / Jsinstall
 
 
 
 
 
 
 
 
 
 
 
 
 DOCUMENTS 
 TUTORIALS 

Installing Solaris using JumpStart technology on an Intel laptop

Andreas Almroth

Last revised: September 9, 2002

An interesting use of Solaris 8 on a PC laptop is for use with the JumpStart technology. It has never been so easy to install, re-install, or restore a server before.

As I am as a contractor, I am more on the road than in my own office, so I need a laptop, and preferably with Solaris installed, as I am focusing on Sun's products and applications.

Through the years, I have discovered that one of the most common scenarios is that a client needs a server installed, either because they just bought it, or need it re-installed, or recovered.

This article covers how to save time when installing servers, using the JumpStart technology on a laptop with Solaris for Intel.

Introduction

I have been using the Solaris Operating Environment on Intel based computers ever since Solaris 2.4 was released. It has always been a bit of a struggle to get through the installation and configuration phase, regardless of chosen hardware for my PC computers.

Lately, I have started to use Solaris 8 on my PC laptop, and it has been a great help in my daily work. As I am quite mobile due to the fact I am working on a contract basis, I need to have my tools in a mobile format, such as a PC laptop. And preferably with Solaris installed.

My current setup is an IBM laptop with 256MB memory and 20GB hard drive. Installed is Solaris 8 10/01 with Maintenance Update 7 applied.

First a short introduction on how to get Solaris for Intel onto a laptop, followed by how to set up JumpStart in this environment.

So first something on how I got it installed...

I am one of those people that almost never gives up when it comes to get something to work on a computer, and take it as a challenge. One such challenge is to get Sun's Solaris Operating Environment running on an IBM laptop...

With Solaris 8 on the market since February 2000, it is now commonly thought of being one of the most stable releases of Solaris, with 02/02 release just hot out of the CD presses.

Installing Solaris itself is not so hard if you have a boot floppy or a CD-ROM drive which can boot CD-ROM's. It is plain simple to get through, even though the hassle with incorrect graphics mode and resolution. Once the OS is installed, download the ``Solaris XFree86 Video Drivers and Porting Kit'' from Sun's web site [2]. If your graphics card is supported by XFree86, then your chances to have a good working screen resolution is just a few configuration steps away. Just follow the instructions in the video driver kit, which involves running the kdmconfig command.

I must admit I spent some time finding the right hardware to install Solaris on before purchasing it. Have a look at [3] for further information about laptops on which Solaris for Intel works.

Next, the most common problem is to find a laptop with a supported network interface. This is a requirement, in order to utilize the JumpStart technology to install other servers.

Also, getting the serial port working is a must if you want to be able to hook up to the console port on the server. If you can not get the serial port to work, you have to rely on the client to provide a console. And trust me on this one, not all clients can do that, however silly it might sound to you. Have a look at [4] for further information on serial cables for Sun servers.

I had to manually configure the serial port on my laptop. By altering the /kernel/drv/asy.conf file, I managed to get Solaris 8 to recognize the serial port. The below line might or might not work on other computers, but using serial port 0 (COM1:) with the below values is quite common.

  name="asy" class="sysbus" interrupts=12,4 reg=0x3f8,0,0 ioaddr=0x3f8;

After changing the file, I rebooted my laptop with the reconfigure option, but I imagine using devfsadm -c port should work as well.

As the defaults in /etc/remote rarely are very useful on Intel computers running Solaris, a line must be added;

  suncons::dv=/dev/ttya:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:

We can now use tip to connect to the serial port, using the above entry. Simply type;

tip suncons

to start a session. For those of you that have not used tip, I recommend reading the man page. The two most important commands are;

~.
Drop the connection and exit tip.
~#
Send BREAK signal to the remote system.

At the end of this article there are some great references and links to URL's that covers issues with getting Solaris on a PC laptop.

Why JumpStart on a laptop?

Instead of doing a manual install, involving choosing a number of settings, and changing CD's, and not to mention the time spent on waiting, many system administrators use JumpStart. Not only does one save time, but one can create a standard setup for all servers, and thus minimizing the time on manual configuration, and then documenting these.

JumpStart has been around for ages, but with Solaris 8, I felt that Sun finally had got it into a shape that is both useful and easy to use. In earlier releases of Solaris, there were always a few gotchas, or if you rather like; ``features''. Well, that is my personal opinion at least.

Using JumpStart on a site requires a server that holds the OS packages, together with the configuration details for each JumpStart client that is going to be installed over the network.

There are exist three types of servers; Boot server, Install server, and Configuration server. All three can be the same physical server, but can also be split onto several servers.

As there is an limitation in the boot procedure, you need a Boot server on each subnet where you have JumpStart clients. You only need one Install and Configuration server. Starting With the Solaris 8 04/01 release you can also use DHCP in order to boot the JumpStart clients. Although, note that on a Sparc based machine you need OBP 3.25 installed on the hosts in order to use the DHCP feature.

Network setup JumpStart

The figure above shows a typical network setup with two networks connected to each other through a router. As you can see, the Install and Configuration server is on one host, and the Boot server is installed on two separate servers each serving the their local segment. You could of course also have had the Boot server on the Install and Configuration server. Works equally well.

Does this sound complex? You only wanted to install a server, and then leave. Well, that is at least what I want when installing a server at a customer site. So, what about combining all JumpStart servers on a laptop, and load a few Solaris Operating Environments onto the hard drive? Sounds good to you?

The beauty with this is that will be simple to install any Sun server, and it saves considerable of time. First, you do not need to manually install Solaris. Second, you do not need to set up JumpStart servers at the client site, and thus relying on that they indeed have other Sun servers, for use by you.

Hm, well, how does this go together with contracting on hourly basis then? It might not, depending on how you/your company billing strategy goes. But I prefer to do the job as fast as possible, and perhaps help the client with a few other issues while waiting for the install to finish, and still have done the job within half a working day.

How does it work then?

The installation process consists of seven phases;

  • Fetching IP address
  • Loading kernel and device configuration
  • System identification
  • JumpStart initialization
  • Pre-installation scripts
  • Layout of disks and loading packages
  • Post-installation scripts

In the first phase is were the magic is done when the client finds out its IP address from the boot server, and then loading the boot image.

Initial boot stage

The first boot phase is interesting in that way that it is very specific to Solaris. Take, for example, you can not use other operating systems to provide the boot facility, due to the very specific functions used by the client. When the client have figured out its IP address from the boot server, it requests a boot image for the kernel.

Next the kernel is loaded and starts device configuration.

Before the installation can proceed, the a few boot parameters must be downloaded from the boot server. These parameters specifies, among others, where the client can find the install and configuration servers. The next step finds the configuration and install servers on the network, and configures the system identification from the sysidcfg file provided by the configuration server.

Next, the JumpStart process really starts kicking in, it find out if there is a matching profile for the client, and if so, continues with running the pre-installation script (begin script) if there is one for the profile. Next step is to layout the disks, and formatting the file systems. The JumpStart process then continues loading all packages specified in the profile, which are normally grouped in clusters.

When all packages are loaded, and some final tuning of host specific files is done, it is time for the post-installation script (finish script). Here is where one can tailor the setup of the client, and loading local software and patches. I will cover more on post-installation in my next article.

The JumpStart framework

In order to be able to install a client over the network you need to first install and configure the JumpStart servers.

Installation

First, you need to load at least one Solaris release for use with JumpStart. In my setup, which is close to what is recommended in [1], we need to create the following directories with the mkdir command;
  /jumpstart/config
  /jumpstart/sparc
  /jumpstart/intel
  /jumpstart/patches
  /jumpstart/apps 
  /jumpstart/<host>
  /jumpstart/flash

All profiles, the rules file, and scripts are stored in the /jumpstart/config directory. The SPARC distributions goes into /jumpstart/sparc, and the Intel distributions goes into /jumpstart/intel. Any patches and additional applications reside in /jumpstart/patches, and /jumpstart/apps directories. The sysidcfg files reside in the /jumpstart/<host> directories.I usually name the directories that contains the sysidcfg files by either host name, or some other logical grouping, that makes sense. It depends on what you have put in the file. And as with Solaris 8 04/01, there is a new feature called WebFlash. This is an excellent way of storing a production ready system in a cpio archive. Restoring a system to a known state is a simple job of using JumpStart to put back the Flash archive onto the host. The Flash archives are stored in the /jumpstart/flash directory.

Loading a distribution from the CD media is done by running the command setup_install_server, and add_to_install_server. Insert the first CD into the CD drive, and type;

cd /cdrom/cdrom0/s2/Solaris_8/Tools
./setup_install_server /jumpstart/sparc/sunos58_0202

When first CD is installed, remove it, and insert the second CD, and type;

cd /cdrom/cdrom0/s2/Solaris_8/Tools
./add_to_install_server /jumpstart/sparc/sunos58_0202

This installs the Solaris 8 02/02 media into /jumpstart/sparc/sunos58_0202 directory.

Next step is to share the necessary directories. Instead of having to do this every time I want to use JumpStart, I use /etc/dfs/dfstab to list the directories to be shared over NFS.

A minimal file would look like this for JumpStart with my configuration;

share -F nfs -o ro,anon=0 /jumpstart/config
share -F nfs -o ro,anon=0 /jumpstart/host1
share -F nfs -o ro,anon=0 /jumpstart/sparc/sunos58_0202

with the optional;

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

If you haven't restarted your computer since changing the above file, you have to manually start the NFS server. This is done by issuing;

/etc/init.d/nfs.server start

Finally, we need to copy the check command to our /jumpstart/config directory;

cd /jumpstart/sparc/sunos58_0202/Solaris_8/Misc/jumpstart_sample
cp check /jumpstart/config

Configuration

We now have the configured the framework for our JumpStart server. Next step is to create client configurations. The steps are;

  • Add client entries for IP and Ethernet
  • Create a profile
  • Create a configuration file
  • Add rule in rules file
  • Verify rules file
  • Create boot entry for client
Add client entries

For each client, the JumpStart servers need to know about IP and Ethernet addresses for the clients.

Add the IP address and hostname to /etc/hosts;

  10.10.10.1    jumpsrv loghost
  10.10.10.10   client1
  10.10.10.11   client2

and the Ethernet address entry to /etc/ethers;

  08:00:20:43:20:0c   client1
  08:00:20:4a:3f:10   client2
Create a profile

The profile is important because it describes what to install on the client, how to layout the file systems, and other important bits and pieces needed.

The profile consists of keyword and value pairs. See [5], page for details on keywords and values.

To create a profile that will be used by a normal Sun SPARC server, we use the following;

  install_type    initial_install
  system_type     standalone
  partitioning    explicit
  filesys         c0t0d0s0 3000 /
  filesys         c0t0d0s1 512    swap
  cluster         SUNWCall

This will do an initial install on the client, it is a standalone host, and we force the disk layout to have a root file system on slice 0 with $\sim$3GB size, and a swap on slice 1 with a size of 512MB. We also choose to have the SUNWCall cluster installed. This means the full distribution of Solaris 8, only lacking the OEM packages.

Create a configuration file

A configuration is used to configure client or group specific settings. This can be locale settings, IP addresses, name services, security and so forth.

Together with the profile, the configuration file eliminates the need for any interaction with the user during installation.

  system_locale=en_US
  timezone="GMT+1"
  timeserver=localhost
  network_interface=primary {hostname=client1
                       ip_address=10.10.10.10
                       netmask=255.255.255.0
                       protocol_ipv6=no}
  terminal=ansi
  name_service=NONE
  security_policy=NONE

This is a minimal configuration file, which holds just enough information to get by with a automatic installation.

For further details on possible variable settings, see [5], page .

Add rule in rules file

Adding entries in the rules file, enables the clients to choose the correct profile for the installation. If no profile exists, the client will enter interactive installation mode.

The rules file consists of lines with five fields each;

  keyword value begin profile finish

The most common used keyword is probably hostname, and the value is the name of the client the rule should apply to. Next field if not a -, refers to a script that should be ecexuted before installation. Next field refers to the profile to be used for the client, and last the script that should be executed after the installation, but before reboot.

  hostname client1 - client -

The above rules file contains a very simple rule for client1, which uses no scripts, and the clients profile resides in the client file.

Verify rules file

In order for the client to be able to use a JumpStart rule, we need to create a rules.ok file. This file is used by the client to verify that we have properly configured rules. After changing the rules file, always run;

cd /jumpstart/config
./check

Create boot entry for client

cd /jumpstart/sparc/sunso58_0202/Solaris_8/Tools
./add_install_client -c 10.10.10.1:/jumpstart/config \
-p 10.10.10.1:/jumpstart/client1 \
-n 10.10.10.1:none[255.255.255.0] client1 i86pc

On a Sparc machine replace i86pc by sun4u.

Starting an install

When all the configuration files and directory shares are in place, there is only two steps left; Connect your laptop to the host being installed, and initiate the installation.

Connecting network

Before it is possible to do a JumpStart instll, you must connect your laptop either to a network, or directly to the JumpStart client. I prefer to connect directly by using a crossover TP-cable.

Crossover TP cable

If you use a laptop, you more than likely run DHCP to obtain an IP address when booting the OS. This is sometimes a nuisance when using JumpStart, because you want to use known static IP addresses in order to make it easier to maintain the configuration files.

I have written a very simple script that I use when toggling between static IP address, and DHCP addresses.

This script, given either the argument static, or dhcp, configures the interface. Alter the variables IP_ADDR, NM, and IFACE to suit your configuration.

  #!/bin/sh
  IP_ADDR=10.10.10.1
  NM=255.255.255.0
  IFACE=iprb0

  down_if()
  {
          ifconfig $IFACE down
          ifconfig $IFACE unplumb
          sleep 1
  }

  up_if()
  {
          sleep 5
          ifconfig $IFACE up
  }

  case "$1" in
  'static')
          down_if()
          ifconfig $IFACE plumb
          ifconfig $IFACE $IP_ADDR netmask $NM
          if_up()
          ;;
  'dhcp')
          ifconfig $IFACE dhcp ping 2>/dev/null
          if [ $? = "2" ] ; then
              down_if()
              ifconfig $IFACE plumb
              ifconfig $IFACE dhcp primary
              up_if()
          fi
          ;;
  *)
          echo "Usage: $0 { static | dhcp }"
          exit 1
          ;;
  esac
  exit 0

We should now have a working network connection so that the client can boot off from our laptop.

Start an install

Connect the serial cable between your laptop and the JumpStart client, or use a separate console if available.

Power up the client, and send a BREAK signal before it starts loading whatever is already installed, if any.

Boot the system using boot floppy or bootable CD-ROM. In DCA (Device Configuration Assistant), after hardware is detected, when prompted to select a boot device, select the network card.

On a Sparc based machine at the OBP prompt, issue following;

ok> boot net - install

This will initiate a boot on the client, and it will try to find a boot server that holds the boot image.

After a while, the kernel is loaded, and the JumpStart script is started. With some luck, it will find the install and configuration server, and on them a working profile and configuration for the client. If the disk slice layout in the profile is correct, the slices are formatted, and all specified packages are installed.

Conclusion

Using JumpStart technology on a laptop with Solaris installed is easy, fast, and gives you the ability to install and recover Solaris with minimum hardware. Using Solaris on a laptop enables you to perform within the concept; ``Shoot-in, shoot-out'', and spending minimal time on waiting. It also makes you self-contained in that way you do not need to use any other systems at the clients site to do the installation.

References

[1]  John S. Howard, Alex Noordergraf. JumpStart. Technology - Effective Use in the Solaris Operating Environment.

[2]  Solaris for Intel, www.sun.com/intel.

[3]  Solaris on laptops, www.bolthole.com.

[4]  Stokely Consulting web pages, www.stokely.com.

[5]  Sun Microsystems Inc. Solaris 8 Advanced Installation Guide, Part number 806-0957-10, February 2000.

[6]  Sun Microsystems Inc. System Administration Guide, Volume 3, Part number 806-0906-10 February 2000.

Author's bio

Andreas Almroth is a freelance system administrator and programmer, currently with Eterra A/S in Denmark. He can be contacted at andreas@almroth.com.

Copyright © 2002 by Andreas Almroth. All rights reserved.

Logo
Top
Last modified: 2003-03-15