The Hercules that you just installed is already has a DASD with a volume name PTC801 and with 13 users: pt8103 up to pt8115, with only one password: pass4u. You can go immediately to
In order to create new DASD volumes on your MVS system, you need to complete three tasks:
1. create a DASD image in a file on the host operating system,
2. attach the DASD image to your Hercules' configuration, either dynamically or in the Hercules' configuration file, and
3. initialize the DASD image for use by MVS
Creating the DASD image To create the DASD image, you will need to execute the dasdinit program in a console window (or DOS window under Windows/??). The dasdinit executable is included in the Hercules distribution package. The command format is:
dasdinit -a <filename> <devtype> <volser>
The -a parameter instructs dasdinit to create alternate tracks in the DASD image. Alternate tracks on physical devices are used for error recovery when bad tracks are encountered during I/O operations. Although alternate tracks are not utilized under Hercules' emulation, certain MVS utilities and programs will not function properly, if at all, without the presence of the alternate tracks.
The <filename> parameter provides the name of the file on the host operating system (Linux, Windows/??, etc) in which the DASD image will be written. Note that dasdinit will not overwrite an existing file, so the name specified must not refer to an existing file.
A convention used by some is to use the volume serial number as the name of the file and the address at which the DASD is attached as the extension, for example:
mvsres.150
Another convention is to use the volume serial number as the name of the file and the DASD type as the extension, for example:
mvsres.3350
Whatever naming convention you choose to use for the host operating system file is up to you.
The <devtype> parameter specifies the type of DASD image: 2314, 3330, 3350, etc. Hercules version 2.17.1 is the first version in which I have been able to use dasdinit to create 3330-11 images and utilize them under MVS. Note that there is a quirk to getting this to work: you specify 3330-1 to dasdinit for the 808 cylinder 3330 DASD image (3330 as a <devtype> will builld the 404 cylinder image); and in MVS JCL you specify UNIT=3330-1 on the DD statement to access the 808 cylinder DASD (again plain UNIT=3330 tells MVS you are accessing the 404 cylinder DASD). If you are putting an entry in VATLST00, you also use 3330-1 for the 808 cylinder DASD. If you use the D U,DASD command on the operator console, the 808 cylinder DASD will be displayed with a UNIT number of 3331, but MVS is the only one who gets to refer to the larger capacity 3330s in this manner.
The <volser> parameter specifies the volume serial number written to the DASD image and provides the means for MVS to uniquely identify each volume from other DASD volumes. There must not be multiple DASD volumes visible to MVS with the same volume serial number. Since the initialization process (task three in the list above) will rewrite the volume serial number, I usually specify SCRTCH or 111111 as the volume serial number to dasdinit, and then assign the volume serial number that I plan to use for the volume during the initialization on the MVS system.
An extensive table of DASD geometry information, which includes the number of data and alternate cylinders, is available in message #2833. A second source of geometry information is the table available from the files section in disk-sizes.txt). Beginning with version 2.17 of Hercules, it is not really necessary to know the number of cylinders present in each of the DASD types, but these tables are available if you would like to know how much storage is available for each of the types.
Attach the DASD image to Hercules In order to attach an emulated device to Hercules while it is running, you will need to be in the text console display because there is no equivalent command in the graphical display. The command syntax is:
attach <address> <devtype> <filename>
The <address> parameter specifies the hardware address at which the device is to be attached and consists of the Channel and Unit Address (cuu). The address you use will depend upon the configuration that was specified during System Generation and must be an available address generated for the type of device you are attempting to attach (ie, if the device you are attempting to attach is a 3330 DASD, the address you use must have been generated for a 3330 DASD).
The <devtype> parameter specifies the type of DASD image: 2314, 3330, 3350, etc. It doesn't seem to matter to Hercules whether the DASD image specified with <devtype> 3330 is the 3330-1 or 3330-11 (404 and 808 cylinders respectively) as MVS does just fine with a plain old 3330 specified here.
The <filename> parameter provides the name of the file on the host operating system in which the DASD image is contained (where it was written by dasdinit). Note that if you are using a directory structure to organize your DASD files in a subdirectory beneath the directory where Hercules was started, you will need to include a path designation. Since my DASD image files are contained in the 'dasd' subdirectory under the directory where I start Hercules, my filenames are in the form of:
dasd/mvsres
The separator characters in the path name may be either a forward slash (/) or a backward slash (\). Since I use both Windows/?? and Linux, I typically use the forward slash to maintain compatibility.
In order to permanently add an emulated DASD volume to Hercules, you will need to add a line to your Hercules configuration file referencing the volume. The syntax of this line is:
<address> <devtype> <filename>
Because the DASD needs to be initialized before it can be used by MVS, I prefer to dynamically add a DASD device, initialize it, and then make the addition of the device to the configuration file. This avoids any problems that might be caused by MVS attempting to access an uninitialized DASD volume during IPL.
Initialize the DASD image for use by MVS Although the dasdinit program creates the DASD image, MVS requires additional information that is not written by dasdinit, specifically a Volume Table of Contents (VTOC) needs to be written to the image. To accomplish that, you need to use one of the two DASD initialization utilities - IEHDASDR or ICKDSF. It is also possible to use the stand alone disk initialization program - IBCDASDI - and if you look at my MVS installation instructions you will find a Hercules' configuration file and job control statements for this program.
Although I cannot say why, I have never been successful using ICKDSF to initialize 3330 volumes. (The messages issued indicate that ICKDSF erroneously recognizes the 3330-1 image as a 3330-11.) Conversely, I have never been able to get IEHDASDR to successfully initialize 3350 volumes. (IEHDASDR always reports a wrong length record error reading the 3350 image.) So my instructions are for using IEHDASDR to initialize a 3330 DASD image and for using ICKDSF to initialize a 3350 and 3380 DASD images. IEHDASDR will not initialize 3380 volumes. None of the MVS utilites may be used to initialize 3390 DASD volumes; you must use the dasdload utility (included with Hercules) to create 3390 volumes for use under MVS.
In order to use either MVS utility, the volume to be initialized must be offline. If you have dynamically added the volume to Hercules while MVS is already running under Hercules, the volume is 'offline' by default. However, if you added the volume to the configuration file and IPLed MVS, you will need to vary the device offline. On the MVS console, enter these two commands:
v <address>,offline
s dealloc
The <address> parameter specifies the address of the DASD device to be placed in offline status. The second command starts a cataloged procedure which runs IEFBR14 to allow MVS to process the vary command and place the volume offline
Using IEHDASDR to initialize a 3330 volume The JCL to initialize a 3330 volume using IEHDASDR is:
//IEHDASDR JOB IEHDASDR,CLASS=A,MSGLEVEL=(1,1)
//IEHDASDR EXEC PGM=IEHDASDR,REGION=4096K
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
ANALYZE TODD=<address>, C
VTOC=1,EXTENT=<tracks>, C
NEWVOLID=<volser>, C
OWNERID=HERCULES, C
FLAGTEST=NO
/*
//
The TODD=<address> in the control card specifies the address at which the DASD image to be initialized is attached to Hercules.
The VTOC=1 specifies the track at which the VTOC is to begin. On physical disks, it was common practice to locate the VTOC in the middle of the volume for performance considerations. But under Hercules it is acceptable to place the VTOC at track 1. Note that track 0 is reserved for the volume serial number and so must not be used as the VTOC beginning address.
The EXTENT=<tracks> specifies how many tracks to allocate to the VTOC. I typically allocate an entire cylinder to the VTOC, which is more than adequate and may actually be overkill.
The NEWVOLID=<volser> specifies the volume serial number to be written to the pack.
The JCL should be modified to meet your requirements and submitted to MVS. You will be asked to confirm that you actually want to initialize the volume at the address specified:
*04 IEH841D 233 CONFIRM REQUEST TO INITIALIZE. REPLY U OR T.
R 04,U
The reply of 'U' allows the initialization to proceed. At the conclusion of the process, a message is issued displaying the serial number that was written to the volume:
IEH809I N 233,222222,IEHDASDR,IEHDASDR
After the volume is initialized, it must be placed online before MVS will be able to utilize the volume. On the MVS console issue the commands:
v <address>,online
m <address>,vol=(sl,<volser>),use=<useclass>
The <address> parameter specifies the address of the DASD device to be placed in online status.
The <volser> parameter specifies the volume serial number of the volume.
The <useclass> parameter should specify STORAGE, PUBLIC, or PRIVATE. A description of these use attributes is included below under Storage Use Classes.
If this is to be a permanent addition to your configuration, you should add the volume to the VATLST member in SYS1.PARMLIB. The procedure to accomplish this is discussed below under Adding a DASD Volume to the VATLST.
Using ICKDSF to initialize a 3350 (or 3380) volume The JCL to initialize a 3350 or 3380 volume using ICKDSF is:
//ICKDSF JOB ICKDSF,CLASS=A,MSGLEVEL=(1,1)
//ICKDSF EXEC PGM=ICKDSF,REGION=4096K
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
INIT UNITADDRESS(<address>) NOVERIFY VOLID(<volser>) OWNER(HERCULES) -
VTOC(0,1,<extent>)
/*
//
The <address> parameter in the control card specifies the address at which the DASD image to be initialized is attached to Hercules.
The <volser> parameter specifies the volume serial number to be written to the pack.
The <extent> sub-parameter specifies how many tracks to allocate to the VTOC. I typically allocate an entire cylinder to the VTOC, which is more than adequate and may actually be overkill. The other positional sub-parameters in the VTOC parameter specify the cylinder and head, respectively, where the VTOC is to start. On physical disks, it was common practice to locate the VTOC in the middle of the volume for performance considerations. But under Hercules it is acceptable to place the VTOC at track 1. Note that track 0 is reserved for the volume serial number and so must not be used as the VTOC beginning address.
The JCL should be modified to meet your requirements and submitted to MVS. You will be asked to confirm that you actually want to initialize the volume at the address specified:
*06 ICK003D REPLY U TO ALTER VOLUME 253 CONTENTS, ELSE T
The reply of 'U' allows the initialization to proceed. There will be a number of informational messages printed in the SYSPRINT output during the executing of ICKDSF. The most important thing to verify is that the return code for the job is 0000.
After the volume is initialized, it must be placed online before MVS will be able to utilize the volume. On the MVS console issue the command:
v <address>,online
m <address>,vol=(sl,<volser>),use=<useclass>
The <address> parameter specifies the address of the DASD device to be placed in online status.
The <volser> parameter specifies the volume serial number of the volume.
The <useclass> parameter should specify STORAGE, PUBLIC, or PRIVATE. A description of these use attributes is included below under Storage Use Classes.
If this is to be a permanent addition to your configuration, you should add the volume to the VATLST member in SYS1.PARMLIB. The procedure to accomplish this is discussed below.
Adding a DASD Volume to the VATLST The VATLST00 member of SYS1.PARMLIB controls the mounting of DASD volumes at IPL. Each line of this member contains the information pertaining to a single DASD volume. You will need to add an entry (a line containing five parameters) for each DASD volume you add to your system.
If you have TSO installed on your system, you can easily edit this member to make the addition. If you do not have TSO installed, you will have to use the MVS utility IEBUPDTE to make the changes. I will describe the process to use if TSO is not installed as that is the more difficult process. First you need to find out the current contents of VATLST00 and for that you can use the IEBPTPCH utility:
//IEBPTPCH JOB CLASS=A,MSGLEVEL=(1,1)
//IEBPTPCH EXEC PGM=IEBPTPCH
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSN=SYS1.PARMLIB(VATLST00),DISP=SHR
//SYSUT2 DD SYSOUT=A
//SYSIN DD *
PRINT MAXFLDS=1
RECORD FIELD=(80)
/*
//
For my system, this produces the following output:
MVSRES,0,2,3350 ,Y SYSTEM RESIDENCE (PRIVATE) 00000001
PAGE00,0,2,3350 ,Y PAGE DATASETS (PRIVATE) 00000006
SMP001,1,1,3350 ,N DISTRIBUTION LIBRARIES (PUBLIC) 00000011
SPOOL1,0,2,3350 ,Y JES2 DATASETS (PRIVATE) 00000016
WORK01,1,1,3330 ,N WORK PACK (PUBLIC) 00000021
WORK02,1,0,3350 ,N WORK PACK (STORAGE) 00000026
MVS601,1,1,3330-1 ,N WORK PACK (PUBLIC) 00000031
Note that the numbers in columns 73 through 80 are sequence numbers. The parameters specified for each volume are:
· Columns 1 through 6 (six characters) contain the volume serial number.
· Column 8 (one character) is 0 for permanently resident volumes, and 1 for reserved volumes. These states are no longer very relevant, and you can use 0 in most cases.
· Column 10 (one character) is the use attribute. STORAGE is denoted by 0, PUBLIC by 1, and PRIVATE by 2. A description of these use attributes is included below under Storage Use Classes.
· Columns 12 through 19 (eight characters, left justified) is the device type. MVS will probe the device at IPL time and if the device it finds with this volume serial number is not the device type specified here, MVS will dismount the volume. If you have the next parameter as Y and this happens, MVS will stop until you mount the correct volume type with this volume serial number; an entry of N will let MVS proceed after dismounting the incorrect volume.
· Column 21 (one character) indicates whether the operator should be requested to mount the volume if it is not found during IPL. In most cases you should specify N (for NO) in this column.
· Columns 23 through 71 may be used for comments.
In order to add a new 3350 work volume to the VATLST00 entries shown above using IEBUPDTE, the following job would be used:
//IEBUPDTE JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//IEBUPDTE EXEC PGM=IEBUPDTE,REGION=1024K
//*
//SYSUT1 DD DSN=SYS1.PARMLIB,DISP=SHR
//SYSUT2 DD DSN=SYS1.PARMLIB,DISP=MOD
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
./ CHANGE NAME=VATLST00,LIST=ALL
WORK03,1,0,3350 ,N WORK PACK (STORAGE) 00000031
./ ENDUP
//
The sequence number of the card to be added (columns 73 through 80) is 00000031, which directs IEBUPDTE to place this new line following the lines already present in the VATLST00 member.
At the next IPL after submission of this job, MVS will look for a 3350 volume with the volume serial number WORK03 and the volume will be made available as a STORAGE volume.
Storage Use Classes A DASD volume is always mounted with one of the following use attributes:
· PRIVATE - new datasets will be created on this volume only if the user (via JCL or the TSO ALLOCATE command) specifies the volume serial of this disk volume.
· PUBLIC - MVS may place a temporary dataset on this volume, if the user (via JCL or otherwise) did not specify a volume serial for the temporary dataset. Datasets may also be placed on the volume by specifying the volume serial, as with PRIVATE volumes. A temporary dataset is one with a DSNAME beginning with an ampersand and/or with a disposition equivalent to NEW,DELETE.
STORAGE - MVS places permanent datasets on this volume if the user did not supply a volume serial for the datasets. In addition, temporary datasets and datasets placed by volume serial may also be placed on the volume.