LJK/CDROM Reference Manual


Previous Contents Index


Chapter 6
Formatting a Volume Set

This chapter tells how to use LJK/CDROM to create an ISO-9660 Volume Set.

Volume Sets are key to the power of ISO-9660 allowing efficient access to much more data than will fit on a single disc. There are two general scenarios in which you format multiple Volumes to form a Volume Set.

6.1 Formatting Multiple Volumes With One Command

Using just the same commands as for a single Volume you can format a multiple member Volume Set. The major accommodation you need to make for the existence of multiple Volumes is to ensure the considerations in Section 4.1,Hierarchy Names and Volume Sets, are taken into account for smooth use of the resulting Volume Set on VMS. Using a /VOLUME qualifier for the CREATE HIERARCHY command that is similar to the default (or leaving the default) is the easiest way to do this.

6.2 Controlling Placement onto Volumes with Smaller Volume Groups

The Volumes written in response to a single command are called a Volume Group. By default LJK/CDROM arranges files on these various Volumes to minimize the number of Volumes required. If you would prefer to have precise control over which Files are on which Volumes, write each Volume as a separate Volume Group, followed by writing the next Volume using the method described in Section 6.3, Linking New Volumes into an Existing Volume Set.

6.3 Linking New Volumes into an Existing Volume Set

LJK/CDROM can add to an existing Volume Set through use of the LINK GROUP command. The list of commands used to format a Volume Set thus becomes:

  1. DEFINE CHARACTER_SET
    With this command you can define your own sets of legal characters for the Hierarchies you will create, if the predefined Character Sets described in Table 3-1, Predefined Character Sets, do not meet your needs. If you are adding Volumes to an existing Volume Set, you should define any custom Character Sets with this command before issuing the LINK GROUP command. By doing that, you ensure the Character Sets needed by the Hierarchies on the existing Volume Set.
  2. SET DEFAULT
    This command is an adjunct to the CREATE HIERARCHY command, intended to avoid repetitive typing and limitations on command line length. You can issue one or more SET DEFAULT commands prior to each CREATE HIERARCHY command, providing default values for the CREATE HIERARCHY command.
    SET DEFAULT commands issued prior to a LINK GROUP command also affect the following defaults for that command:
  3. LINK GROUP
    This command reads Hierarchies from the last Volume Group of an existing Volume Set. A Volume from that Volume Group must be mounted /FOREIGN in the device specified by the LINK GROUP command. The LINK GROUP command command must be issued before any CREATE HIERARCHY command.
  4. CREATE HIERARCHY
    With this command you define a Hierarchy, using the qualifiers you provide as well as those you have used before with the SET DEFAULT command.
    In the particular case where one has issued the LINK GROUP command, the CREATE HIERARCHY command first makes an attempt to match an existing anonymous Hierarchy that was imported from the previous Volume Group. If that succeeds, the existing Hierarchy is renamed, rather than creating a new Hierarchy.
  5. ADD
    This command specifies one or more input files for inclusion on the Volume being formatted.
  6. WRITE
    This command causes the actual formatting of one or more Volumes, possibly including additional input files specified as you did with the ADD command.


Chapter 7
Verifying a Volume

This chapter tells how to use LJK/CDROM to validate the ISO-9660 format of a Volume.

The longstanding rules of computer data interchange are:

  1. Be conservative in the data your program generates.
  2. Be liberal in the data your program accepts.
In the arena of ISO-9660, many operating systems, including VMS, are quite liberal in what they will accept, correctly reading Volumes that have errors they can work around. That good compliance with rule 2 is important because many nominally ISO-9660 Volumes are written without following rule 1, generating whatever will be accepted by the operating systems on which the producing organization happens to test reading the data.

This obviously can lead to problems when data is transferred to someone using a different operating system or a different version of a tested operating system.

The purpose of the command LJK/CDROM VERIFY is to provide a strict reading of ISO-9660 Volumes so that authors can determine whether what they write correctly adheres to the relevant specifications, rather than whether it just happens to work on a limited number of operating systems where they test reading their Volumes.

7.1 Implicit Verification Processing

In addition to the explicit use of the VERIFY command, LJK/CDROM also performs verification processing in three other circumstances.

  1. on each Volume after it has been formatted
    This verification can be suppressed with the /NOVERIFY qualifier.
  2. on input Volumes to the COMPARE command
    This verification cannot be suppressed, since LJK/CDROM cannot make a meaningful comparison between Volumes that are not in a proper ISO-9660 format.
  3. on input Volumes to the LINK GROUP command
    This verification cannot be suppressed, since LJK/CDROM cannot merge in data from an exiting Volume that is not in a proper ISO-9660 format.

7.2 Suppressing Errors

When you explicitly use the VERIFY command and encounter errors, you may want to get a thorough understanding of the exact nature of the errors. By default LJK/CDROM will display every error it encounters, but at times that can get in the way, since the same fault that caused an error on one File from the input Volume might very well cause the same error on every other File as well!

There are two mechanism for suppressing errors from an explicit VERIFY command, allowing you to look more carefully to understand all the sources of such errors.

7.2.1 Suppressing Multiple Errors

The VERIFY command qualifier /SHOW defaults to MULTIPLE_ERRORS to indicate each instance of a particular error. By specifying /SHOW=(NOMULTIPLE_ERRORS,... you can suppress many error reports, particularly those associated with Posix extensions.

7.2.2 Suppressing Particular Errors

The VERIFY command qualifier /TOLERATE can be used to suppress particular classes of errors, particularly for cases when a Volume was created with a mechanism that made a particular type of error repeatedly.


Chapter 8
Comparing Two Volumes

This chapter tells how to use LJK/CDROM to perform a logical comparison between two Volumes).

The COMPARE command makes a logical comparison between two Volumes. In doing so, it ignores certain differences that would be reported by a block-for-block comparison:

There are two particular circumstances where you might find it helpful to be able compare two Volumes.

The COMPARE command was provided within LJK/CDROM in order to check the operations of LJK/CDROM, but of course it can be used to check the operations of other ISO-9660 formatting tools as well.


Chapter 9
Command Reference

This chapter describes the commands for controlling LJK/CDROM in a reference format.

9.1 Command Summary

LJK/CDROM commands can be divided into three basic groups:

9.2 Command Formats

There are two distinct methods for issuing LJK/CDROM commands.

In the command descriptions shown in the following pages both the DCL Command Format and the Subsystem Command Format are shown where applicable.

Requirement

You must use the Subsystem Command Format when using any of the commands:
  • DEFINE CHARACTER_SET
  • LINK GROUP
  • SET DEFAULT
  • CREATE HIERARCHY
  • ADD
because those commands merely set up definitions for a subsequent WRITE command. If you exit from Subsystem mode back to DCL before you issue the WRITE command, all results of the 5 listed commands will be lost.

The LJK/CDROM WRITE command can be issued directly from DCL, but only when creating very simple Volumes, since the 5 listed commands cannot be used for preparation.

An additional format is shown for the HELP command, since help information about LJK/CDROM is stored in the main HELP library and can therefore be accessed by the DCL HELP command.

While LJK/CDROM returns meaningful status to DCL, the code may have the INHIB_MSG bit set or it may be clear. Those who write command procedures handling the status returned by LJK/CDROM should always discount that bit before making comparisons.

9.3 Specifying Arbitrary Characters

Qualifiers described in any of the forms:


/QUALIFIER_NAME=character-list 
/QUALIFIER_NAME=a/a1-character 
/QUALIFIER_NAME=d/d1-character 
can take a list of elements which will be concatenated into a single set of characters as follows:

This mechanism allows a full range of ANSI characters to be specified, but does not depend on VMS extended parsing which is not available on earlier versions of VMS or on VAX.

LJK/CDROM does check to ensure that the characters specified conform to ISO-9660 and ISO-2022 by being restricted to the G0 and G1 ranges (i.e., not having decimal values 0-31 or 128-159)

9.4 Detailed Specification of Individual Commands

The following pages in this chapter contains full documentation of individual commands available for LJK/CDROM.


ADD

Add one or more VMS files to the set which will be written to a Volume.

Format

$ LJK/CDROM ADD input-filespec,...

Positional Qualifiers Defaults
/EFFECTIVE=date None.
/[NO]EXPIRATION /EXPIRATION
/NAMES=list-of-hierarchy-name-pairs None.
/SHOW=(keyword[,...]) See below.
/[NO]VMS_ATTRIBUTES /VMS_ATTRIBUTES

restrictions


Parameters

input-filespec

Possibly wildcarded file specification for files to be added.

Description

Add the specified VMS file(s) to the set which will be written to a Volume when the next WRITE command is given.

The ADD command and the corresponding WRITE command must be issued in the same invocation of LJK/CDROM subsystem mode (with LJK/CDROM issuing the prompt "LJKCÑ").


Qualifiers

/EFFECTIVE=date

Specifies the date that should be recorded for the effective date of the file(s). Such a date will be recorded in the ISO-9660 Extended Attribute Record, and in Hierarchies for which Rock Ridge information is being recorded the date will also be recorded in the TF System Use Entry.

/EXPIRATION (D)

/NOEXPIRATION

Specifies that the expiration date from the VMS file is to be recorded for the expiration date of the file on the Volume being written. Such a date will be recorded in the ISO-9660 Extended Attribute Record, and in Hierarchies for which Rock Ridge information is being recorded the date will also be reported in the TF System Use Entry.

This qualifier is provided because the meaning of an Expiration Date on a VMS file is locally defined and such a date may not be appropriate for distribution to other sites.

/NAMES=([hierarchy-name=]ISO-filespec[,...])

Specifies the File Identifiers and Directory Identifiers under which files are to be stored on various Hierarchies of the Volume being created.

The Directory Identifiers and File Identifiers for the Primary Hierarchy must consist of D-Characters (no dollar signs allowed) while the Directory Identifiers and File Identifiers for supplementary Hierarchies must consist of D1-Characters (as specified by the Character Set for the Hierarchy).

If the "[hierarchy-name=]" string is omitted, LJK/CDROM attempts to store under the specified filespec in all Hierarchies, producing an error message if that effort fails in any Hierarchy.

If this qualifier is not provided, LJK/CDROM attempts to use the input Directory Identifiers and File Identifiers for all Hierarchies, producing an error if any of the characters are illegal for any of the Hierarchies.

Besides the VMS-style, specification of Directory Identifiers for a Hierarchy can also be done in two other manners, if the initial character is not "[" or "<":

If no directory is specified, the directory from the input filespec is used for the output volume. To put a file into the root directory, as is required for files specified on the CREATE HIERARCHY or SET DEFAULT command qualifiers: specify the directory as [] in the /NAMES qualifier.

/SHOW=DEBUG

DETAILS

MULTIPLE_ERRORS (D)

PROGRESS (D)

SUMMARY (D)

Specifies what information should be displayed during the command.

/VMS_ATTRIBUTES (D)

/NOVMS_ATTRIBUTES

Specifies that VMS-specific RMS attributes are to be stored on the Volume being created. This is the default.

Omitting the VMS-specific RMS attributes will inhibit reading of relative and indexed files from the Volume, but will not interfere with sequential files, including those with variable-length records.

Omitting the VMS-specific RMS attributes will not save any space on the Volume. The major use for omitting the VMS-specific RMS attributes would be to test on VMS (by mounting the resulting Volume) that the standard ISO-9660 support for sequential file record formats are working correctly. That is the purpose for which LJK Software uses the /NOVMS_ATTRIBUTES form of this qualifier.


Example


LJKCÑ ADD FILE.DAT/NAMES=(QWX=AA:BB:,WER=[QWT.OYT])
      

Include FILE.DAT in the [AA.BB] Directory of the QWX Hierarchy and the [QWT.OYT] Directory of the WER Hierarchy.


LJKCÑ ADD DISK$A:[*...]FILE.DAT/NAMES=(QWX=FOO.TXT,WER=FIE.LOG)
      

Include all instances of FILE.DAT in the corresponding Directories naming them FOO.TXT in the QWX Hierarchy and FIE.LOG in the WER Hierarchy.


LJKCÑ ADD DATA.TXT/NAMES=(EWOY=FIE.LOG;)
      

Include DATA.TXT in the corresponding Directory of the EWOY Hierarchy naming it FIE.LOG and giving it a File Name Version one greater than the highest existing File Name Version.)


LJKCÑ ADD DATA.TXT/NAMES=(EWOY=FIE.LOG)
      

Include DATA.TXT in the corresponding Directory of the EWOY Hierarchy naming it FIE.LOG and preserving the initial version number as the File Name Version (failing if a file with that File Name, File Name Extension and File Name Version previously was included in that Directory.)


Previous Next Contents Index