(C) Copyright Scott Howard, 2002
This document describes how to use a Linux machine as a Jumpstart server to install a Solaris machine.
This procedure will only work for installing Solaris 8. Earlier version of Solaris require the Linux kernel to be modified in order to work.
The instructions below are based on using a RedHat 7.2 machine for the Jumpstart server. Any version/distribution of Linux should be able to be used, but the exact commands/etc will vary slightly from version to version.
For more information on setting up a Jumpstart server, see http://www.docbert.org/Solaris/Jumpstart/
Before you start you'll need to make sure the required services are installed on your Linux box. You'll need to have the following installed :
You can Confirm these are installed with the following :
[root@jsserv /]# rpm -q rarpd nfs-utils bootparamd tftp-server rarpd-ss981107-9 nfs-utils-0.3.1-13 bootparamd-0.17-7 tftp-server-0.17-14 [root@jsserv /]#If any of the packages are not installed it will tell you so, and you will need to isntall them.
For RedHat 7.2, nfs-utils and rarpd are on the first CD, bootparamd and tftp-server are on the 2nd, all in /RedHat/RPMS
Install the packages with (for example) :
[root@jsserv RPMS]# rpm -i rarpd-ss981107-9.i386.rpm [root@jsserv RPMS]# rpm -i bootparamd-0.17-7.i386.rpm [root@jsserv RPMS]# rpm -i tftp-server-0.17-14.i386.rpmNext we need to make sure all of these services are enabled (even if they were already installed they may not be enabled)
Run "setup", and under "System Services" enable each of "tftp", "rarpd", "bootparamd" and "tftp" to start automatically.
If any of these services were not set to start automatically you'll need to either start them manually now, or just reboot.
rarpd and bootparamd are both stand-alone services, so you can (re)start them with :
[root@jsserv mnt]# service rarpd restart Stopping rarpd: [FAILED] Starting rarpd: [ OK ] [root@jsserv mnt]# service bootparamd restart Stopping bootparamd: [FAILED] Starting bootparamd: [ OK ](The FAILED is because the services were not already running).
tftpd runs under xinetd, so in order to start it you'll need to tell xinetd to re-read it's configuration file :
[root@jsserv mnt]# service xinetd reload Reloading configuration: [ OK ]Now that the server has everything we need installed, we need to setup the Jumpstart image.
First, create a new directory to install the image into :
[root@jsserv mnt]# mkdir -p /jumpstart/sol8Next, put the "Solaris 8 Software 1 of 2" CD-ROM, or the "Solaris 8 Operating Environment" DVD into the drive, and mount it :
[root@jsserv /]# mount -o ro /dev/cdrom /mntConfirm that we've got the correct CD :
[root@jsserv /]# cd /mnt [root@jsserv mnt]# ls -a . .cdtoc .install_config Solaris_8 .. Copyright .slicemapfile .volume.inf [root@jsserv mnt]# cat .volume.inf VI"SOL_8_202_SPARC"And then copy it from the CD/DVD to the server :
[root@jsserv mnt]# tar cf - . | (cd /jumpstart/sol8 && tar xfp - )If you're installing off CD (rather than DVD) you also need to copy what's on the 2nd CD.
Eject the current CD :
[root@jsserv /]# cd / [root@jsserv /]# eject cdromRemove the CD and replace it with the "Solaris 8 Software 2 of 2" CD. Mount it, and confirm we have the correct CD :
[root@jsserv /]# mount -o ro /dev/cdrom /mnt [root@jsserv /]# cd /mnt [root@jsserv mnt]# cat .volume.inf VI"SOL_8_202_SPARC_2"This time we only copy the Solaris_8/Products directory, but we also need to copy and rename the volume.inf file :
[root@jsserv mnt]# cp .volume.inf /jumpstart/sol8/.volume.inf.2 [root@jsserv mnt]# tar cf - Solaris_8/Product | (cd /jumpstart/sol8 && tar xfp - )If you want to copy the Early Access (EA) software onto the Jumpstart server you can do this with :
[root@jsserv mnt]# tar cf - Solaris_8/EA | (cd /jumpstart/sol8 && tar xfp - )Next we need to NFS share the Jumpstart directory :
[root@jsserv /]# echo '/jumpstart *(ro,no_root_squash)' >> /etc/exportsCheck if the NFS server is running :
[root@jsserv /]# service nfs status rpc.mountd is stopped nfsd is stopped rpc.rquotad is stopped [root@jsserv /]#If it's not, start it :
[root@jsserv /]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] [root@jsserv /]#Otherwise just tell it to re-read the the changes we have made to /etc/exports :
[root@jsserv /]# exportfs -a [root@jsserv /]#At this point our Jumpstart server is setup. Next we need to tell it about the client we're going to install.
Find out the MAC address of the machine you want to install using the "banner" command from the ok prompt :
ok banner Sun Ultra 1 UPA/SBus (UltraSPARC 167MHz), No Keyboard OpenBoot 3.25, 512 MB memory installed, Serial #9367254. Ethernet address 8:0:20:81:23:45, Host ID: 808eeed6.So the clients MAC address is 8:0:20:81:23:45
[root@jsserv /]# echo "8:0:20:81:23:45 jsclient" >> /etc/ethersand an entry to the hosts file :
echo "18.104.22.168 jsclient jsclient.mydomain.com" >> /etc/hostsand to the bootparams file :
echo "jsclient root=jsserv:/jumpstart/sol8/Solaris_8/Tools/Boot install=jsserv:/jumpstart/sol8 boottype=:in" >> /etc/bootparamsNext, we need to copy the boot image into the tftpboot directory. This image is different for each different architecture, so you'll need to copy in a new one for each architecture you want to boot from the server :
[root@jsserv /]# cp /jumpstart/sol8/Solaris_8/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot /tftpboot/inetboot.sol8.sun4uThe Jumpstart client will try and access this client based on a hex representation of it's IP address. eg, for the IP address 22.214.171.124 we have :
So our boot file needs to be called CB23CF41
The easiest way is just to use a symlink from the real image to this name :
[root@jsserv /]# cd /tftpboot/ [root@jsserv tftpboot]# ln -s inetboot.sol8.sun4u CB23CF41Some systems also require this file have the architecture in the name, so create another symlink for that as well (all in UPPERCASE) :
[root@jsserv tftpboot]# ln -s inetboot.sol8.sun4u CB23CF41.SUN4UAt this point you should be able to boot the client from the network :
ok boot net - install Boot device: /sbus/SUNW,hme@e,8c00000 File and args: - install SunOS Release 5.8 Version Generic_108528-13 64-bit Copyright 1983-2001 Sun Microsystems, Inc. All rights reserved. [...]After a while the install will display a line like :
Configured interface hme0and then appear to hang. At this stage you will need to ping the client once from the jumpstart server and the install will continue :
[root@ls /]# ping -c 1 jsclientAll being well you should now be able to manually configure and install your client!
The next step is to configure Jumpstart to allow hands-free installs. This process is mostly the same as for a Solaris Jumpstart server, described at http://www.docbert.org/Solaris/Jumpstart/
Once you have setup a sysidcfg and/or install_config directory you'll need to add pointers to them into the client entry in /etc/bootparams :
sysid_config=jsserv:/jumpstart/sol8/conf/server/sysidcfg install_config=jsserv:/jumpstart/sol8/conf/server(These need to go on the same line as the other options for each client).