mirror of
https://github.com/SDL-Hercules-390/hyperion.git
synced 2026-04-13 07:25:22 +02:00
730 lines
27 KiB
HTML
730 lines
27 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<HTML><HEAD><TITLE>
|
|
Hercules: Creating DASD
|
|
</TITLE>
|
|
<LINK REL=STYLESHEET TYPE="text/css" HREF="hercules.css">
|
|
<link rel="shortcut icon" href="images/favicon.ico" />
|
|
<link rel="icon" href="images/favicon.ico" />
|
|
</HEAD><BODY BGCOLOR="#ffffcc" TEXT="#000000" LINK="#0000A0" VLINK="#008040" ALINK="#000000">
|
|
|
|
<h1>Hercules Version 4: Creating DASD</h1>
|
|
|
|
<p>
|
|
This page describes various ways of creating and loading DASD
|
|
volumes for use with Hercules.
|
|
|
|
<p><hr>
|
|
|
|
<h2>Contents</h2>
|
|
<blockquote>
|
|
<p>
|
|
<a href="#prebuilt">Using pre-built DASD images</a>
|
|
</p>
|
|
<p>
|
|
<a href="#loading">Creating, formatting, and loading DASD volumes</a>
|
|
</p>
|
|
<p>
|
|
<a href="#PDS">Building a DASD volume from unloaded PDS files</a>
|
|
</p>
|
|
<p>
|
|
<a href="#utilities">Other DASD utilities</a>
|
|
</p>
|
|
</blockquote>
|
|
|
|
<p><hr><a name="prebuilt"></a>
|
|
<h2>Using pre-built DASD images</h2>
|
|
<p>
|
|
IBM distributes pre-built OS/390 and z/OS systems on two
|
|
different CD-ROM packages:
|
|
<blockquote>
|
|
<dl>
|
|
<dt><p><b>The OS/390 and z/OS Application Development CD (ADCD)</b>
|
|
<dd>available only to members of IBM PartnerWorld for Developers,
|
|
and
|
|
<p>
|
|
<dt><b>The OS/390 and z/OS DemoPkg</b>
|
|
<dd><p>available only to IBM employees and qualified IBM Business Partners.
|
|
</dl>
|
|
</blockquote>
|
|
<p>Both of these packages contain pre-built DASD image files
|
|
which simply need to be unzipped onto your hard drive. The
|
|
unzipped images can be directly read by Hercules.
|
|
Be aware, however, that you cannot use the ADCD images because
|
|
the PartnerWorld scheme requires you to purchase or lease an IBM
|
|
approved machine in order to obtain the ADCD, and the software on
|
|
the ADCD is licensed for use only on the machine that it was
|
|
shipped with.
|
|
See IBM's
|
|
"<a href="http://www.ibm.com/servers/enable/site/zinfo/adcd.html">Enterprise server solutions</a>"
|
|
web page for more information.
|
|
<p>
|
|
If you want Hercules to be an approved machine so that you can
|
|
use the ADCD, then I suggest you lobby <b>IBM Developer Relations</b>
|
|
<!-- ===(fyolton @ us.ibm.com)=== -->
|
|
at the address given on their web page.
|
|
Different rules apply to the OS/390 and z/OS
|
|
DemoPkg CD which is available only to IBM employees and business
|
|
partners. If you fall into this category then you probably know
|
|
what the rules are. I don't. <tt>:-(</tt>
|
|
|
|
<p><hr><a name="loading"></a>
|
|
<h2>Creating, formatting, and loading DASD volumes</h2>
|
|
|
|
<p><hr><a name="dasdinit"></a>
|
|
<h4>Creating an empty DASD volume</h4>
|
|
<p>
|
|
To create an empty DASD volume, simply run the <code>dasdinit</code> or
|
|
<b><code>dasdinit64</code></b> utility from your host system's shell (command prompt)
|
|
to create a file that emulates (represents) the empty DASD volume. If you
|
|
are going to be creating <a href="cckddasd.html">compressed dasd images</a>,
|
|
it is recommended that you use the new <b><code>dasdinit64</code></b> utility,
|
|
as it is able to create the emulated dasd image files in the new
|
|
<a href="hercrnot.html#CCKD64">CCKD64 format</a>, which are highly advantageous
|
|
over the old 32-bit CCKD images that plain <code>dasdinit</code> creates in that
|
|
it is able to create images that represent very large capacity DASDs.
|
|
<p>
|
|
The format of the command is:
|
|
<br><br>
|
|
<pre>
|
|
Usage: <b>dasdinit64</b> [-options] filename devtype[-model] [volser] [size]
|
|
Builds an empty dasd image file
|
|
options:
|
|
|
|
-z build <a href="cckddasd.html"><b>compressed dasd image</b></a> file using zlib
|
|
-bz2 build <a href="cckddasd.html"><b>compressed dasd image</b></a> file using bzip2
|
|
-0 build <a href="cckddasd.html"><b>compressed dasd image</b></a> file with no compression
|
|
-lfs build a large (uncompressed) dasd file (if supported)
|
|
-a build dasd image file that includes alternate cylinders
|
|
<i>(option ignored if size is manually specified)</i>
|
|
-r build 'raw' dasd image file
|
|
<i>(no VOL1 or IPL track)</i>
|
|
-b make wait PSW in IPL1 record a BC-mode PSW
|
|
<i>(default is EC-mode PSW)</i>
|
|
-m enable wait PSW in IPL1 record for machine checks
|
|
<i>(default is disabled for machine checks)</i>
|
|
-linux null track images will look like Linux dasdfmt'ed images
|
|
<i>(3390 device type only)</i>
|
|
|
|
filename name of dasd image file to be created
|
|
devtype CKD: 2305, 2311, 2314, 3330, 3340, 3350, 3375, 3380, 3390, 9345
|
|
FBA: 0671, 3310, 3370, 9313, 9332, 9335, 9336
|
|
|
|
model device model (implies size) (opt)
|
|
volser volume serial number (1-6 characters)
|
|
<i>(specified only if <b>'-r'</b> option is <b><u>not</u></b> used)</i>
|
|
size number of CKD cylinders or 512-byte FBA sectors
|
|
<i>(required if model not specified, else optional)</i>
|
|
</pre>
|
|
|
|
<p><br>
|
|
Note that the defaults for the wait PSW written to the IPL1 record have changed
|
|
from earlier releases of Hercules. In the past, the wait PSW created by dasdinit
|
|
was a BC-mode PSW enabled for machine check interrupts. The current default for
|
|
the wait PSW is EC-mode, disabled for machine checks. To obtain the earlier
|
|
behavior, run dasdinit with the "-b" and "-m" flags.
|
|
</p>
|
|
<a name="models">
|
|
<p>
|
|
The current list of device types and models supported is:
|
|
</p>
|
|
<pre>
|
|
|
|
<b>CKD DEVICES
|
|
|
|
alt
|
|
devtype-model cyls cyls</b>
|
|
|
|
2305 [<b>*</b>]
|
|
2305-1 48 6
|
|
2305-2 96 12
|
|
|
|
2311 [<b>*</b>]
|
|
2311-1 200 2
|
|
|
|
2314 [<b>*</b>]
|
|
2314-1 200 3
|
|
|
|
3330 [<b>*</b>]
|
|
3330-1 404 7
|
|
3330-2 808 7
|
|
3330-11 808 7
|
|
|
|
3340 [<b>*</b>]
|
|
3340-1 348 1
|
|
3340-35 348 1
|
|
3340-2 696 2
|
|
3340-70 696 2
|
|
|
|
3350 [<b>*</b>]
|
|
3350-1 555 5
|
|
|
|
3375 [<b>*</b>]
|
|
3375-1 959 1
|
|
|
|
3380 [<b>*</b>]
|
|
3380-1 885 1
|
|
3380-A 885 1
|
|
3380-B 885 1
|
|
3380-D 885 1
|
|
3380-J 885 1
|
|
3380-2 1770 2
|
|
3380-E 1770 2
|
|
3380-3 2655 3
|
|
3380-K 2655 3
|
|
EMC3380K+ 3339 3
|
|
EMC3380K++ 3993 3
|
|
|
|
3390 [<b>*</b>]
|
|
3390-1 1113 1
|
|
3390-2 2226 1
|
|
3390-3 3339 1
|
|
3390-9 10017 3
|
|
3390-27 32760 3
|
|
3390-54 65520 3
|
|
|
|
9345 [<b>*</b>]
|
|
9345-1 1440 0
|
|
9345-2 2156 0
|
|
|
|
|
|
<b>FBA DEVICES
|
|
|
|
devtype-model blocks</b>
|
|
|
|
3310 [<b>*</b>]
|
|
3310-1 125664
|
|
|
|
3370 [<b>*</b>]
|
|
3370-Al 558000
|
|
3370-B1 558000
|
|
3370-A2 712752
|
|
3370-B2 712752
|
|
|
|
9313 [<b>*</b>]
|
|
9313-1 246240
|
|
|
|
9332 [<b>*</b>]
|
|
9332-200 360036
|
|
9332-400 360036
|
|
9332-600 554800
|
|
|
|
9335 [<b>*</b>]
|
|
9335-1 804714
|
|
|
|
9336 [<b>*</b>]
|
|
9336-10 920115
|
|
9336-20 1672881
|
|
9336-25 1672881
|
|
|
|
0671-08 513072
|
|
0671 574560
|
|
0671-04 624456
|
|
|
|
[<b>*</b>] size may be specified else size defaults to the first listed model.
|
|
</pre>
|
|
<p>
|
|
<h4>Volumes exceeding 2GB</h4>
|
|
<p>
|
|
For regular (uncompressed) CKD volumes which exceed 2GB in size
|
|
(such as the 3390-3 and larger models) -- <i><u>and for which the
|
|
<b>-lfs</b> parameter was not specified</u></i> -- the DASDINIT /
|
|
DASDINIT64 program creates multiple files by appending the characters
|
|
<b>_1</b>, <b>_2</b>, <b>_3</b> etc.
|
|
to the file name specified on the command line. These characters
|
|
are inserted before the first dot (<b>.</b>) after the last slash
|
|
(<b>/</b>). If there is no dot, then the characters are appended
|
|
to the end of the name. 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 (e.g. "<i>filename</i>_1").
|
|
<p>
|
|
<u>If the <b>-lfs</b> option <i>is</i> specified however</u>, then the output file is
|
|
a single large file which can be as large as your system supports.
|
|
<p>
|
|
The DASDINIT / DASDINIT64 program cannot create FBA volumes exceeding 2GB
|
|
unless the <b>-lfs</b> parameter is specified and <i>large file size</i>
|
|
is supported on your platform..
|
|
|
|
<h4>Examples</h4>
|
|
<p>
|
|
To create a 3330 model 1 CKD volume consisting of 404 cylinders
|
|
(plus 7 alternate cylinders too)
|
|
with volume serial number WORK01 in a file called
|
|
<b><i>work01.151</b></i>:
|
|
<pre>
|
|
dasdinit64 -a work01.151 3330-1 work01
|
|
</pre>
|
|
<p>
|
|
To create a compressed 3350 CKD volume consisting of 560 cylinders
|
|
(555 cylinders plus the 5 alternate cylinders)
|
|
with volume serial number SYSRES in a file called
|
|
<b><i>dosvs34.24f</b></i>:
|
|
<pre>
|
|
dasdinit64 -a -bz2 dosvs34.24f 3350-1 sysres
|
|
</pre>
|
|
<p>
|
|
To create a 3370 FBA volume with only 100000 sectors
|
|
(instead of the usual 558000 sectors)
|
|
with volume serial number WORK02 in a file called
|
|
<b><i>mini.work02.140</b></i>:
|
|
<pre>
|
|
dasdinit64 mini.work02.140 3370 work02 100000
|
|
</pre>
|
|
<p>
|
|
To create a 3390 model 3 (triple density) CKD volume
|
|
of 3339 cylinders with volume serial number WORK03:
|
|
<pre>
|
|
dasdinit64 triple.a88 3390-3 work03
|
|
</pre>
|
|
<p>
|
|
Because this volume exceeds 2GB, DASDINIT / DASDINIT64 will create two files
|
|
with <b><i>triple_1.a88</b></i> containing cylinders 0-2518 and
|
|
<b><i>triple_2.a88</b></i> containing cylinders 2519-3339. However, if you
|
|
instead specify the <tt>-lfs</tt> option:
|
|
<pre>
|
|
dasdinit64 -lfs triple.a88 3390-3 work03
|
|
</pre>
|
|
<p>
|
|
then DASDINIT /DASDINIT64 will create a single file <b><i>triple.a88</i></b>
|
|
containing all the cylinders. Your platform must support <i>large
|
|
file sizes</i> to specify the <b>-lfs</b> option.
|
|
|
|
<h4>Formatting the empty DASD volume</h4>
|
|
<p>
|
|
After creating a DASD volume you can format it with a program
|
|
such as standalone IBCDASDI or ICKDSF.
|
|
<p>
|
|
Here is an example of the IBCDASDI control statements required
|
|
to initialize a 3330 volume:
|
|
<pre>
|
|
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
|
|
</pre>
|
|
<p>
|
|
To run IBCDASDI, place the above statements in a file called
|
|
<b><i>init3330.txt</i></b> and start Hercules in S/370 mode with
|
|
a configuration file containing these statements:
|
|
<pre>
|
|
CPUSERIAL 001234
|
|
CPUMODEL 3145
|
|
MAINSIZE 2
|
|
CNSLPORT 1052
|
|
ARCHLVL S/370
|
|
|
|
0009 1052
|
|
000A 1442 ibcdasdi.rdr
|
|
000C 1442 init3330.txt
|
|
0151 3330 work01.151
|
|
</pre>
|
|
<p>
|
|
After IPLing from card reader device 00A, connect a telnet client
|
|
to port 1052, and press enter. At the IBCDASDI prompt, enter the command:
|
|
<pre>
|
|
input=1442 00c
|
|
</pre>
|
|
|
|
<h4>Loading the new DASD volume</h4>
|
|
<p>
|
|
Next, you need to create a full volume dump file of your chosen
|
|
<i>mainframe</i> dasd volume (converting it to AWSTAPE format) by
|
|
using the <b><i>tapeconv.jcl</i></b> job in the Hercules source
|
|
directory. You would run this JCL on your <i>mainframe</i>.
|
|
<p>
|
|
The resulting AWSTAPE mainframe file can then be downloaded in binary format
|
|
to your PC where Hercules is running, where it can then be defined as a
|
|
Hercules virtual tape drive in your Hercules configuration file.
|
|
<p>
|
|
A standalone program could then be IPLed on Hercules to restore the
|
|
volume image from the virtual tape onto the formatted Hercules DASD
|
|
volume.
|
|
|
|
<p><hr><a name="PDS"></a>
|
|
<h2>Building a DASD volume from unloaded PDS files</h2>
|
|
<h3>dasdload / dasdload64</h3>
|
|
<p>
|
|
The dasdload program can be run from your host system's shell (command
|
|
prompt) to create a new DASD image file and load it with data from unloaded
|
|
PDS files.
|
|
<p>
|
|
The format of the dasdload / dasdload64 command is:
|
|
<p> <code>dasdload <i>[options]</i> <em>ctlfile outfile <i>[msglevel [maxdblk maxttr maxdscb]]</i></em></code><br>
|
|
<code>dasdload64 <i>[options]</i> <em>ctlfile outfile <i>[msglevel [maxdblk maxttr maxdscb]]</i></em></code>
|
|
<p>
|
|
where <em>[options]</em> can be:
|
|
<blockquote>
|
|
<dl>
|
|
<dt><code><i>-z</i></code>
|
|
<dd>Build compressed dasd image file using zlib.
|
|
<dt><code><i>-bz2</i></code>
|
|
<dd>Build compressed dasd image file using bzip2.
|
|
<dt><code><i>-0</i></code>
|
|
<dd>Build compressed dasd image file with no compression.
|
|
<dt><code><i>-lfs</i></code>
|
|
<dd>Create only one very large output file (can exceed 2G).
|
|
<dt><code><i>-a</i></code>
|
|
<dd>Build dasd image file that includes alternate cylinders.
|
|
<dt><code><i>-b</i></code>
|
|
<dd>For a volume without IPL text, make the wait PSW written to the IPL1
|
|
record a BC-mode PSW. The default is to make the wait PSW an EC-mode
|
|
PSW.</dd>
|
|
<dt><code><i>-m</i></code>
|
|
<dd>For a volume without IPL text, make the wait PSW written to the IPL1
|
|
record enabled for machine checks. The default is to make the wait
|
|
PSW disabled for machine checks.</dd>
|
|
<p>
|
|
<dt><code><em>ctlfile</em></code>
|
|
<dd>is the name of the control file which specifies the datasets
|
|
that are to be loaded onto the newly-created volume
|
|
<dt><code><em>outfile</em></code>
|
|
<dd>is the name of the DASD image file to be created
|
|
<p>
|
|
<dt><code><em>msglevel</em></code>
|
|
<dd>is an optional number from 0 to 5 (default is 1) which controls the level of detail
|
|
of the messages issued during the load.
|
|
<dt><code><em>maxdblk</em></code>
|
|
<dd>is the optional maximum number of DBLK table entries or 0 to use the default
|
|
<dt><code><em>maxttr</em></code>
|
|
<dd>is the optional maximum number of TTR table entries or 0 to use the default
|
|
<dt><code><em>maxdscb</em></code>
|
|
<dd>is the optional maximum number of DSCB table entries or 0 to use the default
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<p>
|
|
<b>Note</b> that dasdload's default for the wait PSW written to the IPL1 record
|
|
<i>have changed from earlier releases of Hercules</i>. In the past, the wait PSW created by dasdload
|
|
on volumes without IPL text was a BC-mode PSW enabled for machine check interrupts.
|
|
The current default for the wait PSW is EC-mode, disabled for machine checks. To obtain
|
|
the earlier behavior, run dasdload with the "-b" and "-m" flags.
|
|
</p>
|
|
|
|
<h4>Control file</h4>
|
|
<p>
|
|
The control file required by the dasdload /dasdload64 program is an ASCII text
|
|
file consisting of a <em>volume statement</em> followed by one
|
|
<em>dataset statement</em> for each dataset to be created.
|
|
<p>
|
|
The format of the volume statement is:
|
|
<p> <code><em>volser devtype</em>[-<em>model</em>] [<em>cyls</em> [<em>ipltext</em>] ]</code>
|
|
<p>where:
|
|
<blockquote>
|
|
<dl>
|
|
<dt><code><em>volser</em></code>
|
|
<dd>is the volume serial number for the newly-created volume
|
|
<dt><code><em>devtype</em></code>
|
|
<dd>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 / dasdload64 program. Model may be specified like
|
|
<a href="#models">dasdinit / dasdinit64</a> above.
|
|
<dt><code><em>cyls</em></code>
|
|
<dd>is the size of the new volume in cylinders.
|
|
If <code><em>cyls</em></code> is coded as <code>*</code>
|
|
or as <code>0</code> or is omitted, then the default size
|
|
for the device type and model is used.
|
|
<dt><code><em>ipltext</em></code>
|
|
<dd>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.
|
|
</dl>
|
|
</blockquote>
|
|
<p>
|
|
The format of a dataset statement is:
|
|
<p> <code><em>dsname method units pri sec dir dsorg recfm
|
|
lrecl blksize keylen</em></code>
|
|
<p>where:
|
|
<blockquote>
|
|
<dl>
|
|
<dt><code><em>dsname</em></code>
|
|
<dd>is the dataset name
|
|
<dt><code><em>method</em></code>
|
|
<dd>is the dataset loading method which can be one of the following:
|
|
<dl>
|
|
<dt><code>XMIT <em>filename</em></code>
|
|
<dd>the dataset is loaded from an unloaded PDS created by
|
|
the TSO XMIT command
|
|
<dt><code>SEQ <em>filename</em></code>
|
|
<dd>the sequential dataset is loaded from a <b>binary</b> file.
|
|
ascii/ebcdic translation is not currently supported. Also,
|
|
the dsorg must either be <em>PS</em> or <em>DA</em> and
|
|
recfm must either be <em>F</em> or <em>FB</em>.
|
|
<dt><code>EMPTY</code>
|
|
<dd>the dataset is initialized with an end of file record
|
|
(if DSORG is PS) or an empty PDS directory (if DSORG is PO)
|
|
<dt><code>DIP</code>
|
|
<dd>the dataset is initialized with a LOGREC header record
|
|
<dt><code>CVOL</code>
|
|
<dd>the dataset is initialized as an OS SYSCTLG containing
|
|
the minimum entries needed to IPL an OS/360 system
|
|
<dt><code>VTOC</code>
|
|
<dd>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.
|
|
</dl>
|
|
<dt><code><em>units</em></code>
|
|
<dd>is the space allocation units: <code>TRK</code> or <code>CYL</code>.
|
|
<dt><code><em>pri</em></code>
|
|
<dd>is the space allocation primary quantity
|
|
<dt><code><em>sec</em></code>
|
|
<dd>is the space allocation secondary quantity
|
|
<dt><code><em>dir</em></code>
|
|
<dd>is the number of directory blocks
|
|
<dt><code><em>dsorg</em></code>
|
|
<dd>is the dataset organization: <code>PS</code>, <code>PO</code>,
|
|
<code>DA</code>, or <code>IS</code>,
|
|
<dt><code><em>recfm</em></code>
|
|
<dd>is the record format: <code>F</code>, <code>FB</code>, <code>FBS</code>,
|
|
<code>V</code>, <code>VB</code>, <code>VBS</code>,
|
|
or <code>U</code>.
|
|
<dt><code><em>lrecl</em></code>
|
|
<dd>is the logical record length
|
|
<dt><code><em>blksize</em></code>
|
|
<dd>is the block size
|
|
<dt><code><em>keylen</em></code>
|
|
<dd>is the key length
|
|
</dl>
|
|
</blockquote>
|
|
<p>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.
|
|
|
|
<h4>Example 1:</h4>
|
|
<p>
|
|
To create a 2314 volume in a file called <b><i>sysres.230</i></b>
|
|
using the control file <b><i>sysres.plf</i></b> with message level 2:
|
|
<pre>
|
|
dasdload64 sysres.plf sysres.230 2
|
|
</pre>
|
|
|
|
<p>
|
|
An example control file is shown below:
|
|
<pre>
|
|
#
|
|
# 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
|
|
</pre>
|
|
|
|
<p>
|
|
<h4>Example 2:</h4>
|
|
To create a compressed 3390-3 volume in a file called
|
|
<b><i>linux.500</i></b> containing a bootable linux system for
|
|
linux/390 installation using the control file <b><i>linux.prm</i></b>:
|
|
<pre>
|
|
dasdload64 -z linux.prm linux.500
|
|
</pre>
|
|
<p>
|
|
An example control file is shown below:
|
|
<pre>
|
|
#
|
|
# Build a bootable linux disk
|
|
#
|
|
# [Note: the dataset names (sys1.linux...) are hard-coded in
|
|
# linuxipl.obj and cannot be changed without rebuilding it]
|
|
#
|
|
linux 3390-3 * linuxipl.obj
|
|
sys1.linux.parmfile SEQ images/redhat.prm trk 1 0 0 ps fb 1024 1024
|
|
sys1.linux.tapeipl.ikr SEQ images/kernel.img trk 200 0 0 ps fb 1024 1024
|
|
sys1.linux.initrd SEQ images/initrd.img trk 200 0 0 ps fb 1024 1024
|
|
</pre>
|
|
|
|
<h2>Fixing the XCTL tables in SVCLIB</h2>
|
|
<h3>DASDISUP: IEHIOSUP</h3>
|
|
<p>
|
|
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-22 situation 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!
|
|
<p>
|
|
To solve this dilemma, Hercules provides a utility program called <code>dasdisup</code>
|
|
which can be run from your host's command line after running either <code>dasdload</code>
|
|
or <code>dasdload64</code>.
|
|
<p>
|
|
The format of the <code>dasdisup</code> command is:
|
|
<p> <code>dasdisup <em>outfile [sf=shadow-file-name]</em></code>
|
|
<p>
|
|
where
|
|
<blockquote>
|
|
<dl>
|
|
<dt><code><em>outfile</em></code>
|
|
<dd>is the name of the DASD image file to be updated
|
|
<dt><code><em>shadow-file-name</em></code>
|
|
<dd>(optional) is the name of the associated shadow file
|
|
as specified in the Hercules config file
|
|
</dl>
|
|
</blockquote>
|
|
<p>
|
|
<em><b>Note:</b> do <u>not</u> use this procedure except on OS/360 IPL volumes!
|
|
Other operating systems do not have XCTL tables!</em>
|
|
|
|
<p><hr><a name="utilities"></a>
|
|
<h2>Other DASD utilities</h2>
|
|
<p>
|
|
These programs can be used to extract data from CKD DASD images
|
|
by means of commands issued from your host system's shell prompt
|
|
(i.e. command line).
|
|
|
|
<h3>DASDLS: List datasets on volume</h3>
|
|
<p>
|
|
DASDLS, written by Malcolm Beattie and enhanced by others, is a command
|
|
to let you list the names of the datasets contained in disk images.
|
|
<p>
|
|
The command format is:
|
|
<p> <code>dasdls [-option [-option ... ]] ckdfile [sf=sfile] [...]</em></code>
|
|
<p>
|
|
where <em>ckdfile</em> is the name of the file containing a CKD volume
|
|
and <em>sfile</em> (optional) is the name of the associated shadow file.
|
|
<p>
|
|
<em>-option</em> can be:
|
|
<blockquote>
|
|
<dl>
|
|
<dt><code><i>-cchh</i></code><dd>Show begin/end CCHH of each extent
|
|
<dt><code><i>-hdr</i></code><dd>show column headers
|
|
<dt><code><i>-dsnl [=n]</i></code><dd>restrict dsname width
|
|
<dt><code><i>-info</i></code><dd>show F1 info
|
|
<dt><code><i>-caldt</i></code><dd>calendar date format
|
|
<dt><code><i>-refdt</i></code><dd>show last-reference date
|
|
<dt><code><i>-expdt</i></code><dd>show expiry date
|
|
<dt><code><i>-yroffs [=n]</i></code><dd>year offset
|
|
</dl>
|
|
</blockquote>
|
|
<p>
|
|
<b>Note:</b> Multiple images can be processed in the same run,
|
|
but options must be specified ahead of each image.
|
|
<p>
|
|
|
|
<h3>DASDCAT: Display PDS members</h3>
|
|
<p>
|
|
DASDCAT, written by Malcolm Beattie, is a command to let you read
|
|
datasets from disk images.
|
|
<p>
|
|
The command format is:
|
|
<p> <code>dasdcat -i <em>ckdfile [sf=shadow-file-name] dsname1 dsname2 ...</em> -i <em>ckdfile2 dsname10 ...</em></code>
|
|
<p>
|
|
where <em>ckdfile</em> is the name of the file containing a CKD volume,
|
|
<em>shadow-file-name</em> (optional) is the name of the associated shadow file,
|
|
and <em>dsname</em> can be a plain (non-partitioned) dataset name
|
|
(which is currently not handled) or of the form <em>pdsname</em>/<em>memname</em>
|
|
where <em>memname</em> can be:
|
|
<ul>
|
|
<li><b>PDS member name</b> (automatically uppercased),
|
|
optionally followed by ":" and flags "a" or "c".
|
|
<ul>
|
|
<li>"c" means (c)ard images and turns a PDS members with a block
|
|
size that's a multiple of 80 into multiple newline separated
|
|
lines of 72 characters with EBCDIC converted to ASCII and with
|
|
sequence numbers chopped off.
|
|
<li>"a" means (a)sciify the member (but don't chop off sequence
|
|
numbers or do the card image thing).
|
|
</ul>
|
|
<li><b>?</b> (don't forget to quote it to avoid the shell globbing it)
|
|
to list the names of all PDS members instead of outputting their
|
|
contents.
|
|
<li><b>*</b> (again, quote it or backwhack it to avoid it being a glob)
|
|
to output all members of the PDS instead of just a named one.
|
|
This can optionally be followed with colon-then-flags, as above.
|
|
Each member is preceded with a line "> Member: memname" and, if
|
|
the "c" for card-images flags is used, each line of the members'
|
|
contents is preceded with "| " to guarantee it can be
|
|
distinguished from contents.
|
|
</ul>
|
|
|
|
<h4>Examples:</h4>
|
|
<pre>
|
|
% dasdcat -i mvtres.350 sf= mvtres_1.350 'sys1.parmlib/?'
|
|
|
|
ieabld00
|
|
ieaige00
|
|
ieaigg00
|
|
ieaigg01
|
|
iearsv00
|
|
ikjprm00
|
|
lnklst00
|
|
presres
|
|
smfdeflt
|
|
|
|
% dasdcat -i mvtres.350 sys1.parmlib/smfdeflt:c
|
|
|
|
OPT=2, SYSTEM,JOB AND STEP DATA COLLECTION
|
|
EXT=YES, USER EXITS ARE TO BE TAKEN
|
|
JWT=15, MAXIMUM CONTINUOUS WAIT TIME IS 15 MINS.PER STEP
|
|
BUF=400, A MINIMUM 400 BYTE BUFFER IS DEFINED
|
|
SID=6A, SYSTEM ID IS 6A
|
|
MDL=65, MODEL IS MOD 65
|
|
OPI=YES, PERMIT OPERATOR INTERVENTION
|
|
MAN=ALL, RECORD USER AND SYSTEM RECORDS
|
|
PRM=(,282,NL) SYS1.MAN ALLOCATED TO NON-LABELED TAPE
|
|
|
|
% dasdcat -i mvtres.350 sys1.help/\*:c
|
|
|
|
> Member ACCOUNT
|
|
| )S SUBCOMMANDS -
|
|
| ADD/A,CHANGE/C,DELETE/D,LIST/L,LISTIDS/LISTI,HELP/H,END
|
|
| )F FUNCTION -
|
|
| THE ACCOUNT COMMAND PROCESSOR INVOKES THE CONVERSATIONAL PROGRAMS
|
|
...
|
|
> Member ALLOC
|
|
| )F FUNCTION -
|
|
| THE ALLOCATE COMMAND DYNAMICALLY DEFINES AND ALLOCATES A DATA SET
|
|
| WITH OR WITHOUT AN ATTRIBUTE LIST OF DCB PARAMETERS
|
|
| )X SYNTAX -
|
|
| ALLOCATE DATASET('DSNAME'/*) FILE('DDNAME')
|
|
...
|
|
</pre>
|
|
|
|
<h3>DASDPDSU: Unload PDS members</h3>
|
|
<p>
|
|
DASDPDSU is a command which unloads PDS members from a disk image
|
|
and copies each member to a file <em>memname</em>.mac in the current
|
|
working directory.
|
|
<p>
|
|
The command format is:
|
|
<p> <code>dasdpdsu <em>ckdfile [sf=shadow-file-name] pdsname</em> [ASCII] [odir]</code>
|
|
<p>
|
|
where <em>ckdfile</em> is the name of a file containing a CKD
|
|
volume, <em>shadow-file-name</em> (optional) is the name of the associated
|
|
shadow file, and <em>pdsname</em> is the name of a PDS on that volume.
|
|
If the optional <b>ASCII</b> keyword is specified, the members will be
|
|
unloaded as ASCII variable length text files. Otherwise the members
|
|
are unloaded as fixed length EBCDIC binary files. The optional <em>odir</em>
|
|
parameter is the name of the directory where the output files should be
|
|
placed. Otherwise if not specified they are created in the current directory.
|
|
|
|
<p><center><hr width=15% noshade></center>
|
|
<p>
|
|
If you have a question about Hercules, see the
|
|
<a href="hercfaq.html">Hercules Frequently-Asked Questions</a> page.
|
|
|
|
<p><center><hr width=15% noshade>
|
|
<a href="##" onclick="history.go(-1)"><img src="images/back.gif" border=0 alt="back"></a>
|
|
<p class="lastupd"><script language="Javascript">
|
|
document.write( "Last updated " + document.lastModified + "" );
|
|
</script></p>
|
|
</BODY>
|
|
</HTML>
|