CONFIG_SERVER(8) — MAINTENANCE COMMANDS
NAME
config_server − install architecture dependent executables on a heterogeneous file server
SYNOPSIS
/usr/etc/setup/config_server [ −v ] [ −x ] [ −f tapefile ] [ −p pid ] [ −t tapetype ] [ −c configfile ] [ −n os_release ] client_arch
DESCRIPTION
The config_server command installs architecture dependent executables from either a local tape drive or a remote host. It is used to convert a standalone Solbourne system into a file server for Solbourne and Sun diskless clients. This utility must be invoked by the super-user.
The client_arch argument(s) specify the machine architecture(s) to install (for instance, Series4, Series5, sun4, sun4c, sun3, sun2, sun386). At least one client_arch argument must be specified. When run with no arguments, the config_server command will display usage information that includes the complete list of supported architectures.
A log of all invocations of config_server is maintained in /var/log/diskless_log, along with all other diskless client installation or de-installation activity.
OPTIONS
−v Enable verbose output message display during execution.
−x Execute the "set -x" command to enable shell execution tracing. This feature is useful for determining the actions of config_server, but will cause the script to detect an error after all normal processing has completed.
-f tapefile
Specifies the host and either the tape device or a directory pathname containing tar (1) images of the architecture dependent executables. For a local tape drive or directory, tapefile is simply the fully qualified pathname of the desired input, as in "/dev/rst0" for a local tape. If a remote host contains the desired tape or directory, this remote host name should precede the normal pathname. For example "tapehost:/dev/rmt0" specifies a tape on the remote server "tapehost". When installing from a cd-rom, tapefile should be the mount-point of the cd-rom. Installing cd-rom requires use of a configfile (see below). If the tapefile option is not specified, config_server will use the local tape drive "/dev/rst0".
-p pid Process id of system administration installation tool handling display output. This option should only be used when config_server is invoked by the system administration tool.
-t tapetype
specifies the tape media type, either "1/2" for 9-track reel-to-reel tapes, or "1/4" for streamer tapes.
-c configfile
specifies the software release tape configuration file to use for Sun architectures. It also specifies the Solbourne configuration file to use when installing from cd-rom. A number of tape configuration files exist in the directory "/usr/etc/setup". For instance, the file "/usr/etc/setup/sun4-4.0.3c-t1.4" describes the 1/4-inch tape layout for the SPARCStation SunOS 4.0.3.c release. The file "/usr/etc/setup/S5-cd" describes the cd-rom layout for a Series5 OS/MP 4.1A.3 or 4.1B release. All file systems specified in the configfile will be read in. See the section "CONFIGURATION FILES" below for a description of the format of configuration files and how to create them.
-n os_release
Indicates the operating system and release level of the executables being installed. This enables a server to support clients of the same machine type, but different OS release levels, simultaneously. For os_release, use a description such as osmp.4.0D or sunos.4.0.3. Later, when invoking the command install_client(8), use the same string as the argument to its -n option. The string may be anything you wish, so long as your local usage is consistent between the two commands. The effect is to create subdirectories of /export/exec, /export/exec/kvm, and /export/root which indicate the OS release. For example:
example# config_server -n osmp.4.0D Series5
The above command creates /export/exec/Series5.osmp.4.0D, and so forth. The prototypical root directory would be named /export/root/Series5.osmp.4.0D. Without -n, path names are built using just the architecture. For example:
/export/exec/Series5
/export/exec/kvm/Series5
/export/root/proto.Series5
Use the -n option when a client has the same machine type as the server, but a different OS version; or the same machine type as another client on the server, but a different OS version from that client.
USAGE
The config_server utility creates a new directory structure under the /export directory or symbolic link. The new directory structure is as follows:
/export/root Contains architecture-dependent root file system prototype directories, such as /export/root/proto.Series4, and individual client root directories or symbolic links to client root directories.
/export/swap Contains client swap file subdirectories and large client swap files. There is no need to keep backups of data in this directory.
/export/exec Contains architecture-dependent executable directories for the supported client machine architectures. For example, the directory /export/exec/sun3 would contain the executables for Sun-3 diskless or dataless clients. The directories here will be mounted by clients as their "/usr" file system.
/export/exec/kvm Contains architecture-dependent executable directories which will become the client "/usr/kvm."
/export/crash Will contain a directory for each installed client. Mounted by diskless clients as their "/var/crash" directory. These directories may contain large savecore(8) dumps from clients, and do not need to be backed up.
/export/share Directory or symbolic link containing "/usr/share" data. If it is desired for a client to have a different directory than normal, it should be placed here, and mounted by the client as "/usr/share".
/export/dump Currently, this directory is not used, but is created for compatibility.
It is recommended that /export be mounted on a separate file system with a large amount of free disk space, since the architecture-dependent executables require a considerable amount of space, and the install_client(8) command will create diskless client swap files in /export/swap which will require at least 8 megabytes each. If no /export directory or symbolic link exists, config_server will create it as a directory in the root file system.
If the prototype root or usr directories do not exist when config_server is invoked, then they will be created using tapefile. If desired, these directories can be cloned from some other running system rather than having config_server read the installation tape(s). Care should be taken when doing this, however, to make sure all required files are installed. Here is an example of cloning an existing "/usr" directory from a remote sun server. Note that the remote server must be exporting its "/usr" file system (see exportfs(8)), and the /export/exec directory is assumed to exist.
example# mkdir /export/exec/sun3
example# /etc/mount sun_host:/usr /mnt
example# cd /mnt
example# find . -print | cpio -pdum /export/exec/sun3
If a root prototype directory is cloned this way, make certain that its "dev" directory contains all the normal character and block special entries.
If the tapefile option was specified, but the pathname does not begin with "/dev/r" and no configuration file was specified via -c, then tapefile must be a directory containing tar(1) format archives for the specified client_arch. These archives should have names of the form module.client_arch[.release]. The .release is used if and only if the -n os_release argument is given. Two archives are required: root and usr. Any optional software may also appear. Config_server copies some files from the freshly installed /usr/stand directory to /tftpboot. In later SunOS releases, the stand directory has been moved under the kvm directory. When configuring a server by the directory of archives method, config_server does not look for a kvm archive to extract before attempting this copy. This means that config_server will fail when it attempts to copy non-existent files. If this is a problem, use a configuration file as described in the CONFIGURATION FILES section. This feature is provided for backwards-compatibility with previous releases of config_server. It will not be supported after the 4.1A release.
The /etc/exports file will also be updated by config_server (see exportfs(8)) to export the directories it has installed. Symbolic links are traversed to get to the real pathnames, and then previous entries in /etc/exports are scanned looking for parent directories which may already be exported, and updated appropriately. It is not recommended that the /usr or /home directories be used for the /export directory, since this would require all diskless clients to have root access permission to the entire /usr or /home directory. There can also be errors with /usr/etc/exportfs when more than ten clients are installed. The system administrator should verify /etc/exports to make sure that the listed directories have been exported to the correct groups, and all required systems have the desired access privileges. It may be necessary to set up network groups (see netgroup (5)) when installing more than ten clients.
If the /tftpboot directory does not exist, config_server will create it, copy the appropriate architecture-dependent executables into it. If necessary, the rpc.bootparamd server (see bootparamd(8)), and the rarpd service (see rarpd(8)) will also be started. In addition, the /etc/inetd.conf file (see inetd.conf(5)) will be modified to enable the tftpd server.
If you want to run config_server and install a diskless client somewhere other than under /export, set the environment variable EXPORT_DIR to override the default value /export.
NOTE: Because OS/MP does not support the older network disk (nd) software, it is not possible for a Solbourne server to support diskless clients which are not also running SunOS 4.0 (or later) or OS/MP for their architecture.
CONFIGURATION FILES
The general format of a config file is:
# Comments start with "#", either full-line or
# after all data fields on a line.
# Data fields are separated by white space.
location archive-name format
For tapes, location is the tape volume (counting from 1) followed by the file number (counting from 0), with the two separated by white-space. For disk-based installations, location is the path name of the archive on disk. This path excludes the mount-point of the disk. Thus, for current Sun cd-rom distributions, paths will start with export/ and config_server would be run with -f /cdrom, assuming the cd-rom is mounted on /cdrom. The optional format is the type of archive being extracted. Currently, "tar" and "tarZ" are supported. "tarZ" is the compressed version of a standard tar. If this field is not supplied, it defaults to "tar". Compressed tar archives are used by Sun on the SunOS 4.1.1 distribution tape. One non-comment line appears for each tar that is to be installed. Two entries are required: one for "root" and one for "usr". For SunOS or OS/MP 4.1 and later, a "kvm" entry is also required.
CREATING A SUN TAPE CONFIGURATION FILE
To obtain an exact description of a Sun-supplied tape requires the Sun3 or Sun4 /usr/etc/install/xdrtoc utility. Run the following commands on the Sun system containing xdrtoc. The Sun system must be in the .rhosts file on tapeserver.
# rsh -n tapeserver mt -f /dev/rst0 rewind
# rsh -n tapeserver mt -f /dev/nrst0 fsf 1
# rsh -n tapeserver dd if=/dev/rst0 | \
/usr/etc/install/xdrtoc | \
awk ’/SunOS/ {print "#"$0} \
/tar/ {print $1,$2,$3,$5}’ >/tmp/suntoc
The tape configuration file just created should be installed in the /usr/etc/setup directory on the Solbourne server with a name which reflects the Sun machine architecture, the SunOS release version, and the media format. If any Sun supplied archives are not required, the appropriate lines in the configuration file may be commented out by adding a "#" character to the beginning of the line.
CREATING A SUN DISK-BASED CONFIGURATION FILE
Creating a description of a disk-based distribution tree (such as a Sun-supplied cd-rom) requires several steps. The following examples are taken from the Sun 4.1.1 cd-rom. First, examine the file avail_arches at the root of the disk. It will contain lines like the following:
sun4.sun4c.sunos.4.1.1
sun4.sun4.sunos.4.1.1
sun3.sun3x.sunos.4.1.1
sun3.sun3.sunos.4.1.1
These lines are formatted as architecture.kernel.os-release. The architecture is the application architecture as defined by the processor family (SPARC, Motorola 68000, etc). The kernel is the model-specific architecture. The rest of the string is the version of the operating system. These three strings are used below in file names, with the one difference that periods in the os-release are changed to underscores. Of the available architectures and SunOS releases provided on the cd-rom, determine which one a config file is needed for. The possibilities from the above example are (in order):
SunOS 4.1.1 for a Sun 4c
SunOS 4.1.1 for a Sun 4
SunOS 4.1.1 for a Sun 3x
SunOS 4.1.1 for a Sun 3
Next, make a list of each archive to be extracted (see table below). This list must include the root, usr, and kvm archives, and may include optional software such as games. The list should be one line/archive, where each line is of the following form. The format field is optional.
path name [format]
So far, all archives on Sun cd-roms have been in tar(1) format. This may change in a future release.
| Example cd-rom Archive Paths | |
| File Set Name | Archive Path% |
| root | export/exec/proto_root_os-release |
| kvm | export/exec/kvm/kernel_os-release/kvm |
| sys | export/exec/kvm/kernel_os-release/sys |
| usr | export/exec/architecture_os-release/usr |
| manual | export/share/os-release/manual |
| optional∗ | export/exec/architecture_os-release/optional |
| %This layout description is based on the SunOS 4.1.1 cd-rom, and may change in future SunOS releases. | |
| ∗optional is an archive of optional software like games or demo. The config file name for each archive should be the same as the file name. | |
The configuration file just created should be installed in the /usr/etc/setup directory on the Solbourne server, choosing a name which reflects the Sun machine architecture, the SunOS release version, and the media format. If any Sun-supplied archives are not required, the appropriate lines in the configuration file may be commented out by adding a "#" character to the beginning of the line.
EXAMPLES
This first example shows how to install a SPARCStation client using a tape drive on a remote server:
example# config_server -f tapehost:/dev/rst0 -c \
/usr/etc/setup/sun4-4.0.3c-tl.4 sun4c
Load release tape containing "root" for "sun4c" architecture
Enter RETURN when ready: [cr]
The second example shows how to configure a server for a Solbourne Series4 diskless client:
example# config_server Series4
Load release tape containing "root" for "Series4" architecture
Enter RETURN when ready: [cr]
This third example is a tape configuration file for the Sun 3, 4.0.3 ¼-inch tape distribution:
1 6 root tar
1 7 usr tar
1 8 kvm tar
1 10 Sys tar
1 11 Networking tar
1 12 Debugging tar
2 2 SunView_Users tar
2 3 SunView_Programmers tar
2 4 SunView_Demo tar
2 5 Text tar
2 6 User_Diag tar
2 7 SunCore tar
2 8 uucp tar
2 9 System_V tar
2 10 Manual tar
2 11 Demo tar
2 12 Games tar
2 13 Versatec tar
2 14 Security tar
The fourth example is a disk configuration file for the Sun 4c, 4.1.1 cd-rom distribution. It demonstrates using the default value for format, as well as showing that the name associated with an archive does not need to match the actual on-disk file name of the archive. The paths given are relative to the mount point specified on the config_server command line. A leading / is allowed, but not necessary.
export/exec/proto_root_sunos_4_1_1 root export/exec/kvm/sun4c_sunos_4_1_1/kvm kvm export/exec/kvm/sun4c_sunos_4_1_1/sys sys export/exec/sun4_sunos_4_1_1/debugging debugging export/exec/sun4_sunos_4_1_1/demo demo export/exec/sun4_sunos_4_1_1/games games export/exec/sun4_sunos_4_1_1/graphics graphics export/exec/sun4_sunos_4_1_1/install install export/exec/sun4_sunos_4_1_1/networking networking export/exec/sun4_sunos_4_1_1/openwindows_demo ow_demo export/exec/sun4_sunos_4_1_1/openwindows_fonts ow_fonts export/exec/sun4_sunos_4_1_1/openwindows_programmers ow_programmers export/exec/sun4_sunos_4_1_1/openwindows_users ow_users export/exec/sun4_sunos_4_1_1/rfs rfs export/exec/sun4_sunos_4_1_1/security security export/exec/sun4_sunos_4_1_1/shlib_custom shlib_custom export/exec/sun4_sunos_4_1_1/sunview_demo sv_demo export/exec/sun4_sunos_4_1_1/sunview_programmers sv_programmers export/exec/sun4_sunos_4_1_1/sunview_users sv_users export/exec/sun4_sunos_4_1_1/system_v system_v export/exec/sun4_sunos_4_1_1/text text export/exec/sun4_sunos_4_1_1/tli tli export/exec/sun4_sunos_4_1_1/user_diag user_diag export/exec/sun4_sunos_4_1_1/usr usr export/exec/sun4_sunos_4_1_1/uucp uucp export/exec/sun4_sunos_4_1_1/versatec versatec export/share/sunos_4_1_1/manual manual
The last example is a disk configuration file for the Series6, OS/MP 4.1B cd-rom distribution. This configuration file contains the tars root, usr, and kvm, which are required. The other tar files listed are optional, and may be added by taking out the "#" at the beginning of the corresponding line. Filenames on Solbourne cd-rom MUST be specified with a leading / (slash).
#Filename on cd-rom Name Description
/Root.tar root # Root filesystem
/Usr.tar usr # Required /usr/files
/Kvm.Series6.tar kvm # /usr/share/sys files for custom kernel s
#/debugging.tar debugging # Program debugging aids
#/games.tar games # Games and demonstration programs
#/graphics.tar graphics # Basic plot-generating applications
#/manual.tar manual # On-line manual pages
#/networking.tar networking # Networking tools and programs
#/rfs.tar rfs # System V remote file system utilitys
#/security.tar security # C2 security support
#/shlib_custom.tar shlib_custom # Support for customizing shared C libra ry
#/sunview_programmers.tar sv_programmers # Sun View program development s upport
#/sunview_users.tar sv_users # Basic Sun View support
#/system_v.tar system_v # System V compatibility files
#/text.tar text # nroff/troff text processing
#/tli.tar tli # Support for System V transport layer i nterface
#/uucp.tar uucp # uucp files
#/versatec.tar versatec # Versatec raster printer/plotter support
FILES
/etc/hosts hosts database
/etc/ethers database of hostnames and Ethernet addresses
/export directory which will contain client root and swap directories, or symbolic links to client directories.
/etc/exports database of exported file systems
/etc/bootparams database of client root and swap files, used by rpc.bootparamd.
/etc/inetd.conf database of servers invoked by inetd. Must contain an entry for the tftp server.
/var/log/diskless_log log of all diskless client configuration and installation activity.
SEE ALSO
exportfs(8), inetd.conf(5), install_client(8), remove_client(8)
OS/MP Release Notes
System and Network Administration
DIAGNOSTICS
Invalid machine architecture “client_arch”.
You supplied a value for client_arch that is not supported.
Can’t reach tapehost “tapehost”.
The IP address of tapehost is not in the hosts database, that is, the hosts YP database if the Yellow Pages are running, or the /etc/hosts file otherwise.
Load release tape containing fs ...
Mount the release tape specified on the screen and type RETURN to continue. Consult the OS/MP release notes if necessary.
Enter tape file number for “fs”:
Enter the distribution/installation tape file number specified in the table of contents for the fs file system tar (1) format file. For Sun 4.0 distribution tapes, this value is ’7’ for the root file system tar image. For 1/4 inch tapes, the ’usr’ file system tar image is usually on the second tape at file number 3. For 1/2 inch tapes, the ’usr’ file system tar image is usually at tape file number ’8’.
Must be run by the super user
You must login as root or use the su command.
Can not create “dir”
An error occurred creating the specified directory. Verify symbolic links (if any) and permissions of parent directories.
Can not change permissions on “dir”
An error occurred setting the permissions of the specified directory. Verify symbolic links (if any) and permissions of parent directories.
Can not create symbolic links in “dir”
An error occurred creating symbolic links in the specified directory. Verify directory permissions.
Can not copy /usr/stand/∗ to /tftpboot
An error occurred copying architecture dependent files to the /tftpboot directory. Verify permissions on /tftpboot.
Can not update /etc/inetd.conf
An error occurred enabling the tftp server in the inetd.conf database. Check this file, and make certain it contains an entry for the tftpd service.
Check “/etc/exports”
The /usr/etc/exportfs command detected an error. Verify /etc/exports, and run "/usr/etc/exportfs -a".
Can not make devices in prototype directory
An error occurred executing the MAKEDEV script in the prototype root device directory. Verify the installation tape contains this script.
Can not rewind tape ...
An error occurred trying to rewind the tape. Make sure the tape is correctly mounted. For remote tape servers, check that the /.rhosts file on the remote tape server contains a entry for the Solbourne server.
Can not position tape
An error occurred positioning the tape to the specified tape file number. Verify tape file number specified.
Error occurred reading tape
An error occurred reading the input tape.
Input file “file” does not exist
The tapefile directory specified does not contain the required tar input file.
WARNING: There may not be enough free disk space ...
The /export directories on the server may not have enough free disk space for a successful configuration, or else may not have enough free disk space for a single client installation. Use the df(1) command to verify. There must be at least 35,000 Kbytes available.
WARNING: inetd server not sent SIGHUP
the inetd(8) server needs to be sent signal number 1 (SIGHUP) to cause it to reread the updated /etc/inetd.conf file. The process id for the server could not be found, either because it is not running, or because ps(1) failed. Verify the inetd server is running, and use kill(1) to send it to SIGHUP signal. Otherwise, reboot the server.
Solbourne Computer, Inc. — 12 Nov 1992