Installing the "clone" tools ============================ 1. Download the tarball from http://www.deer-run.com/~hal/jumpstart/clone/clone.tar.Z 2. Unpack the tarball to create a directory called "clone". To unpack the tarball: cd /path/to/inst/dir zcat /path/to/tarball/clone.tar.Z | tar xf - It works best if the install directory is in the same partition as your Jumpstart configuration directory. 3. Verify that the settings of CSRVR and CDIR at the top of the clone script are appropriate for your installation. 4. Copy the bin/clone script into your Jumpstart configuration directory (this is the directory where the system profiles and rules file live). If the Jumpstart directory and the clone directory are in the same partition, then you can just use a hard link (symlinks will _NOT_ work!). 5. Optionally copy (or link) the clone-postinst script into the Jumpstart directory as well. The script provided in the tarball is merely a sample-- the local administrator should modify the script to perform local customizations as needed. 6. Review the clone/conf/README file and see if you wish to override any of the default settings. Preparing to "clone" ==================== 1. Pick a machine and create the "standard" image you will be cloning. This would include the OS install, patch installs, additional third-party software (SSH, GNU utilities, etc.), local configuration (resolv.conf and nsswitch.conf, defaultrouter, NTP configuration, accounts and passwords, etc.) as needed. 2. Make level 0 dumps of all partitions of the "standard" server and write the dumps to individual compressed tarfiles. Assuming the "standard" image had /, /usr, /var, and /usr/local partitions, the commands might look like: ufsdump 0f - / | compress >/tmp/root.dump.Z ufsdump 0f - /usr | compress >/tmp/usr.dump.Z ufsdump 0f - /var | compress >/tmp/var.dump.Z ufsdump 0f - /usr/local | compress >/tmp/usr-local.dump.Z Note that the names of the dump files are important-- the file names should be the partition name with the leading "/" removed and any other "/" characters converted to dashes ("-"). The image of the root file system should be named "root.dump.Z". 3. Create a subdirectory in the clone/images directory (on the server where the clone distribution was installed) to hold the dump files. The subdirectory name is of the form "-", e.g. "SUNW,Ultra-5_10-5.8". Often you can compute the proper directory name by running "echo `uname -i`-`uname -r`" on the "standard" platform. Note that "uname -i" may not be reliable on non-Sun hardware, but the hardware string can also be obtained from the output of the "prtconf" command. 4. Copy the dump files to the subdirectory you created in Step #3. 5. Make a copy of the partition table (VTOC) on the "standard" machine's disk drive using the prtvtoc command (you will need to be root): prtvtoc /dev/dsk/c0t3d0s2 > Note that the device name for your disk device may vary, depending on your system. For the output file name ("" in the above command line) use the manufacturer's name for the drive-- this string is visible when you run the "format" command and are asked to select the disk you wish to format: # format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0 <==== look /pci@1f,0/pci@1,1/ide@3/dad@0,0 here Specify disk (enter its number): 0 [... lines deleted ...] format> quit # In this case, the name of the output file should be "ST39120A". 6. Copy the VTOC file to the clone/disks directory on the server where the clone distribution was installed. IMPORTANT NOTE: It's possible that different machines on your target network have different manufacturer's disk drives installed in them-- _even if_ the machines are all the same hardware type (such as all Ultra5s). You will need a separate VTOC file in the clone/disks directory for each manufacturer's hard drive that you plan to configure. This means that you will have to partition a sample drive and then capture the output of "prtvtoc" run against that drive (as per steps #5-6 above). Creating a clone ================ NOTE: This section assumes that the administrator has familiarity with the basic Jumpstart process and that a properly configured Jumpstart environment (with Boot, Config, and Install servers) is available. For more information on the Jumpstart process, see the "Solaris Advanced Installation Guide" (available from http://docs.sun.com) and/or http://www.deer-run.com/~hal/Jumpstart.pdf 1. Enter the target system's ethernet info into /etc/ethers on the local boot server. Make sure the boot server can resolve the target machine's IP address (via its hosts file, NIS, or DNS as appropriate). 2. Run the add_install_client script on the boot server (just like a normal Jumpstart) in order to prepare the proper boot environment. 3. Update the rules file in the Jumpstart configuration directory so that the clone process will be triggered for the target system: hostname clone - clone-postinst Any match rule could be used (for example, use "network 192.168.1.0" in order to clone all machines which Jumpstart from this network). Running the "clone-postinst" script is optional (use a dash in this column if you don't want to run the post-install script). 4. Run the normal "check" script to validate the rules file and update the rules.ok file. 5. Boot the target system with "boot net - install" (as per a normal Jumpstart). Sit back and watch the fun!