前へ | 次へ | 目次 | 索引 |
論理ディスクをマウントし,CREATE/DIR や COPY などの OpenVMS コマンドまたはレコード管理サービス (RMS) を使用して論理ディスク上にファイルを作成します。論理ディスクは,何度でもディスマウントと再マウントを繰り返すことができ,また,必要なだけ内容を更新することができます。さらに, UIC ベースのセキュリティとアクセス制御リスト (ACL) をファイルに適用することも可能です。
論理ファイルの内容が完成したら,それを CD-R ディスクに書き込みます。
10.11.4 CD-R ディスクへの書き込み
CD-R ディスクに書き込む準備ができたら,次の手順を実行します。
$ @SYS$MANAGER:CDRECORD WRITE filename LDAn: DQnn: laser speed priority |
ここで,
filename は,コンテナ・ファイルのファイル名と拡張子である。
LDAn: は,論理ディスクの名前で,LDA1 〜 LDA9999 の値をとる。
DQnn: は,CD-R または CD-RW ドライブのデバイス名である。
laser は,レーザー光のオンまたはオフを指定する。値は 0 (オン) または 1 (オフ) で,省略時の値は 0 である。実際に CD-R ディスクに書き込む前にプロセスをテストする場合は,このパラメータを 1 (オン) に設定する。
speed は,書き込み操作の記録速度で,0 〜 99 の値をとる。省略時の値は 0 である。 CDRECORD.COM は,ドライブ速度とメディアの速度レートをもとに,最大記録速度を自動的に判定する。 speed を 0 (省略時の値) に設定すると,CDRECORD.COM は,自動的に算出した最大記録速度を使用する。この記録速度は,1 〜 99 の数値を入力することによって上書きできる。
CD-R または CD-RW ドライブは,いくつかある固定速度のいずれかを使用して書き込む (たとえば,2 倍,4 倍,8 倍,16 倍,および 20 倍)。対応可能な速度のいずれかにドライブを設定するには,上書きする速度を入力する。ドライブがサポートしない速度を入力した場合は,サポートされている速度のうち,指定した値に近い速度を CDRECORD.COM が選択する。 |
ドライブが特定の速度で記録する必要があるかどうかを確認する必要があります。出力を安定供給する能力がコンピュータに不足している場合,ドライブによっては,エラーを抑えるために,速度を落とす必要があります。コンピュータがデータを必要な速度で供給できないために,書き込み操作が一時停止するという事態は望ましくありません。このため,間欠的な記録動作に対応するドライブもあります ("burn-proof" ドライブ)。また priority パラメータを上げることによって,問題を軽減するという方法もあります。
次に例を示します。
$ @SYS$MANAGER:CDRECORD WRITE TESTFILE.DSK LDA1: DQA0: 0 12 |
TESTFILE.DSK は,コンテナ・ファイルの名前と拡張子です。
LDA1: は,論理ディスクのデバイス名です。
DQA0: は,CD-R ドライブのデバイス名です。
0 は,レーザー光を有効にします。
12 は,記録速度です。
10.11.5 コンテナ・ファイルの再利用
論理ディスクの内容を 1 つ以上の CD-ROM に書き込み終わった時点で,コンテナ・ファイルを削除することもできますが,将来 CD-ROM を再度作成する予定があれば,それを再利用することもできます。コンテナ・ファイルを再利用すると,次のような利点があります。
コンテナ・ファイルを再利用すると,現在のファイルの内容が削除されます。 |
コンテナ・ファイルを再利用するには,次の形式で REUSE コマンドを入力します。
$ @SYS$MANAGER:CDRECORD REUSE filename LDAn: label |
ここで,
filename は,コンテナ・ファイルの名前と拡張子です。
LDAn: は,論理ディスクの名前です。
label は,論理ディスクのボリューム・ラベルです。
次に例を示します。
$ @SYS$MANAGER:CDRECORD REUSE TESTFILE.DSK LDA1: FRED |
TESTFILE.DSK は,コンテナ・ファイルの名前です。
LDA1: は,論理ディスクのデバイス名です。
FRED は,論理ディスクのボリューム・ラベルです。
OpenVMS コマンドを使用して,ディレクトリとファイルを作成します。内容が完成したら,CDRECORD WRITE コマンドで CD-R ディスクに書き込みます。
10.11.6 CDRECORD コマンドの要約
CDRECORD.COM コマンド行の形式は次のとおりです。
$ @SYS$MANAGER:CDRECORD command [parameter1|parameter2|...] |
CDRECORD には,次のコマンドがあります。
表 10-9 に,各コマンドのパラメータを要約します。
HELP | [OVERVIEW|INQUIRE|SETUP|REUSE|WRITE] |
---|---|
OVERVIEW | CDRECORD.COM を使用して CD-ROM を作成する方法についてのオンライン・ヘルプを表示する。 |
INQUIRE | INQUIRE コマンドについてのオンライン・ヘルプを表示する。 |
SETUP | SETUP コマンドについてのオンライン・ヘルプを表示する。 |
REUSE | REUSE コマンドについてのオンライン・ヘルプを表示する。 |
WRITE | WRITE コマンドについてのオンライン・ヘルプを表示する。 |
INQUIRE | DQnn: |
DQnn: | CD-R または CD-RW ドライブのデバイス名。最初の 2 文字は,DQ とする。 3 番目の文字は,A 〜 Z の英文字である。 4 番目の文字には,0 または 1 を使用する。省略時の値は,DQA0 である。 |
REUSE | filename LDAn: label |
filename | コンテナ・ファイルのファイル名と拡張子。 |
LDAn: | 論理ディスクの名前。LDA1 〜 LDA9999 の値をとる。省略時の値は LDA1。 |
label | 論理ディスクのボリューム・ラベル。 |
SETUP | filename LDAn: label nnnn |
filename | コンテナ・ファイルのファイル名。通常のファイル命名規則に従い,ファイル拡張子を付ける。 |
LDAn: | 論理ディスクの名前で,LDA1 〜 LDA9999 の値をとる。省略時の値は LDA1。 |
label | 論理ディスクと CD-ROM のボリューム・ラベル。ボリュームラベルの割り当てに関する通常の規則に従う。 |
nnnn | コンテナ・ファイルに割り当てる 512 バイト・ブロックの数。この数には 4 の倍数を指定する。省略時の値は,1250000 (640 MB)。 |
WRITE | filename LDAn: DQnn: laser speed priority |
filename | コンテナ・ファイルのファイル名と拡張子。 |
LDAn: | 論理ディスクの名前で,LDA1 〜 LDA9999 の値をとる。省略時の値は LDA1。 |
DQnn: | CD-R または CD-RW ドライブのデバイス名。最初の 2 文字は,DQ とする。 3 番目の文字は,A 〜 Z の英文字である。 4 番目の文字には,0 または 1 を使用する。省略時の値は,DQA0 である。 |
laser | レーザー光のオンまたはオフを指定する。値は 0 (オン) または 1 (オフ) で,省略時の値は 0 である。 |
speed | 書き込み操作の記録速度。0 〜 99 の値をとる。省略時の値は 0 で,CDRECORD.COM によって算出された最大記録速度を使用する。 1 〜 99 の値を手動で入力すると,記録速度がその値に設定できる。 |
priority | 現在のプロセスの基本優先順位を変更する。値は 1 〜 63 である。値を指定しない場合は,元の基本優先順位がそのまま使用される。値を変更した場合,優先順位を元のレベルにリセットするかどうかを尋ねるメッセージが表示される。「no」と答えると,上げた優先順位がそのまま使用される。 ALTPRI 特権が必要である。 |
CD-ROM を作成するには,次の手順に従います。
$ @SYS$MANAGER:CDRECORD INQUIRE DQA0: |
$ @SYS$MANAGER:CDRECORD SETUP TESTFILE.DSK LDA1: FRED 1250000 |
$ @SYS$MANAGER:CDRECORD WRITE TESTFILE.DSK LDA1: DQA0: |
リンク,すなわちディレクトリ・エントリとは,ファイル名とバージョン番号を特定のファイルに関連付けるディレクトリ内のオブジェクトです。ボリューム上のすべてのリンクは,同じボリュームにあるファイルを表している必要があります。
OpenVMS Alpha バージョン 7.3でハード・リンクのサポートが導入され,現在, OpenVMS では,1 次リンク,エイリアス,およびハード・リンクの 3 種類のリンクがサポートされています。
OpenVMS Alpha は,0 以上のリンクを持つファイルをサポートします。ファイルへの最初のリンクは, "1 次リンク" と呼ばれ,ディレクトリ ID とリンクの名前がファイル・ヘッダに格納されている点が,他のリンクと異なります。その他のリンクは,ファイルのあるボリュームで,ハード・リンクが有効か無効かによって,エイリアスかハード・リンクかになります。
OpenVMS Alpha システムでは,特定のボリュームを選択して,ハード・リンクを有効にすることができます。ハード・リンクが有効でないボリュームでは,1 次リンク以外のリンクはエイリアスになります。ハード・リンク機能を有効にすると,そのボリュームではファイルの VMS エイリアスが作成できなくなります。ボリュームは,ハード・リンクとエイリアスのどちらでもサポートできますが,両方をサポートすることはできません。 SET FILE/ENTER コマンドは,ファイルのハード・リンクを作成する場合にも,エイリアスを作成する場合にも使用します。
ハード・リンクとエイリアスの決定的な違いは,削除した場合の結果にあります。通常,ファイルの削除と呼ばれている操作は,ファイルへのリンクの削除という方が正確です。ファイルへのリンクが削除されると,関連付けられたファイルも削除される場合もあります。ファイルが削除されるかどうかは,ファイルがあるボリュームでハード・リンクが有効になっているか,またそのファイルへのハード・リンクが作成されているかによります。
ハード・リンクを有効にすると,ファイルへのリンクがなくなった時点でファイルが実際に削除されます。ハード・リンクを有効にせず,ファイルのエイリアスを作成しなかった場合,基本的にそのファイルへのリンクとしては,1 次リンクだけが存在します。そのファイルへのエイリアスを作成し,そのエイリアスを削除した場合,そのファイルへの1 次リンクが削除されていないので,ファイルはまだ存在します。エイリアスとは,このリンクのディレクトリの別の呼び方です。1 次リンクを削除すると,ファイルが削除され,エイリアスのエントリが残ります。
エイリアス・リンクを通じて削除済みファイルにアクセスしようとすると, "no such file" というエラーが発生します。 1 次リンクとハード・リンクを使用した場合,多くのリンクが設定可能です。そのファイルへの1 次リンクとすべてのハード・リンクを削除したとき,ファイルが実際に削除されます。
これに関連して考慮しなければならないのがディスク・クォータです。 OpenVMS では,各ファイルのサイズは,ファイル所有者のディスク・クォータが利用されます。他のユーザがファイルにハード・リンクを作成した場合,それらのユーザのディスク・クォータは使用されません。所有者は,アクセスできるディレクトリのファイルへのリンクであれば,どのリンクでも削除できますが,他のユーザのディレクトリにあるハード・リンクによって,ファイルが保持され,所有者のクォータが削除後も使用されることがあります。
既存のボリュームでハード・リンクのサポートを有効にするときは, ANALYZE/DISK/REPAIR コマンドを実行して,ハード・リンクが正しく操作されるようにします。
OpenVMS は,ファイルだけでなくディレクトリへのハード・リンクまたはエイリアスをサポートします。ほとんどの UNIX システムは,リンクを通常のファイル宛てに限定しています。
10.12.1 ハード・リンクの例 (INIT および SET VOLUME)
ハード・リンクのサポートを有効化するには,INITIALIZE コマンドまたはSET VOLUME を使用します。
ハード・リンクを有効にして ODS-5 ディスクを初期化するには,次のコマンドを実行します。
$ INIT/VOLUME_CHARACTERISTICS=HARDLINKS |
マウントされた Files-11 ボリューム上でハード・リンクを有効化するには,次のコマンドを実行します。
$ SET VOLUME/VOLUME_CHARACTERISTICS=HARDLINKS |
ハード・リンクのサポートをすでに有効化したボリュームがあり,それを変更する場合,SET VOLUME コマンドを使用してそのボリュームを無効化することができます。
$ SET VOLUME SYS$DISK/VOLUME_CHARACTERISTICS=NOHARDLINKS |
次のコマンドを実行すると,ハード・リンクのサポートが無効になります。ただし,有効なハード・リンクを無効なハード・リンクに変更すると,ファイルが不適切な動作をすることがあります。たとえば,上の例で示したハード・リンクサポートを無効にした後,ファイル FOO: に対するエイリアスを作成する場合,次のようになります。
$ CREATE FOO.A $ SET FILE FOO.A/ENTER=FOO.B |
これで FOO.A に対するエイリアスが FOO.B という名前で作成されました。ここで元のファイルを削除するとどうなるでしょう。
$ DELETE FOO.A;1 |
これで FOO.A が削除されました。このボリューム上で directory コマンドを使用して FOO.B を検索すると,そのファイルへの1 次リンクがもはや存在しないので, "File not found" というエラーが表示されます。次に例を示します。
$ DIR FOO.B |
この問題を解決するために,またはファイルへのハード・リンクの数を確認するために,次のコマンドを実行します。
$ ANALYZE/DISK/REPAIR |
ANALYZE/DISK/REPAIR は,各ファイルを参照するディレクトリ・エントリの数を確認し,それが正しくない場合は,リンク・カウントを設定します。ディスク上で,ハード・リンクのサポートが以前有効だったファイルに対してエイリアスを作成する場合は,その前に必ず ANALYZE/DISK/REPAIR コマンドを使用して,リンク・カウントを正しく設定します。現在ハード・リンクが有効か無効か不明な場合は, SHOW DEVICE/FULL コマンドを実行します。
リンクカウントを報告するには,DIRECTORY/FULL と DUMP/HEADER を使用します。リンクの数を確認するには,次のコマンドを実行します。
$ DIRECTORY/LINK |
前へ | 次へ | 目次 | 索引 |