メインフレームOSのシステム生成がやってみたい!やってみた!できた!以下そのやり方。
前回の記事「メインフレームOSをCent OS下で動かす 」でHerculesエミュレータをインストールし、このエミュレータ上でメインフレームOSのMVS3.8Jをインストールして動かしました。
しかし、インストールとはいっても、やっていることは、ディスクイメージを所定のディレクトリにコピーしているようなものなので、手っ取り早いけれど、これじゃない感ありありです。
やはり、メインフレームOSのシステム生成、System Generation(通称SYSGEN)をすごくやってみたいです。ということで、以下チャレンジしてみました。
最初のチャレンジでは、前回記事で利用した、「The MVS Tur(n)key System, Version 3」の、「Installing the Sysgen System」に従ってSYSGENにチャレンジしていたのですが、記述通りにやってもできないところがいくつかあり、最後、どうしても解決できないABENDがあり挫折しました。*脚注1
しばらく、悶々としていたのですが、あれこれググって、上手くいく手順を見つけました。さらにこの手順に若干のアレンジを加えたものも上手くいったので、今回はそのアレンジの方で紹介します。
ベースとなっている手順は、「Installing MVS 3.8」です。
アレンジは、圧縮形式のDASDを生成し、これにMVS3.8Jをインストールするというものです。ベースの手順ではスピードとディスクのトレードオフからスピード重視を基本的な考え方として、非圧縮のDASDにインストールしています。
非圧縮形式で一度インストールしてうまくいきましたので、圧縮形式で試してみたのが今回のアレンジです(私のVirtualBox環境のディスクがカツカツだったというのもありますが・・・)。
ところで、システム生成(System Generation(SYSGEN)って何?
System Generation (OS)より抜粋と意訳。
IBMは、単にテープからディスクにシステムを復元するためのメカニズムを提供するのではなく、システム生成プロセスを提供しなければならない、いくつかの理由がありました。
System/360は自己識別I/Oデバイスを持っていないため、顧客が任意のアドレスでI/Oデバイスのインストールができました。
意訳:自己識別I/Oデバイス(self-identifying I/O devices)ってなんだ?たぶん、当時はメモリやディスクをぶっ差したら自動的に認識してくれるようなお便利な仕組みがなかったのだと思います。
そのため、どのアドレスにどのI/Oデバイスを接続するのか、顧客自らが決定して接続していたのだと思います。
その結果、IBMは、OS/360へI/O構成を定義するメカニズムを顧客に提供しなければなりませんでした。
また、OS/360は、いくつかの異なるインストールオプションがサポートされていましたが、顧客固有のインストールに必要なオプションを選択するための方法が必要でした。
顧客の本番環境での使用を意図して、設定済みの完成したドライバを提供するのではなく、OSの制御下でSYSGENプロセスを一連のジョブとして実行し、システムを生成します。
事前準備
Herculesエミュレータのインストール
前回の記事「メインフレームOSをCent OS下で動かす 」を参照のこと。
MVSスターターシステムとMVS3.8Jディストリビューションの入手
MVSスターターシステムの入手
「MVSスターターシステムのテープ」(6.6メガバイト)[MD5:3504f627f4bb6ec0a6c46a3ced6c8cf4]。
このRAR形式の圧縮ファイルの中に「vs2start.het」テープイメージと「vs2spool.het」テープイメージがあります。
このMVSスターターシステムは、MVS3.7のシステムです。スターターシステムは2本のテープイメージで構成されており、その内訳は、
(1)スタンドアロンのDASDの初期化プログラム
(2)DASDにテープダンプを復元するスタンドアロンプログラム
(3)およびDASDボリュームのテープ・ダンプ
が含まれます。
MVS3.8Jディストリビューションの入手
「MVS3.8Jディストリビューション」(17.8メガバイト)[MD5:0e793cacf886b32be4295987ddc781ff]。
このRAR形式の圧縮ファイルの中に「product.het」テープイメージと「smp4b.het」テープイメージがあります。(md5.txtも入っていますが説明するまでもないので)
この2本テープイメージの内訳は、
(1)MVSの3.8jの製品ライブラリ
(2)システム修正変更プログラム(SMP)ロード・モジュールとプロシージャ
が含まれています。
インストールスクリプトやインストールJCL類 の入手
「インストールスクリプトやインストールJCL類」(14.9メガバイト)[MD5:26c9b7d4ea4da3b41099e6e067482fb5]。
このRAR形式の圧縮ファイルの中には、インストールに必要なスクリプトやJCL、パッチのテープイメージなどが入っていますが、例の「nc.exe」、つまりnetcatが含まれています。このため、前回記事でもありましたが、ダウンロードするとウィルスチェックに引っかかると思います。前回記事同様に無くてよいプログラムなので取り除きます。
コンパイラやツール類の入手
「コンパイラやツール類」(11.9メガバイト)[MD5: b38ac0345f15b0b62ea24306044abd13]。
「RPF:ロブ・プリンス・プログラミングファシリティ」(1.3メガバイト)[MD5: 7867333254f345da1434b4f4211806fe]。
RPF:ロブ・プリンス・プログラミングファシリティって何?
「wikipedia:ISPF (Interactive System Productivity Facility)」によく似たインターフェースのフリーのデータセットツール類、スクリーンエディタです。
ISPFはIBM製品なのでインストールできないので、これをインストールします。
MVSスタータシステムの構築
ディレクトリ構成
次のディレクトリ構成を前提としたインストールになります。
hercules
+-mvs
+-conf
+-dasd
+-jcl
+-sajob
+-tape
次のコマンドを順に叩き、前提としたディレクトリ構成を構築し、スクリプトやテープイメージを配置していきます。
$ pwd
/home/hercules
$ mkdir mvs
$ cd mvs
$ wget http://www.jaymoseley.com/hercules/downloads/archives/vs2StartTapes.rar
$ wget http://www.jaymoseley.com/hercules/downloads/archives/mvs38distTapes.rar
$ wget http://www.jaymoseley.com/hercules/downloads/archives/installmvs.rar
$ wget http://www.jaymoseley.com/hercules/downloads/archives/SYSCPK.tar.gz
$ wget http://www.jaymoseley.com/hercules/downloads/archives/rpf153.tgz
$ unrar x installmvs.rar
$ rm nc.exe
$ unrar x mvs38distTapes.rar
$ unrar x vs2StartTapes.rar
$ mv *.het ./tape
$ tar xvfz SYSCPK.tar.gz
$ tar xvfz rpf153.tgz
$ chmod u+x ./create.dasd.sh ./condcode.pl
アレンジ
アレンジは、圧縮形式のDASDを生成し、これにMVS3.8Jをインストールするというものです。「ベースの手順」では非圧縮のDASDにインストールしますが、アレンジでは圧縮形式にします。
$ pwd
/home/hercules/mvs
$ cp -p create.dasd.sh create.dasd.sh.org
$ sed -i -e 's/dasdinit -a/dasdinit -a -z/g' create.dasd.sh
$ diff create.dasd.sh.org create.dasd.sh
38c38
< dasdinit -a start1.3330 3330 111111
---
> dasdinit -a -z start1.3330 3330 111111
以下省略
$ pwd
/home/hercules/mvs
$ cd dasd
$ dasdcopy -z syscpk.3350 syscpk.3350.z
$ rm syscpk.3350
$ mv syscpk.3350.z syscpk.3350
$ chmod 640 syscpk.3350
MVSスターターシステムの構築
DASDボリュームの作成
「./create.dasd.sh starter」で、MVSスタータシステム用のDASDボリュームの「dasd/start1.3330」、「spool0.3330 」の2つを作ります。
$ pwd
/home/hercules/mvs
$ ./create.dasd.sh starter
This script creates DASD volumes for MVS 3.8j.
Changed directory to: /home/hercules/mvs/dasd
HHCDU044I Creating 3330 volume 111111: 411 cyls, 19 trks/cyl, 13312 bytes/track
HHCDU041I 411 cylinders successfully written to file start1.3330
HHCDI001I DASD initialization successfully completed.
HHCDU044I Creating 3330 volume 111111: 411 cyls, 19 trks/cyl, 13312 bytes/track
HHCDU041I 411 cylinders successfully written to file spool0.3330
HHCDI001I DASD initialization successfully completed.
Script completed successfully!
DASDボリュームの初期化とスターターシステムをテープからリストア
2本のテープイメージ(vsstart.hetとvsspool.het)は、MVSスターターシステムを実行するために必要な2つのDASDボリューム(start1とspool)のダンプが含まれています。
これらのテープには、2つのプログラムがあり、一つは、DASD初期化プログラム「DASDI ver7.80」であり、もう一つは、ダンプリストアプログラム「DUMP/RESTORE ver7.83」です。
上記で作成した2つのDASDボリュームを初期化する、DASD初期化プログラムと、テープからMVSスタータプログラムのダンプをリストアする、ダンプリストアプログラムをロードするためにHeraculesを利用しています。
プログラムがロードできたら、初期化されたDASDボリュームにテープからテープに格納されている、MVSスタータシステムのダンプイメージをリストアします。
次の図は、Heracules設定ファイル「ibcdmprs.cnf」に定義している各I/Oデバイスのアドレスの関係を表しています。
TeraTermからsshでherculesユーザで2つログインします。一つはHerculesエミュレータ画面用、もう一つはマスタコンソール画面用です。
Herculesエミュレータ画面で「hercules -f conf/ibcdmprs.cnf」と入力し、「Enter」キーを入力すると、次のような画面になります。
$ pwd
/home/hercules/mvs
$ hercules -f conf/ibcdmprs.cnf
省略
HHCCF065I Hercules: tid=B77876D0, pid=4002, pgid=4002, priority=0
HHCTE001I Console connection thread started: tid=B74FFB70, pid=4002
HHCDA020I dasd/start1.3330 cyls=411 heads=19 tracks=7809 trklen=13312
HHCTE003I Waiting for console connection on port 3270
HHCDA020I dasd/spool0.3330 cyls=411 heads=19 tracks=7809 trklen=13312
HHCTA004I 0280: tape/vs2start.het is a Hercules Emulated Tape file
HHCTA004I 0281: tape/vs2spool.het is a Hercules Emulated Tape file
HHCTT002I Timer thread started: tid=B68FBB70, pid=4002, priority=0
HHCCP002I CPU0000 thread started: tid=B69FCB70, pid=4002, priority=15
HHCCP003I CPU0000 architecture mode S/370
HHCPN001I Control panel thread started: tid=B77876D0, pid=4002
HHCAO001I Hercules Automatic Operator thread started;
tid=B6569B70, pri=0, pid=4002
Command ==>
CPU0000 PSW=0000000000000000 24M....... instcount=0
Herculesエミュレータは、I/Oデバイスアドレス0x0009で、ポート番号3270で接続を待っている状態です。
この状態になってから、マスタコンソール画面で、「tenlet localhost 3270」と入力し、「Enter」キーを入力すると、次のような画面になります。3270エミュレータはまだ使えないので、telnetで接続します。
$ pwd
/home/hercules/mvs
$ telnet localhost 3270
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Hercules version 3.12 built on May 15 2016 11:28:26
running on localhost.localdoma (Linux-2.6.32-573.26.1.el6.#1 SMP Tue May 3 21:55:43 UTC 2016 i686 UP)
Connected to device 0:0009
Herculesエミュレータ画面 に切り替えると、こちらにも0x0009に接続されたとメッセージが表示されます。
Herculesエミュレータ画面で「ipl 280」と入力し、「Enter」キーを入力します。
HHCTE009I Client 127.0.0.1 connected to 1052 device 0:0009
Command ==> ipl 280
CPU0000 PSW=0000000000000000 24M....... instcount=0
これは、Heracules設定ファイル「ibcdmprs.cnf」で定義されている、
「0280 3420 tape/vs2start.het 」
からの実行を意味し、I/Oデバイスのアドレス0x280でエミュレートされているテープイメージ(tape/vs2start.het)の先頭に配置してあるDASD初期化プログラムをロードして実行するようにHerculesエミュレータに指示していることになります。
すると次のような画面になります。
画面下部に表示されたプログラム・ステータス・ワード末尾四桁が、「FFFF」になることを確認します。
HHCTE009I Client 127.0.0.1 connected to 1052 device 0:0009
ipl 280
Command ==>
CPU0000 PSW=FF0600808000FFFF 24..W..... instcount=71,451
マスタコンソール画面を開き、「Enter」キーを入力します。
Connected to device 0:0009
すると、次のような画面になります。
Connected to device 0:0009
IBC105A DEFINE INPUT DEVICE. DASDI 7.80
HHCTE006A Enter input for console device 0009
DASD初期化プログラムの「DASDI」はI/Oデバイス0x0009からの入力を待っているので、「input=1442,00c」と入力し、「Enter」キーを入力します。
Connected to device 0:0009
IBC105A DEFINE INPUT DEVICE. DASDI 7.80
HHCTE006A Enter input for console device 0009
input=1442,00c
この入力は、「ibcdmprs.cnf」に記述されている 次の文の実行します。
これは、I/Oデバイスアドレス0x00c(カードリーダデバイス)から「instart1.sajob」を実行することになります。
「000C 1442 sajobs/instart1.sajob」
すると、次のような画面になります。
Connected to device 0:0009
IBC105A DEFINE INPUT DEVICE. DASDI 7.80
HHCTE006A Enter input for console device 0009
input=1442,00c
IBC105A DEFINE INPUT DEVICE. DASDI 7.80
DASDI 7.80
START1 JOB 'INITIALIZE MVS STARTER SYSTEM RES VOLUME'
MSG TODEV=1052,TOADDR=009
DADEF TODEV=3330,TOADDR=150,IPL=NO,VOLID=111111,BYPASS=YES
VLD NEWVOLID=START1,OWNERID=HERCULES
VTOCD STRTADR=1,EXTENT=5
END
IBC163A END OF JOB.
IBC202A INTERV. REQUIRED 00C 02 0E00 4010 0000 3800
IBC154A READY READER 00C. DEPRESS INTERRUPT KEY.
Herculesエミュレータ画面を開きます。
すると、次のような画面になっています。
プログラム・ステータス・ワードの末尾四桁が「1111」になっていることを確認します。これは、I/Oデバイスアドレス0x00cのカードリーダからJOBを読み込んで実行し、スターターシステムをリストアするDASDの初期化が完了したことを示しています。
HHCCP048I 000C:CCW=020003F1 20000050=>00000000 00000000 00000000 00000000 ......
HHCCP075I 000C:Stat=0E00 Count=0050 =>00000000 00000000 00000000 00000000 ......
HHCCP076I 000C:Sense=40100000 00000000 00000000 00000000 00000000 00000000
HHCCP077I 000C:Sense=INTREQ MSG
Command ==>
CPU0000 PSW=0106000080001111 24..W..... instcount=678,449
Herculesエミュレータ画面のコマンドプロンプトに「stop」と入力し「Enter」キーを入力します。
HHCCP077I 000C:Sense=INTREQ MSG
Command ==> stop
CPU0000 PSW=0106000080001111 24..W..... instcount=678,449
次に、コマンドプロンプトに「ipl 280」と入力し、「Enter」キーを入力します。
HHCCP077I 000C:Sense=INTREQ MSG
stop
Command ==> ipl 280
CPU0000 PSW=0106000080001111 24M.W..... instcount=678,449
これは、先ほどのDASD初期化プログラムのロードと同じように、今度はリストアプログラムをロードします。
プログラム・ステータス・ワードの末尾四桁が「FFFF」であることを確認します。
ipl 280
Command ==>
CPU0000 PSW=FF0600808000FFFF 24..W..... instcount=58,036
マスターコンソール画面に切り替えます。
IBC163A END OF JOB.
IBC202A INTERV. REQUIRED 00C 02 0E00 4010 0000 3800
IBC154A READY READER 00C. DEPRESS INTERRUPT KEY.
「Enter」キーを入力します。すると次のような画面になり、リストアプログラムの「DUMP/RESTORE」はI/Oデバイス0x0009からの入力を待っています。
IBC105A DEFINE INPUT DEVICE. DUMP/RESTORE 7.83
HHCTE006A Enter input for console device 0009
ここで、「input=1442,00d」と入力し、「Enter」キーを入力します。
IBC105A DEFINE INPUT DEVICE. DUMP/RESTORE 7.83
HHCTE006A Enter input for console device 0009
input=1442,00d
Hercules設定ファイルの「ibcdmprs.cnf」の次の行「000D 1442 sajobs/rsstart1.sajob」の「rsstart1.sajob 」ジョブをI/Oデバイスアドレス0x00dのカードリーダから読み込んで実行します。
IBC105A DEFINE INPUT DEVICE. DUMP/RESTORE 7.83
DUMP/RESTORE 7.83
START1 JOB 'RESTORE MVS STARTER SYSTEM RES VOLUME'
MSG TODEV=1052,TOADDR=009
RESTORE FROMDEV=3400,FROMADDR=280,TODEV=3330,TOADDR=150,
VOLID=START1
END
IBC163A END OF JOB.
Herculesエミュレータ画面に切り替えます。すると、次の様な画面になっています。
プログラム・ステータス・ワード末尾四桁が「EEEE」であることを確認します。
これは、DUMP/RESTOREプログラムがDASDにスターターシステムをリストア完了したことを示しています。
ipl 280
HHCCD001I Readahead thread 1 started: tid=B5C60B70, pid=4012
HHCCD001I Readahead thread 2 started: tid=B5B5FB70, pid=4012
Command ==>
CPU0000 PSW=000600008000EEEE 24..W..... instcount=760,926,340
ここまでで、「dasd/start1.3330」DASDの初期化とリストアまでが終わりました。
次は、「dasd/spool0.3330」DASDの初期化とリストアです。
Herculesエミュレータ画面のコマンドプロンプトに「stop」と入力し、「Enter」キーを入力します。
Command ==> stop
CPU0000 PSW=000600008000EEEE 24..W..... instcount=1,196,792,748
次に、Herculesエミュレータ画面のコマンドプロンプトに「ipl 281」と入力し、「Enter」キーを入力します。
stop
Command ==> ipl 281
CPU0000 PSW=000600008000EEEE 24M.W..... instcount=1,196,792,748
プログラム・ステータス・ワード末尾四桁が「FFFF」であることを確認します。
stop
ipl 281
Command ==>
CPU0000 PSW=FF0600808000FFFF 24..W..... instcount=71,343
マスタコンソール画面に切り替えます。
END
IBC163A END OF JOB.
「Enter」キーを入力します。すると、入力待ち状態になります。
IBC105A DEFINE INPUT DEVICE. DASDI 7.80
HHCTE006A Enter input for console device 0009
「input=1442,00e」と入力し、「Enter」キーを入力します。
IBC105A DEFINE INPUT DEVICE. DASDI 7.80
HHCTE006A Enter input for console device 0009
input=1442,00e
これは、「Herculesエミュレータ設定ファイル」の「ibcdmprs.cnf」の「000E 1442 sajobs/inspool0.sajob」の「inspool0.sajob」をI/Oデバイスアドレスの0x00eのカードリーダデバイスからDASD初期化プログラムの「DASDI」を読み込んで実行します。
DASDI 7.80
SPOOL0 JOB 'INITIALIZE MVS STARTER SYSTEM SPOOL VOLUME'
MSG TODEV=1052,TOADDR=009
DADEF TODEV=3330,TOADDR=151,IPL=NO,VOLID=111111,BYPASS=YES
VLD NEWVOLID=SPOOL0,OWNERID=HERCULES
VTOCD STRTADR=1,EXTENT=5
END
IBC163A END OF JOB.
IBC202A INTERV. REQUIRED 00E 02 0E00 4010 0000 3100
IBC154A READY READER 00E. DEPRESS INTERRUPT KEY.
Herculesエミュレータ画面に切り替えます。すると、次の様な画面になっています。
プログラム・ステータス・ワード末尾四桁が「1111」であることを確認します。
これは、I/Oデバイスアドレス0x00eのカードリーダからJOBを読み込んで実行し、スターターシステムをリストアするDASDの初期化が完了したことを示すています。
ipl 281
HHCCP048I 000E:CCW=020003F1 20000050=>00000000 00000000 00000000 00000000 ......
HHCCP075I 000E:Stat=0E00 Count=0050 =>00000000 00000000 00000000 00000000 ......
HHCCP076I 000E:Sense=40100000 00000000 00000000 00000000 00000000 00000000
HHCCP077I 000E:Sense=INTREQ MSG
Command ==>
CPU0000 PSW=0106000080001111 24..W..... instcount=1,819,625
「stop」と入力し、「Enter」キーを入力します。
Command ==> stop
CPU0000 PSW=0106000080001111 24..W..... instcount=1,819,625
次に、「ipl 281」を入力し、「Enter」キーを入力します。
プログラム・ステータス・ワード末尾四桁が「FFFF」であることを確認します。
stop
Command ==> ipl 281
CPU0000 PSW=FF0600808000FFFF 24..W..... instcount=58,036
マスタコンソール画面」に切り替えます。
IBC163A END OF JOB.
IBC202A INTERV. REQUIRED 00E 02 0E00 4010 0000 3100
IBC154A READY READER 00E. DEPRESS INTERRUPT KEY.
「Enter」キーを入力すると、次のよう画面になり、入力待ち状態になっています。
IBC105A DEFINE INPUT DEVICE. DUMP/RESTORE 7.83
HHCTE006A Enter input for console device 0009
「input=1442,00f」を入力し、「Enter」キーを入力します。
IBC105A DEFINE INPUT DEVICE. DUMP/RESTORE 7.83
HHCTE006A Enter input for console device 0009
input=1442,00f
Hercules設定ファイルの「ibcdmprs.cnf」の次の行「000F 1442 sajobs/rsspool0.sajob」の「rsspool0.sajob 」ジョブをI/Oデバイスアドレス0x00fのカードリーダから読み込んで実行します。
DUMP/RESTORE 7.83
SPOOL0 JOB 'RESTORE MVS STARTER SYSTEM SPOOL VOLUME'
MSG TODEV=1052,TOADDR=009
RESTORE FROMDEV=3400,FROMADDR=281,TODEV=3330,TOADDR=151,
VOLID=SPOOL0
END
IBC163A END OF JOB.
Herculesエミュレータ画面に切り替えます。すると、次の様な画面になっています。
プログラム・ステータス・ワード末尾四桁が「EEEE」であることを確認します。
これは、DUMP/RESTOREプログラムがDASDにスターターシステムをリストア完了したことを示しています。
stop
ipl 281
Command ==>
CPU0000 PSW=000600008000EEEE 24..W..... instcount=1,910,855,520
これで、DASDボリュームの初期化とMVSスターターシステムのリストアが完了しました。
Herculesエミュレータ画面のコマンドラインで「quit」と入力し、「Enter」キーを入力して終了します。
stop
ipl 281
Command ==> quit
CPU0000 PSW=000600008000EEEE 24..W..... instcount=1,910,855,520
quit
HHCIN900I Begin Hercules shutdown
HHCIN901I Releasing configuration
HHCAO002I Hercules Automatic Operator thread ended
HHCCP008I CPU0000 thread ended: tid=B68FCB70, pid=4012
HHCTT003I Timer thread ended
HHCCF047I Subchannel 0:0000 detached
HHCCF047I Subchannel 0:0001 detached
HHCCF047I Subchannel 0:0002 detached
HHCCF047I Subchannel 0:0003 detached
HHCCF047I Subchannel 0:0004 detached
HHCCD210I size free nbr st reads writes l2reads hits switches
HHCCD211I readaheads misses
HHCCD212I --------------------------------------------------------------------
HHCCD213I [*] 4693775 0% 0 19 8352 1 299 10499
HHCCD214I 293 2
HHCCD215I dasd/start1.3330
HHCCD216I [0] 4693775 0% 0 rw 19 8352 1
HHCCF047I Subchannel 0:0005 detached
HHCCD210I size free nbr st reads writes l2reads hits switches
HHCCD211I readaheads misses
HHCCD212I --------------------------------------------------------------------
HHCCD213I [*] 3129206 8% 3 90 11012 1 300 13159
HHCCD214I 295 3
HHCCD215I dasd/spool0.3330
HHCCD216I [0] 3129206 8% 3 rw 90 11012 1
HHCCD011I Readahead thread 2 stopping: tid=B5B5FB70, pid=4012
HHCCD011I Readahead thread 1 stopping: tid=B5C60B70, pid=4012
HHCCD013I Garbage collector thread stopping: tid=B5F63B70, pid=4012
HHCCD012I Writer thread 2 stopping: tid=B6266B70, pid=4012
HHCCD012I Writer thread 1 stopping: tid=B6367B70, pid=4012
HHCCF047I Subchannel 0:0006 detached
HHCCF047I Subchannel 0:0007 detached
HHCCF047I Subchannel 0:0008 detached
HHCIN902I Configuration release complete
HHCIN903I Calling termination routines
HHCHD900I Begin shutdown sequence
HHCHD901I Calling panel_cleanup
HHCTE004I Console connection thread terminated
HHCHD902I logger_term complete
HHCHD909I Shutdown sequence complete
HHCIN904I All termination routines complete
HHCIN909I Hercules shutdown complete
HHCIN099I Hercules terminated
HHCHD900I Begin shutdown sequence
HHCHD909I Shutdown sequence complete
$
スナップショットの取得
この先の作業で、何らかのエラーが発生したときに戻れる地点を作るために、ここで、ディレクトリをtarで固めておく。
$ pwd
/home/hercules
$ tar cvfj mvs.01.tar.bz2 ./mvs
脚注1
例えば、「makeadisk」スクリプト内に記述されている「ckd2cckd」のコマンドライン引数が古いバージョンのコマンドライン引数で記述されているため、「MVSDLB」DASDの生成がエラーで作れなかったり(これはググって解決できましたが)、一番の謎は、「SG0030」JCLで「MVSDLB」DASD にデータセットを生成するのですが、容量不足でABENDしてしまうのです。「SG0030」JCLを修正して、初期割り当て量を"1"にして、とりあえずデータセット生成を成功させることはできるのですが、今度は「SG0040」JCLでこれらのデータセットにMVS3.8Jディストリビューションテープからライブラリをコピーしようとすると、容量不足でABENDしてしまいました。容量不足になるところを増やして他は減らしてとモグラたたきを繰り返しましたが、根本的にDASDの生成と割り当てがあっていないようなので、この手順はあきらめました。