Recovering a Failed System with JumpStart
The typical mechanism for attempting recovery on a failed system is to boot the host from the Solaris OE installation CD. This approach is the most direct method to bring the to-be-recovered host to a point where some form of corrective action can be initiated. However, this method does have a major drawback: the unalterable nature of the CD restricts the available tools and thereby restricts the recovery procedures or adversely affects the recovery time. Tools commonly used in the datacenter, such as Veritas Volume Manager (VxVM), Veritas NetBackup, or Solstice Backup_ software are either completely unavailable or very cumbersome to use when booted from the CD.
Booting from the network with JumpStart technology is virtually identical to booting from the CD-ROM. Although the mechanics of access to the filesystem and data files may differ between a network boot and a CD boot, the operating environment image loaded when booting from the network is identical to the one loaded when booting from the CD-ROM. In addition, booting from the network restricts the system administrator in the same fashion as booting from the CD itself; the root filesystem provided to the client is mounted read-only. However, since the JumpStart server's boot image originates on writable media, it can be modified at the server side before the client is booted.
JumpStart Recovery Techniques
An example of this concept is patching the JumpStart boot image for the Solaris OE. The boot image is patched, on the server, with the patchadd command. When a client does a network boot, it is served the patched kernel. Similarly to this straightforward patching procedure, the boot image can also be changed to allow a different startup processing or can even be augmented with other tools that might prove useful during a service event or a system recovery.
Additionally, by modifying the client's boot image, you can install software tools commonly used in the datacenter into the JumpStart boot image and configure them for use by any system which uses that boot image.
Further, by installing Solaris for IA on a laptop and modifying the JumpStart miniroot on the laptop, you can create a mobile recovery server. This mobile recovery server can then be deployed onto whatever subnet is necessary at the time of system recovery.
To understand how to correctly modify or augment the client's boot image, you must understand how the JumpStart server maps the filesystem that contains the boot image to the client's view of the same filesystem. For example, to modify the network services available on the client, you may need to modify the client's /etc/inetd.conf file. If this is the case, you must locate and modify the client's /etc/inetd.conf file on the JumpStart server.
This information is controlled, in part, by the manner in which the JumpStart server was installed. /jumpstart is the filesystem that is used as the location for all JumpStart configuration information, profiles, boot images, and software installation packages.
Use commands setup_install_server and add_to_install_server to copy the boot image and install packages from the Solaris OE Software CD-ROMs to the specified directory (/jumpstart/OS/Solaris_8_2001-04) on the JumpStart server.
Execute the add_install_client command to configure the sample client (client06) to boot from this server image.
Use the add_install_client command to update (or create if necessary) the/etc/bootparams file containing the information for the specified client.
Specify the -e and -i options and instruct add_install_client to update /etc/ethers and /etc/hosts, respectively, if necessary.
/jumpstart is shared through the NFS system with read-only access rights and the effective UID of unknown users mapped to root. For the anon=0 option, see the share_nfs(1M) man page for additional details.
The following command sample illustrates a typical installation and configuration of a JumpStart server.
server01# share -F nfs -o ro,anon=0 /jumpstart server01# mkdir /jumpstart/OS/Solaris_8_2001-04 server01# cd /cdrom/sol_8_401_sparc/s0/Solaris_8/Tools server01# ./setup_install_server /jumpstart/OS/Solaris_8_2001-04 Verifying target directory... Calculating the required disk space for the Solaris_8 product Copying the CD image to disk... Install Server setup complete [ insert Solaris 8 Software cd 2 of 2 ] server01# cd /cdrom/sol_8_401_sparc_2/Solaris_8/Tools server01# ./add_to_install_server /jumpstart/OS/Solaris_8_2001-04 The following Products will be copied to /jumpstart/OS/Solaris_8_2001-04/Solaris_8/Product: Solaris_2_of_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 the Early Access products... 213481 blocks Processing completed successfully. server01# cd /jumpstart/OS/Solaris_8_2001-04/Solaris_8/Tools server01#./add_install_client \ > -i 126.96.36.199 -e 8:0:20:7c:ff:d0 \ > -p server01:/jumpstart/Sysidcfg/Solaris_8 \ > -c server01:/jumpstart \ > client06 sun4u
Examination of /etc/bootparams shows how the JumpStart server, server01, view of the client's root filesystem is mapped to the client server, client06, view.
client06 root=server01:/jumpstart/OS/Solaris_8_2001-04/Solaris_8/Tools/Boot install=server01:/jumpstart/OS/Solaris_8_2001-04 boottype=:in sysid_config=server01:/jumpstart/Sysidcfg/Solaris_8 install_config=server01:/jumpstart rootopts=:rsize=32768
The parameter root is set to server01:/jumpstart/OS/Solaris_8_2001-04/Solaris_8/Tools/Boot. This is what the NFS filesystem client06 mounts as its root filesystem when booting over the network. Since the JumpStart environment variable, $ROOTDIR, is set to this value, the JumpStart server's view of this directory is commonly referred to as $ROOTDIR. In this example, $ROOTDIR is set to server01:/jumpstart/OS/Solaris_8_2001-04/Solaris_8/Tools/Boot. Locating or placing a file into the client's filesystem on the JumpStart server simply becomes a matter of prefixing $ROOTDIR to the file. For example, if the client needs to have a file placed in its /etc directory, that file must be placed in $ROOTDIR/etc on the JumpStart server.