Solaris 9 Installation Guide

Creating a Solaris Flash Archive

You can create an archive with an initial installation that overwrites all the files on the clone system, or you can create a differential archive that only overwrites the changes that are specified. For an overview of a differential archive, see Planning To Create the Solaris Flash Differential Archive.

To Create a Solaris Flash Archive for an Initial Installation

After you install the master system, create a Solaris Flash archive to use to install other systems.

  1. Boot the master system and run it in as inactive a state as possible.

    When possible, run the system in single-user mode. If that is not possible, shut down any applications that you want to archive and any applications that require extensive operating system resources.

    You can create a Solaris Flash archive while the master system is running in multiuser mode, single-user mode, or while booted from one of the following:

    • Solaris 9 DVD.

    • Solaris 9 Software 1 of 2 CD.

    • An image of the Solaris 9 Software. If you are using CD media, the image could include the Solaris 9 Languages CD if needed.

  2. To create the archive, use the flar create command.


    # flar create -n name options path/filename
    

    name

    The name that you give the archive. The name you specify is the value of the content_name keyword.

    options

    For a description of options, see flar create.

    path

    The path to the directory in which you want to save the archive file. If you do not specify a path, flar create saves the archive file in the current directory.

    filename

    The name of the archive file. 

    • If the archive creation is successful, the flar create command returns an exit code of 0.

    • If the archive creation fails, the flar create command returns a nonzero exit code.

  3. Make a copy of the archive and save it. The copy can be used in the future to update a clone system with a differential archive.

Examples — Creating an Archive for an Initial Install

File systems can be copied exactly or can be customized by excluding some directories or files. You can achieve the same results by using different options. Use the options that best suit your environment.

The file systems in the following examples have been greatly simplified for clarification. Rather than use file system names such as /var, /usr, or /opt, the master system file structure for these examples is the following:


/aaa/bbb/ccc/ddd
/aaa/bbb/fff
/aaa/eee
/ggg

Caution – Caution –

Use the flar create file exclusion options with caution. If you exclude some directories, others that you were unaware of might be left in the archive, such as system configuration files. The system would then be inconsistent and the installation would not work. Excluding directories and files is best used with data that can easily be removed without disrupting the system, such as large data files.



Example 18–6 Creating an Exact Duplicate Archive

In this example, the archive is named archive1. It is copied exactly from the master system and then compressed. The archive is an exact duplicate of the master system and stored in archive1.flar.


# flar create -n archive1 -c archive1.flar

To check on the file structure of the archive, type the following.


# flar info -l archive1.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb/fff
aaa/eee
aaa/eee
ggg


Example 18–7 Creating an Archive and Excluding and Including Files and Directories

In this example, the archive is named archive2. It is copied from the master system but is not an exact copy. The content under the /aaa directory is excluded, but the content in /aaa/bbb/ccc remains.


# flar create -n archive2 -x /aaa -y /aaa/bbb/ccc  archive2.flar

To check on the file structure of the archive, type the following. The excluded directories that include copied files appear, but only the files that were restored contain data.


# flar info -l aaa
aaa
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb
ggg


Example 18–8 Creating an Archive Excluding and Including Files and Directories by Using Lists

In this example, the archive is named archive5. It is copied from the master system but is not an exact copy.

The exclude file contains the following list:


/aaa

The include file contains the following list:


/aaa/bbb/ccc

The content under the /aaa directory is excluded, but the content in /aaa/bbb/ccc remains.


# flar create -n archive5 -X exclude -f include  archive5.flar

To check on the file structure of the archive, type the following. The excluded directories that include copied files appear, but only the files that were restored contain data.


# flar info -l archive5.flar
aaa
aaa/bbb/ccc
aaa/bbb/ccc/ddd
aaa/bbb
ggg


Example 18–9 Creating an Archive Excluding Files and Directories by Using a List and Restoring a Directory

You can combine options -x, -y, -X and -f. In this example, options -X and -y are combined. The archive is named archive5. It is copied from the master system but is not an exact copy.

The exclude file contains the following list:


/aaa

The -y option restores the ccc directory. The following command produces the archive.


# flar create -n archive5 -X exclude -y /ccc  archive5.flar

To check on the file structure of the archive, type the following. The excluded directories that include copied files appear, but only the files that were restored contain data.


# flar info -l archive5.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
ggg


Example 18–10 Creating an Archive Excluding and Including Files and Directories by Using a List With the -z Option

In this example, the archive is named archive3. It is copied from the master system but is not an exact copy. The files and directories to be selected are included in filter1 file. Within the files, the directories are marked with a minus (-) or a plus (+) to indicate which files to exclude and restore. In this example, the directory /aaa is excluded with a minus and the subdirectory /aaa/bbb/ccc is restored with a plus. The filter1 file contains the following list.


- /aaa
+ /aaa/bbb/ccc

The following command produces the archive.


# flar create -n archive3 -z filter1 archive3.flar 

To check on the file structure of the archive, type the following command. The excluded directories that include copied files appear, but only the files that were restored contain data.


# flar info -l archive3.flar
aaa
aaa/bbb
aaa/bbb/ccc
aaa/bbb/ccc/ddd
ggg


Example 18–11 Creating an Archive From an Alternate Boot Environment

In this example, the archive is named archive4. It is copied exactly from the master system and then compressed. The archive is an exact duplicate of the master system and stored in archive4.flar. The -R option is used to create the archive from another directory tree.


# flar create -n archive4 -c -R /x/yy/zz archive4.flar


Example 18–12 Creating an Archive and Adding Keywords to Describe the Archive

In this example, the archive is named archive3. This archive is copied exactly from the master system and then compressed. Options add descriptions to the archive identification section, which can help you to identify the archive later. For information on keywords, their values, and formats, see Solaris Flash Keywords.


# flar create -n archive3 -i 20000131221409 -m pumbaa \
-e "Solaris 8 Print Server" -a "Mighty Matt" -U "Internal Finance" \
-T server archive3.flar 

After the archive is created, you can access the identification section that contains the detailed description. An example of an identification section follows.


section_begin=identification
     files_archived_method=cpio
     files_compressed_method=compress
     files_archived_size=259323342
     files_unarchived_size=591238111
     creation_date=20000131221409
     creation_master=pumbaa
     content_name=Finance Print Server
     content_type=server
     content_description=Solaris 8 Print Server
     content_author=Mighty Matt
     content_architectures=sun4u,sun4m
     creation_node=pumbaa
     creation_hardware_class=sun4u
     creation_platform=SUNW,Sun-Fire
     creation_processor=sparc
     creation_release=5.9
     creation_os_name=SunOS
     creation_os_version=s81_49
     x-department=Internal Finance

To Update a Master Image and Create a Differential Archive

Before creating a differential archive, you need two images to compare: an unchanged master image and an updated master image. One image is the unchanged master image that has been kept unchanged. This image was stored and needs to accessed. The second image is the unchanged master image that is updated with minor changes. The root (/) file system is the default for the new image, but you can access this image if it has been stored elsewhere. After you have the two images, you can create a differential archive, which contains only the differences between the two images. The differential archive can then be installed on clones that were installed previously with the unchanged master image.

  1. Prepare the master system with changes. Before changes are made, the master system should be running a duplicate of the original archive.


    Note –

    A copy of the unchanged master image must be kept protected from changes and available for mounting later.


  2. Update the unchanged master image with any of the following changes.

    • Delete packages.

    • Add packages or patches.

    • Modify configuration files.

    • Add support for peripheral devices on the clone system.

  3. (Optional) Create custom scripts. See Creating Customization Scripts.

  4. Deliver the unchanged-master image in a mount point.

    • If the unchanged master image is stored on an inactive boot environment, retrieve by using the lumount command.


      # lumount BE_name mountpoint
      

      BE_name 

      Specifies he boot environment name where the unchanged master image is stored 

      mountpoint

      Specifies a root (/) file system where the image is stored

      In the following example, the inactive boot environment is named unchanged_master1. The mount point is the directory /a on the master system.


      # lumount  unchanged_master1 /a
      
    • If the image is stored on a clone, mount the clone by using NFS.

      1. On the master system, share the clone's root (/) file system and give the master root permissions on the clone system.


        # share -F nfs -o rw,root=master_system "/"
        

        master_system is the name of the master system.

      2. On the master system, mount the clone.


        # mount -F nfs clone_system:/ master_dir
        

      clone_system

      Specifies the name of the system to be mounted 

      master_dir

      Specifies the directory where the unchanged master image is stored. 

    • If you saved the image with the ufsdump command, use the ufsrestore command to retrieve a copy. For information on how to use these commands, see “UFS Backup and Restore Commands (Reference)” in System Administration Guide: Basic Administration.

  5. Create the differential archive.


    # flar create -n archive_name -A unchanged_master_image_dir\
     options path/filename
    

    archive_name

    Specifies the name that you give the archive. The archive_name you specify is the value of the content_name keyword. The name is listed in the archive identification section.

    -A unchanged_master_image_dir

    Creates a differential archive by comparing a new system image with the image that is specified by the unchanged_master_image_dir argument. By default, the new system image is root (/). You can change the default with the -R option. unchanged_master_image_dir is a directory where the unchanged system image is stored or mounted through UFS, NFS, or lumount.

    You can include and exclude some files by using the options for contents selection. For a list of options, see flar create.

    options

    For a description of options, see flar create.

    path

    Specifies the path to the directory in which you want to save the archive file. If you do not specify a path, flar create saves the archive file in the current directory.

    filename

    Specifies the name of the archive file. 

    • If the differential archive creation is successful, the flar create command returns an exit code of 0.

    • If the differential archive creation fails, the flar create command returns a nonzero exit code.

Examples — Creating a Differential Archive


Example 18–13 Creating a Differential Archive With the New Master Image On the Master System

In this example, the directory for unchanged master image is named unchanged_master1. The new master image that contains changes is the root (/) directory. The new master image is compared to the unchanged master image and the resulting differential archive is then compressed. The differential archive is stored in diffarchive1.flar file. The archive contains files that are to be deleted, changed, or added when installed.


# flar create -n diffarchive1 -A /a/unchanged_master1 -c diffarchive1.flar


Example 18–14 Creating a Differential Archive With the Images Stored on an Inactive Boot Environment

In this example, the unchanged master image, unchanged_master1, is stored on an inactive boot environment and is accessed by mounting the boot environment. The new master image is the root (/) directory. The new master image is compared to the unchanged master and the resulting differential archive is then compressed. The archive is stored in diffarchive4.flar. The archive contains files that are to be deleted, changed, or added when installed.


# lumount unchanged_master1 /a
# flar create -n diffarchive4 -A /a -c  diffarchive4.flar