Creating Hercules DASD

This page describes various ways of creating and loading DASD volumes for use with Hercules.

Using pre-built DASD images

If you can obtain one of the IBM Application Development CDs which are supplied for use with the P/390, you will find that these contain pre-built DASD image files which simply need to be unzipped onto your hard drive. These images can be directly read by Hercules. However, you cannot legally use this method because the software on the CD is licensed for use only on the P/390 system that it was shipped with.

Restoring DASD from full-volume dumps

Creating an empty DASD volume

The dasdinit program must first be run from the Unix shell prompt to create a file containing an empty DASD volume.

The format of the dasdinit command is:

dasdinit filename devtype volser size

where

filename
is the name of the DASD image file to be created
devtype
is the emulated device type (2311, 2314, 3330, 3340, 3350, 3375, 3380, or 3390 for CKD volumes; 3310 or 3370 for FBA volumes)
volser
is the volume serial number of the DASD volume
size
is the emulated size in cylinders for CKD devices, or in 512-byte blocks for FBA devices
Volumes exceeding 2GB

For CKD volumes which exceed 2GB, such as the 3390-3, the DASDINIT program will create multiple files by appending the characters _1 _2 etc. to the file name specified on the command line. Each file contains a whole number of cylinders. Hercules CKD support recognizes the files as belonging to a single logical volume. Specify the full name of just the first file in the Hercules configuration file.

The DASDINIT program cannot create FBA volumes exceeding 2GB.

Examples

To create a 3330 CKD volume of 411 cylinders with volume serial number WORK01 in a file called work01.151:

dasdinit work01.151 3330 work01 411

To create a 3370 FBA volume of 920115 sectors with volume serial number DOSRES in a file called dosres.140:

dasdinit dosres.140 3370 dosres 920115

To create a 3390 CKD volume of 3339 cylinders with volume serial number WORK02:

dasdinit work02.A88 3390 work02 3339
Because this volume exceeds 2GB, DASDINIT will create two files: work02_1.A88 contains cylinders 0-2518 work02_2.A88 contains cylinders 2519-3339

Formatting the empty DASD volume

After creating a DASD volume you can format it with a program such as standalone IBCDASDI or ICKDSF.

Here is an example of the IBCDASDI control statements required to initialize a 3330 volume:


WORK01 JOB  'INITIALIZE 3330 WORK VOLUME'
       MSG   TODEV=1052,TOADDR=009
       DADEF TODEV=3330,TOADDR=151,IPL=NO,VOLID=WORK01,BYPASS=YES
       VLD   NEWVOLID=WORK01,OWNERID=HERCULES
       VTOCD STRTADR=1,EXTENT=5
       END

To run IBCDASDI, place the above statements in a file called init3330.txt and start Hercules in S/370 mode with a configuration file containing these statements:


001234 3145 02 0 1052 1 ........
0009   1052
000A   1442    ibcdasdi.rdr
000C   1442    init3330.txt
0151   3330    work01.151
After IPLing from card reader device 00A, connect a telnet client to port 1052, and press enter. At the IBCDASDI prompt, enter:
input=1442 00c

Loading the new DASD volume

Next you need to create a full volume dump file on your mainframe and convert it to AWSTAPE format using the tapeconv.jcl job in the Hercules source directory. The AWSTAPE file can then be downloaded in binary format to your PC where it can be defined as a virtual tape drive in the Hercules configuration file.

A standalone program can now be IPLed into Hercules to restore the volume image from the virtual tape onto the formatted virtual DASD volume.

Building a DASD volume from unloaded PDS files

The dasdload program can be run from the Unix shell prompt to create a new DASD image file and load it with data from unloaded PDS files.

The format of the dasdload command is:

dasdload ctlfile outfile msglevel

where

ctlname
is the name of the control file which specifies the datasets that are to be loaded onto the newly-created volume
outfile
is the name of the DASD image file to be created
msglevel
is a number from 0 to 5 which controls the level of detail of the messages issued during the load.

Control file

The control file required by the dasdload program is an ASCII text file consisting of a volume statement followed by one dataset statement for each dataset to be created.

The format of the volume statement is:

volser devtype [cyls [ipltext] ]

where:

volser
is the volume serial number for the newly-created volume
devtype
is the emulated device type (2311, 2314, 3330, 3340, 3350, 3375, 3380, or 3390) for the new volume. FBA device types are not supported by the dasdload program.
cyls
is the size of the new volume in cylinders. If cyls is coded as * or is omitted, then the default size for the device type is used. If cyls is 0, then the volume will contain the minimum number of cylinders needed to contain the requested datasets.
ipltext
is an optional parameter specifying the name of a file containing the IPL text which will be written to the volume. The file must be in the form of an object deck containing fixed length 80-byte EBCDIC records in the same format as expected by IBCDASDI or ICKDSF.

The format of a dataset statement is:

dsname method units pri sec dir dsorg recfm lrecl blksize keylen

where:

dsname
is the dataset name
method
is the dataset loading method which can be one of the following:
XMIT filename
the dataset is loaded from an unloaded PDS created by the TSO XMIT command
EMPTY
the dataset is initialized with an end of file record (if DSORG is PS) or an empty PDS directory (if DSORG is PO)
DIP
the dataset is initialized with a LOGREC header record
CVOL
the dataset is initialized as an OS SYSCTLG containing the minimum entries needed to IPL an OS/360 system
VTOC
specifies the size and location of the VTOC. A dataset name must be coded on this statement, although it is not used. If no VTOC statement is present, the VTOC will be placed after the last dataset on the volume and the size of the VTOC will be the minimum number of tracks necessary.
units
is the space allocation units: TRK or CYL.
pri
is the space allocation primary quantity
sec
is the space allocation secondary quantity
dir
is the number of directory blocks
dsorg
is the dataset organization: PS, PO, DA, or IS,
recfm
is the record format: FB, FBS, V, VB, VBS, or U.
lrecl
is the logical record length
blksize
is the block size
keylen
is the key length

All parameters except dsname and method are optional. Defaults of zero are supplied for DCB parameters. For datasets loaded with the XMIT method, the DCB parameters are taken from the unloaded PDS, and the minimum space allocation required to load the dataset is used unless a larger quantity is specified. If space allocation is omitted, the default is TRK 1 0 0. If CYL is specified without any primary quantity then the default space allocation is 1 cylinder or the minimum number of cylinders required to load the dataset, whichever is larger.

Examples

To create a 2314 volume in a file called sysres.230 using the control file sysres.plf with message level 2:

dasdload sysres.plf sysres.230 2

An example control file is shown below:

#
# Pack layout file for MFT system residence volume
#
sysres 2314 * ieaipl00.rdr
sys1.parmlib    xmit    /cdrom/os360/reslibs/parmlib.xmi
sys1.imagelib   xmit    /cdrom/os360/reslibs/imagelib.xmi
sysctlg         cvol    trk 1 0 0       ps f 256 256 8
sysvtoc         vtoc    trk 5
sys1.logrec     dip     trk 1 0 0
sys1.nucleus    xmit    /cdrom/os360/reslibs/nucleus.xmi cyl
sys1.svclib     xmit    /cdrom/os360/reslibs/svclib.xmi cyl
sys1.sysjobqe   empty   cyl 2 0 0       da f 176 176 0
sys1.dump       empty   cyl 10 0 0      ps u 0 3625 0

Note: the DASDLOAD program cannot create volumes exceeding 2GB in size.

Fixing the XCTL tables in SVCLIB

On an OS/360 system, the Open/Close/EOV modules in SYS1.SVCLIB have XCTL tables embedded within them. These tables contain TTRs pointing to other modules, and these TTRs need to be adjusted after loading SVCLIB to DASD. OS/360 provides a program called IEHIOSUP to perform this function, but the catch is that you can't run IEHIOSUP until you have the system up and running, and you can't IPL until you have fixed the XCTL tables. To solve this problem, Hercules provides a program called dasdisup which can be run from the Unix command line after running dasdload.

The format of the dasdisup command is:

dasdisup outfile

where

outfile
is the name of the DASD image file to be updated

Note: do not use this procedure except on OS/360 IPL volumes; other operating systems do not have XCTL tables.


If you have a question about Hercules, see the Hercules Frequently-Asked Questions page.


back

Last updated 29 October 2000