| Sign In Sign-Up

Welcome!
Close
Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
No Thanks
Don't show this to me again.
Close

# DJE Systems
OpenVMS CD-ROM Page

Tips for preparing to burn OpenVMS CD-ROMs

Topics on this page:

Preparing a Disk Image
Physical Disks
Logical Disks
Virtual Disks
Creating the Logical Disk Container File
Bootable Disks
"Burning" the CD-R
CD-ROM Writing Software for OpenVMS
CDRECORD for OpenVMS
Writing CD-ROMs Using an InfoServer
Gear for Windows
Adaptec Easy CD Creator
Dual-Format (ISO-9660, ODS) CDs
ISO-9660 Vs. ODS
Creating an ISO-9660 Image
Summary
Related Links

Preparing an ODS Disk Image

The first step in writing an OpenVMS CD is to prepare a disk image. This includes building the directory tree and, if the disk will be bootable, writing the boot block. When the disk image is ready to be "cast in stone", and the CD-R will be burned on another machine, transfer the resulting disk image file to the system where you have software for burning the CD-ROM. Remember that all the file transfers MUST be done using BINARY mode (where appropriate).

There are at least three ways to prepare a disk image. We will discuss these three here:

- Physical Disks
- Logical Disks
- Virtual Disks

The methods discussed here are for producing an ODS (ODS-2 or ODS-5) structured CD-ROM. For ISO-9660 filesystems, see the information elsewhere on this page.

Physical Disks

The easiest way to prepare the "image" of a CD-ROM disk is to copy your files onto a small disk drive, such as an RZ25 (about 450 MB). You can even use something as small as an RD54 (about 154 MB), if that's all you need. An InfoServer partition can also serve this purpose.

Just prepare your directory tree on a small disk drive. When you're satisfied that you're ready to "cast in stone" the work you've prepared, DISMOUNT the disk (preferably /NOUNLOAD), MOUNT it /FOREIGN and COPY the device to a file:

Example:
`$ MOUNT/NOASSIST/FOREIGN ddcu:`
`$ COPY ddcu: CDROM.DSK`
`$ DISMOUNT/NOUNLOAD ddcu:`

Although the COPY command will terminate with an error, the output file is complete and intact. If the CD-R will be burned on another machine, transfer the resulting file to the system where you have software for burning the CD-ROM. Remember that all the file transfers MUST be done using BINARY mode (where appropriate). Note that this is not necessary when using an InfoServer to burn CD-Rs.

Logical Disks

You can also prepare your directory tree on a logical disk - a file on disk which can be logically connected to a virtual disk device.

First, you will need to install the Logical Disk software (freeware from Digital).

Simply create the logical disk container file and connect it to an LD device. See the following discussions of logical and virtual disks.

Virtual Disks

Glenn Everhart has a Virtual Disk driver and a program to "connect" Virtual Disk container files that you create using COPY/CONTIGUOUS or SYSGEN to virtual devices. Virtual disk container files MUST be contiguous.

The method of creating and connecting Virtual Disk containers is slightly different compared to Logical Disk containers. The CONNECT subcommand of the LD command provided with the Logical Disk driver software creates the logical device for you. With the Virtual Disk driver, you must create the device yourself.

The geometry considerations for virtual disk containers are slightly different. The CREATE subcommand of the LD command provided with the Logical Disk driver can be used to create and erase a container file of any suitable size that meets your needs. The size should be a multiple of 96 blocks. You must create Virtual Disk container files yourself. For example:

`$ COPY NLA0: CDROM.DSK/ALLOC=90144/CONTIGUOUS`
`$ SET FILE/ATTRIB=(EFB=90145,FFB=0,RFM=FIX,LRL=512) CDROM.DSK`

Use SET FILE/ATTRIBUTES to set the End-of-File Block and First Free Byte pointers, as well as the Record ForMat and the Longest Record Length.

See the Virtual Disk driver "readme" files for more information. Otherwise, using Virtual Disk container files is the same as using Logical Disk container files. You can INITIALIZE and MOUNT them, COPY (or BACKUP) to them and DISMOUNT them.

For our purposes here, we'll discuss Logical Disks and container files.

Creating the Logical Disk Container File

There are 2048 disk blocks in a megabyte. A full 650 MB CD-ROM would represent 1,331,200 disk blocks.

The size of your Logical Disk container file MUST be a multiple of 96 blocks. This satisfies three important criteria:

- The geometry of Logical Disk container files results in the number of blocks being calculated as multiples of 32: LD devices have a geometry of 32 sectors, 1 "head" (track) and a number of cylinders. Thus, there are 32 blocks in a cylinder.
- The geometry of CD-ROMs on OpenVMS results in the number of blocks being calculated as multiple of 24: CD devices have a geometry of 4 sectors, 6 "heads" (tracks) and a number of cylinders. Thus, there are 24 blocks in a cylinder.
- The "common denominator" between 24 and 32 is 96: both 24 and 32 are evenly divisible by 8, 3*8 and 4*8, respectively. 3*4=12, therefore, 12*8 = 96. Any multiple of 96 is evenly divisible by both 24 and 32.

Create your logical disk container file in an appropriate size. Logical disk container files need not be contiguous, but may not be excessively fragmented. Connect your logical disk container file to an LD device. Then, prepare your directory tree on the logical disk drive.

Example:
`$ LD CREATE CDROM.DSK/SIZE=921600 ! 450 MB`
`$ LD CONNECT CDROM.DSK LDA1:`
`$ INIT LDA1: CDROM/CLUS=1/SYSTEM`
`$ MOUNT/NOASSIST LDA1: CDROM`
(Create your directory tree on LDA1:)
`$ DISMOUNT/NOUNLOAD LDA1:`
`$ LD DISCONNECT LDA1:`

When you're satisfied that you're ready to "cast in stone" the work you've prepared, and the CD-R will be burned on another machine,, transfer the resulting logical disk container file to the system where you have software for burning the CD-ROM. Remember that all the file transfers MUST be done using BINARY mode (where appropriate).

Bootable Disks

Note that OpenVMS normally expects its system (boot) disk to be writeable. This is not the case with CD-ROMs. Although you can boot from a properly made CD, the system will be only marginally usable.

There is something you can use for OpenVMS-VAX. One good application for this is what was once known as "stand-alone BACKUP". The STABACKIT.COM procedure which is found in the SYS$UPDATE path doesn't care if you try to build the SYSE root on a logical or virtual disk, so go for it!

If you're trying to build a bootable "stand-alone" interactive VMS on a CD, however, you'll need to find some way to overcome the "ROM" nature of CD-ROM.

We're looking into the "minimal OpenVMS" environment found on the newer installation CDs for VAX and Alpha. When we come up with a way to build such an environment, we'll post details here.

"Burning" the CD-R

There is some software available for OpenVMS. Primarily, this is the CDRECORD program which has been ported to OpenVMS from the Linux world.

CD-R can also be written using InfoServers having CD-R drives.

For Windows/9x, there exists Adaptec's Easy CD Creator, a program called Gear, WINonCD, and some other programs. Easy CD Creator will only process ODS (ODS-2 or ODS-5) images if they have an embedded ISO-9660 filesystem. See the dual-format area of this section for more information. For this discussion, we'll focus on CDRECORD for OpenVMS, Gear for Windows and Easy CD Creator.

CD-ROM Writing Software for OpenVMS

We are aware of the CDWRITE and CDRECORD software (freeware) for OpenVMS. These are programs that can be used to write CD-R discs using a CD-R recorder attached to an OpenVMS System.

Brian Schenkenberger has posted links to pre-built executables of CDRECORD for VAX (OpenVMS V6.0 and later) and Alpha (OpenVMS-Alpha V7.2 and later). This cautionary note about the MicroVAX 3100s was shamelessly lifted from Brian's web page, with one small edit for clarity:

"NOTE: When attempting to run CDRECORD on MicroVAX/VAXstation 3100 series machines, you must use the OpenVMS GKDRIVER. The DKDRIVER/PKNDRIVER combination on MicroVAX/VAXstation 3100 series machines will not properly handle the SCSI commands sent via IO$_DIAGNOSE $QIOs in CDRECORD. MicroVAX/VAXstation 4000 series machines do not have this limitation and CDRECORD can be used there with the device configured with the DKDRIVER. "

What he means is this: If your CD-R recorder is, for example, DKA500, then you must do this to make a suitable device available in OpenVMS-VAX on a MicroVAX-3100 series machine (including VAXtation3100s):

`$ RUN SYS$SYSTEM:SYSGEN`
`SYSGEN> CONNECT GKA500/DRIVER=GKDRIVER`
`SYSGEN> EXIT`

...or in your SYSTARTUP_VMS.COM file, you can include a command like this:

`$ MCR SYSGEN CONNECT GKA500/DRIVER=GKDRIVER`

GKDRIVER will get the information it needs (port, target, LUN) from the device name specified on the CONNECT command issued in SYSGEN. In the example, the "port" is the "A" SCSI controller, the target is SCSI ID 5 and the LUN is zero.

CD-ROM writing can also be done using DOS/Win, Win/9x, Win/NT or UN*X.

CDRECORD for OpenVMS

Documentation on CDRECORD remains a bit scarce, and this author has no first hand experience with CDRECORD. Thus, the following is based on the best available information.

CDRECORD on OpenVMS uses the same I/O technique as, for example the INITIALIZE command. That is, the device need not be MOUNTed. All you need to know is the "port, target,lun" information. You can obtain this from CDRECORD like so:

`$ CDRE*CORD :== $ddcu:<dir>CDRECORD ! Make a "foreign" command`
`$ CDRECORD -SCANBUS`

This should cause CDRECORD to display the SCSI devices it can see, along with their associated "port,target,lun" information. For example, DKA500 would be specified as "DEV=0,5,0"; that is controller "A" (0), SCSI ID 5, LUN 0.

To "burn" a CD-R then, the command syntax would look like this:

`$ CDRECORD -V SPEED=x DEV=port,target,lun -DATA cd_image_filespec`

...where:
"x" is the appropriate writing speed for your CD-R recorder and media,
"port" is a number associated with the controller id. of the CD-R drive (A=0, B=1, C=2, D=4)
"target" is the SCSI ID of the CD-R drive
"lun" is always zero(0) for OpenVMS
"cd_image_filespec" is the filespecification of your file containing the image of the CD-ROM.

According to the Linux "CD-Writing HOWTO: Burning CD-Rs", the "-data" qualifier is not mandatory. However, this may not be true for the OpenVMS port. Again, this author has no first-hand experience with CDRECORD.

Writing CD-ROMs Using an InfoServer

There is a technique for writing CD-ROMs which involves using an InfoServer; however, the InfoServer and its operating software are discontinued products. Support is not available (AFAIK) and documentation is scarce.

As far as this author has been able to gather, the technique involves setting up a partition of 650MB or less on the InfoServer to be used for the ODS container, then offering that as a service. Connect to it from the VMS system using ESS$LADCP (InfoServer client software, included in most newer OpenVMS releases), MOUNT the associated DAD device, and build the CD-ROM image on it. Dismount it when you're finished building and disconnect from the service.

Example:
(Create the target partition on the InfoServer and offer it as a service.)
`$ MCR ESS$LADCP BIND service_name`
`$ INIT DAD$service_name volume_label`
`$ MOUNT DAD$service_name volume_label`
(Create the directory structure and COPY in your files.)
`$ DISMOUNT/UNLOAD DAD$service_name`
`$ MCR ESS$LADCP UNBIND service_name`
`$ DEASSIGN DAD$service_name`

Then, connect to the InfoServer's remote console and issue the appropriate RECORD command(s). The InfoServer's on-line HELP may be of some assistance in this process. InfoServer support for CD-R recorders is limited to old and somewhat rare CD-R drives. The list of supported drives was not available to this author when this version of this page was published.

Gear for Windows

Gear is the only program of which this author is aware that will burn any file system container onto a CD-R, regardless of it's contents. There is Adaptec's Easy CD Creator; however, Easy CD Creator will only process "foreign" CD images if they have an embedded ISO-9660 filesystem. See the following section on burning dual-format (ISO-9660 and ODS) CDs. Gear is a commercial program and must be purchased. It is not freeware or shareware.

Gear can also be used to generate an ISO-9660 disk image. Here, we'll discuss how to use Gear to burn an ODS (only) disk image onto a CD-R.

After transferring your disk image file to your Windows machine, open the Gear program.

From the "Gear Project" drop-down list, select the "Open external physical image" option.

Under "Output Device", select the "Settings" button. This opens the "Recorder Settings" dialogue box. Under the "Common" tab, for the recording method, select "Disk at once" from the drop-down list; select the appropriate "Writing Speed" (no more than double speed (2x) is recommended).

Under "Gear Project", select the "Open" button. This opens a file-open dialogue box. Select the appropriate disk image file, and click "OK". This brings up the "External image parameters" dialogue box. From the "Image type" drop-down list, select "CD-ROM mode 1, sector size 2048". Then, click "OK".

At this point, the "Test" and "Write" buttons are no longer greyed-out. Select the appropriate button for the function you wish to perform.

Adaptec Easy CD Creator

The Easy CD Creator program for W/9x ships with many CD-R and CD-RW recorders. So, while it's not "free", at least it's a "no additional cost" item, sort of. Gear is also a commercial program and must be purchased. Easy CD Creator is a commercial program and must be purchased, though it is included with some CD-R and CD-RW recorders.

The Easy CD Creator program for W/9x will burn "Joliet" format CDs for DOS/Win, of course, but also has the ability to burn ISO-9660 format CDs. To burn CDs for OpenVMS using Easy CD Creator, you must have at least a small ISO-9660 filesystem embedded in your disk image.

When transferring your disk image file to your Windows machine, give the output file a ".ISO" filetype extension. Then, open Easy CD Creator, select "Create CD from Disk Image" from the File menu, and use the file open dialogue box to select the disk image file you want to burn onto a CD-R. (Note that you should select "ISO Image Files (*.iso)" in the "Files of type" list in order to find your disk image file.)

Then, set your CD recorder options as needed.

Note:
You must select the "Disk at once" option under the "Advanced" tab on the "CD Creation Setup" dialogue box.

Dual-Format (ISO-9660, ODS) CDs

You can burn ODS (ODS-2, ODS-5) only CDs using the Gear program for Windows. See the reference above. You can burn dual-format (ISO-9660 and ODS-2 or -5) CDs using both Gear and Easy CD Creator.

Because of the way the ISO-9660 standard defines the format, dual-formatting is possible by building an ISO-9660 disk image and then embedding that within an ODS disk image.

Brian Schenkenberger's Dual Format CD-ROM page details how the embedding of an ISO-9660 filesystem into an ODS image is done.

We have a DCL procedure that can be used to perform the task of embedding an ISO-9660 filesystem into an ODS image. The procedure, called MKISOCD.COM, can be used to perform the calculations and do the actual embedding. See the README.TXT file within the compressed archive for specifics of how to use the procedure.

We are also aware of a technique called "co-mapping" which maps the ODS filesystem structures to the extents within the ISO-9660 image wherein the files reside. Caution must be exercised with this technique. When pre-staging the files before building the ISO-9660 image, all files must be converted to an "operating system transparent" format. Text files must be converted to Stream_LF format. All other files (.ZIP files, tarballs (.TGZ or .TAR_GZ), .GIF, .JPG, .TLB, .OLB, BACKUP savesets, etc.) must be converted to Fixed-512 format. This is because non-OpenVMS operating systems typically lack support for RMS. Even if the ISO-9660 filesystem structure did contain the RMS file and record attributes, non-OpenVMS operating systems would still lack support for RMS and the data would not be retrievable in a usable format in most, if not all, cases. Also, as of this writing, OpenVMS and RMS do not provide for storing file and record attributes in non-ODS filesystems. As a result of this, files other than text and binary (Fixed-512) should not be included in ISO-9660 images to be co-mapped.

ISO-9660 Vs. ODS

The ODS-2 and ODS-5 filesystems were designed to accomodate the RMS file system, including file attributes, among other features. ISO-9660, however, was designed to accomodate no specific file structures or formats, but has certain accomodations built into the specification.

There is an instance of the MKISOFS program which has been ported to OpenVMS. Links to the software can be found on Brian Schenkenberger's OpenVMS CD writing information page. MKISOFS_VMS, to our knowledge, adds no functionality such as storing RMS file attributes so that OpenVMS can find them when the CD is MOUNTed using /MEDIA_FORMAT=CDROM. As far as this author knows, it simply provides the basic functionality of writing OpenVMS files into an ISO-9660 filesystem, regardless of the nature of the files or their contents. It is assumed, therefore, that all RMS attributes are lost, as is the ODS version number.

However, to this author's knowledge (as of this writing, Aug-1999), there is no software available which provides for storing RMS attributes within the ISO-9660 filesystem in such a way that RMS can find them in an ISO-9660 filesystem MOUNTed to an OpenVMS system, nor does OpenVMS or RMS include such support.

Thus, while ISO-9660 provides a common filesystem for OpenVMS and other operating systems, there is (to this author's knowledge) no direct, compatible interface between OpenVMS / RMS and other operating systems which do not natively support RMS.

As far as is currently known, for any non-OpenVMS operating system, no versions of MKISOFS currently exist which provide for embedding file attributes such as text or binary into an ISO-9660 filesystem, with such attributes encoded such that RMS can detect and respond to them.

As far as is currently known, for any version of the OpenVMS operating system, no versions of MKISOFS currently exist which provide for embedding file attributes, either RMS attributes or simple attributes such as text or binary, into an ISO-9660 filesystem, with such attributes encoded such that operating systems which do not natively support RMS can detect and respond to them.

If information contrary to these statements is discovered, details will be posted here as soon as they become available.

Creating an ISO-9660 Image

There are a few ways known to create an ISO-9660 image.

For OpenVMS, there's the MKISOFS_VMS program. It requires a minimum of OpenVMS V7.1 and may be a bit tricky to compile under most versions of DEC-C. It's freeware, so you can get it inexpensively. However, like most freeware, it's unsupported.

The MKISOFS_VMS program is ported from and native to the UN*X world. Pre-compiled binaries are sometimes available for *BSD and Linux. The MKISOFS_VMS link here points to an archive containing a pre-compiled and linked executable for use on OpenVMS-Alpha V7.1 and later.

Another way to create an ISO-9660 image would be to use a W/9x or W/NT machine to run a program such as Easy CD Creator to create an ISO-9660 image, then transfer that disk image file to your OpenVMS system. (Remember to transfer the disk image file as BINARY!)

In any case, once you have your ISO-9660 image, you can then follow Brian's instructions to embed it manually into an ODS disk image, or you can use the MKISOCD DCL procedure to do this for you.

The MKISOFS_VMS program can only store in an ISO-9660 filesystem those files which have either Stream or Fixed-512 format. No RMS attributes can be preserved. Thus, object files (other than object libraries), indexed files, relative files, VFC ("print format") files, etc. cannot be stored intact. They must first be archived using BACKUP, the Zip program for OpenVMS, the VMS LIBRARIAN or by some other means such that their attributes can be restored at a later time.

When preparing files to be stored in an ISO-9660 filesystem using MKISOFS_VMS, be careful to observe the following guidelines to ensure that all the files can be read on non-VMS systems.

- ASCII files such as text files, program source files, reports, HTML files, scripts, etc. should first be converted to Stream_LF format.
- For Binary files such as .ZIP archives, .GZ (GnuZIP archives), .TAR files, .GIF files, Library files (.%LB) and other binary images, make sure these files are "Fixed-512" to help ensure that they will not get "scrambled", and that they will be retrievable on non-VMS systems (Windows, Linux, UN*X, etc.). The BACKUP command can be used to create savesets with small blocksizes (from 2048 byte to 8192 or so), but it is recommended that these savesets then be archived using Zip for OpenVMS since there is currently no convenient way to include information regarding the original blocksize of the saveset(s) other than to include an informative text file along with the saveset(s).
- Avoid trying to store .OBJ files for OpenVMS-Alpha or OpenVMS-VAX in ISO-9660 filesystems, as these are unlikely to be retrievable in a usable condition.

Since you should first stage your files into the directory structure that you want for the ISO-9660 image, this is a convenient time to make sure that the files have proper attributes for use in an ISO-9660 filesystem.

The CONVERT/FDL command is useful for converting ASCII files to a suitable format for inclusion in an ISO-9660 filesystem image.

Summary

So, here are some summaries of how to produce ODS-only and ODS/ISO-9660 dual-format CD-ROMs:

Creating an ODS-Only Disk:

- Prepare the physical disk or logical/virtual disk image container file.
- For logical/virtual disks, connect the container file to a logical/virtual device.
- INITIALIZE the disk for the number of files you expect to have on your CD-ROM. Remember to specify /CLUSTERSIZE=1 to reduce wasted space.
- MOUNT the disk device and use COPY or BACKUP to place your files as you want them.
- DISMOUNT the disk device.

Creating an ODS/ISO-9660 Dual-Format Disk:

- Stage files for the ISO-9660 image. Remember to CONVERT files as needed to ensure that they have the correct attributes.
- Invoke MKISOFS to create the ISO-9660 image. Note the size of the ISO-9660 image. Subtract 64 blocks from the size of the ISO-9660 image. You'll need this value later to use when INITIALIZE-ing the ODS portion of the container.
- Prepare the physical disk or logical/virtual disk image container file.
- For physical disks, MOUNT the DISK/FOREIGN, then COPY the ISO-9660 filesystem image to the target disk. Then, DISMOUNT the target disk.
  For logical/virtual disks, use COPY/OVERLAY to lay the ISO-9660 image over the unINITIALZEd container file connect the container file to a logical/virtual device.
- INITIALIZE the disk for the number of files you expect to have on your CD-ROM. Remember to specify /CLUSTERSIZE=1 to reduce wasted space. Specify a list of /BADBLOCKS extents sufficient to accomodate the size of the ISO-9660 image calculated earlier. This defines the area which is occupied by the ISO-9660 filesystem and protects it from being used for any ODS purposes.
- MOUNT the disk device and use COPY or BACKUP to place your files as you want them.
- DISMOUNT the disk device.

For further information, see the earlier reference on how to use Gear for Windows, Easy CD Creator or CDRECORD for OpenVMS.

Related Links

Here are a couple of links to some other CD-ROM / CD-R pages we've discovered for OpenVMS:

http://www.cd-info.com/CDIC/Technology/CD-R/vms.html - Information Page describing Istvan Dosa's (Doffy's) DFY$VMSCD program.

http://www.tmesis.com/CDrom/ - Brian Schenkenberger's OpenVMS CD writing information page.

http://www.geocities.com/SiliconValley/Lakes/9999/vmscdwri.html OpenVMS CD-writing page on Geocities.

Return to OpenVMS page

Home Page Operating Systems Products Specialties Freeware

FreeVMS Page Bulletin Board Contact Us About Us

Tradenames, trademarks, service marks, etc. appearing on this page are the property of their registered owners.

"DJE Systems" is a service mark of David J. Dachtera, doing business as DJE Systems.
This page Copyright ©1996 by David J. Dachtera, All Rights Reserved.