Sun 周辺機器 使用の手引き

第 3 章 テープドライブの設定と使用

この章では、Solaris 操作環境を使用してディスクドライブを設定する方法を説明します。

この章の内容を以下に示します。

準備作業

新しいディスクドライブの操作環境を設定する前に、以下の準備が必要です。


注 -

「システムの停止」 の手順以外の方法でシステムを停止すると、新しいディスクドライブが、オペレーティングシステムに認識されない場合があります。


テープドライブ

テープドライブは、主にシステムデータのバックアップに使用します。

新しいテープドライブをシステムに接続して、正しく起動すると、そのテープドライブはすぐに使用できる状態になります。ディスクドライブと異なり、テープドライブを使用するために、フォーマットやラベル付けなどの特別な処理の必要はありません。

テープデバイスを取り付けて、オペレーティングシステムを起動したら、以下の表 3-1 に示すような論理デバイス名を使用して、テープデバイスを参照してください。論理デバイス名については、付録 A 「SCSI アドレスの概念」を参照してください。

表 3-1 テープドライブのアドレスと論理デバイス名

テープドライブ 

SCSI アドレス スイッチまたはジャンパ設定 (ターゲット ID)  

 主論理デバイス名 補助的な論理デバイス名

1 台目のテープ ドライブ 

4* 

/dev/rmt/0

/dev/rmt/0n /dev/rmt/0h /dev/rmt/0c /dev/rmt/0ubn

2 台目のテープ ドライブ 

5* 

/dev/rmt/1

/dev/rmt/1n /dev/rmt/1h /dev/rmt/1c /dev/rmt/1ubn
 * バス上で一意のアドレスを設定可能

大部分のテープ操作では、主論理デバイス名を使用してください。主論理デバイス名を使用することによって、テープドライブがその最適なデフォルトパラメタを使用するようになります。ただし、テープドライブに対して特殊な動作を指定する場合は、次のようにして適切な論理デバイス名の最後に英字を付けます。

以下の表に、有効なテープ名を示します。2 台目のテープドライブに対しては、0 の代わりに 1 を使用します。

0n 0b 0bn0c 0cb 0cbn 0cn0h 0hb 0hbn 0hbn0m 0mb 0mbn 0mn0l 0lb 0lbn 0ln0u 0ub 0ubn 0un

テープドライブを追加する
  1. システムを停止します。

    「システムの停止」を参照してください。

  2. テープドライブのアドレススイッチが正しく設定されていることを確認します。

    通常、テープドライブの SCSI アドレススイッチは、工場出荷時に SCSI ターゲット ID 4 に設定されています。複数のテープドライブがある場合は、2 台目のテープドライブの SCSI アドレススイッチを SCSI ターゲット ID 4、またはバス上に存在するその他すべてのターゲット ID 以外のアドレスに設定する必要があります。

    取り付けるテープドライブに付属しているマニュアルと付録 A 「SCSI アドレスの概念」を参照してください。


    注 -

    1 つの SCSI バスに 4 つ以上のテープドライブを接続すると、システムの性能が低下する場合があります。



    注意 - 注意 -

    各テープドライブには固有の SCSI ターゲット ID を設定する必要があるため、テープドライブの SCSI アドレススイッチを、表 3-1 とは異なる数字に設定する必要がある場合があります。デバイスアドレスについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。


  3. テープドライブを接続します。

    設置についての詳細は、ハードウェアに付属しているマニュアルを参照してください。

  4. システムおよびすべての周辺機器の電源を入れます。

    ほとんどの場合は、この操作によってシステムが起動します。この後、/reconfigure ファイルが存在する場合 (第 1 章「事前の作業」「システムを準備する」を参照) は、オペレーティングシステムによって、新しいデバイスに自動的に論理デバイス名が割り当てられ、そのデバイス用のデバイスドライバが初期化されます。 /reconfigure ファイルが存在しない場合は、boot -r を実行することによって、/reconfigure ファイルが存在した場合と同じことを行うことができます。詳細は、付録 B 「システムの起動」を参照してください。

これで、新しいテープドライブを使用できます。

各種のテープ操作コマンド

テープドライブの状態を表示する
  1. テープドライブにテープを挿入します。

  2. 以下のように入力します。


    % mt -f /dev/rmt/ユニット番号 status
    

    デバイスアドレス (またはデバイス名) が /dev/rmt/ユニット番号であるテープドライブが検索され、状態が表示されます (以下の例を参照)。

    複数のテープドライブがシステムに接続されている場合は、デバイス名を /dev/rmt/0 から /dev/rmt/1 /dev/rmt/2 などに変更し、同じコマンドを実行してください。

    • 以下のようなメッセージが表示された場合、システムはテープドライブにアクセスすることができ、カートリッジが存在しています。


      Exabyte EXB-8200 8mm tape drive:
        sense key(0x0)= nosense     residual= 0 retries= 0
        file no= 0    block no= 0
      

      sense key= nosense は、システムがテープにアクセスでき、エラーがなかったことを示します。この場合には、以降の節で説明するすべてのバックアップコマンドを使用することができます。

    • テープドライブをリセットした場合や、電源を入れた直後、または直前にテープカートリッジを挿入していた場合は、以下のようなメッセージが表示されます。


      Exabyte EXB-8200 8mm tape drive:
        sense key(0x6)= unit attention      residual= 0 retries=
      0
        file no= 0    block no=0
      

      この場合は、sense key(0x6)= unit attention というメッセージの代わりに sense key(0x0)= nosense というメッセージが表示されるまで、 mt -f /dev/rmt/0 status コマンドを繰り返し実行してください。

    • 以下のメッセージが表示された場合、システムはテープにアクセスすることはできません。


      /dev/rmt/0: no tape loaded or drive offline
      

      この場合は、テープを挿入し、mt -f /dev/rmt/0 status コマンドを再度実行してください。

    • 以下のメッセージが表示された場合、システムはテープドライブにアクセスすることはできません。


      no such file or directory
      

      この場合は、テープドライブに電源が入っており、システムに正しく接続されていることを確認してください。その後、「周辺機器の接続後に起動する」の手順に従って、システムを起動し直してみてください。

1/4 インチテープの巻き具合を均一にする

1/4 インチのテープドライブに未使用のテープカートリッジを挿入した場合は、テープの巻き具合を均一にする必要があります。テープの巻き具合を均一にするには、テープを始めから終わりまで走行させます。


注 -

DDS (Digital Data Storage) や 8mm デバイスでは、以下に示す retension コマンドを使用することはできません。


  1. テープドライブに新しい空のテープカートリッジを挿入します。

  2. 以下のように入力します。


    % mt -f /dev/rmt/ユニット番号 retension
    

テープを巻き戻す
  1. 以下のように入力します。


    % mt -f /dev/rmt/ユニット番号 rewind
    

テープドライブを清掃する

テープドライブは、定期的に清掃する必要があります。

  1. クリーニングカートリッジをテープドライブに挿入します。

    詳細はハードウェアのマニュアルを参照してください。

テープユーティリティー

テープドライブに対するデータの読み取りや書き込みに使用されるユーティリティーは数多くあります。この節では、Solaris 操作環境に付属していて、よく使われるテープユーティリティーをいくつか紹介します。その他のテープまたはバックアップユーティリティーを使用している場合は、その製品に付属しているマニュアルを参照してください。

この節で説明するテープ操作コマンドは、以下のとおりです。


注 -

5.0 GB 4mm DDS デバイスを使用する場合は、性能を最適化するために、ブロック化因数はデフォルトの 20 ではなく 96 を使用してください。ブロック化因数 96 では、1 回の転送で 48 KB 転送されます。 150 MB 1/4 インチテープドライブ、2.3 GB 8mm テープドライブ、5.0 GB 8m テープドライブ、フロントロード 1/2 インチテープドライブの場合には、性能を最適化するために、ブロック化因数はデフォルトの 20 ではなく 126 を使用してください。 ブロック化因数は、テープユーティリティーコマンド行のオプションとして指定します。


cpio コマンド

cpio コマンドは、標準入力からファイル名を受け取り、それらのファイルを標準出力に書き出すことによって別のデバイスにファイルをコピーします。cpio は汎用コマンドですが、標準入力と標準出力を入出力先を変更する必要があります。cpioは、複数のボリューム (テープカートリッジ) を必要とするデータを扱うときに使用します。

例 1:

次の例は、/work という作業用ディレクトリと、そのサブディレクトリにあるすべてのファイルを、デバイスアドレス (またはデバイス名) が /dev/rmt/0 であるテープドライブにコピーする方法を示しています。


example# cd /work
example# ls -R | cpio -ocB > /dev/rmt/0

例 2:

次の例は、テープ上にあるファイルをハードディスクにコピーする方法を示しています。


example# cd /work
example# cpio -icdB < /dev/rmt/0


注 -

テープからハードディスクにファイルを取り出す (つまりコピーする) ときには、ハードディスクからテープにファイルをコピーしたときと同じブロック化因数を使用する必要があります。したがって、B オプションを指定する必要があります。


dd コマンド

このコマンドは、データ形式の異なるファイルを変換してコピーします。多くの場合は、ファイルシステムまたはパーティションをハードディスクからテープに転送するために使用されます。また、あるハードディスクから別のハードディスクにファイルをコピーするときにも使用できます。ブロックサイズの変更が可能なデバイスを使用する場合は、ファイルをハードディスクからテープに、またはテープからハードディスクにコピーするときに必ず同じブロックサイズを使用する必要があります。

次の例は、/dev/dsk/c0t0d0s7 というファイルシステム (またはパーティション) の内容を、デバイスアドレス (またはデバイス名) が /dev/rmt/0 である 4mm テープドライブに書き込む方法を示しています。ブロック化因数は 96 です。この例は、5.0 GB 4mm DDS デバイス用に最適化しています。

例:


example# dd if=/dev/dsk/c0t0d0s7 of=/dev/rmt/0 bs=96k

ufsdump コマンド

ufsdump コマンドは、ハードディスクにあるファイルシステムをテープにコピーします。ufsdump は、特にバックアップ用に設計されたユーティリティーです。複数ボリュームと増分バックアップに対応しています。増分ダンプレベルとスケジュールについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。


注 -

ufsdump コマンドは、単一のファイルシステム (パーティション) に対してだけ有効です。したがって、すべてのファイルが 1 つのファイルシステム (パーティション) に含まれている必要があります。また、ユーパーユーザーである必要があります。


例:

次の例は、ディスクドライブのパーティション /dev/rdsk/c0t3d0s0 に配置されているすべてのファイルを、圧縮モードで、/dev/rmt/1 という1つのファイル (一般にダンプファイルと呼ばれます) にコピーする方法を説明しています。


example# ufsdump 0ubf 96 /dev/rmt/1 /dev/rdsk/c0t1d0s0

ufsrestore コマンド

ufsrestore コマンドは、ファイルシステムをテープからハードディスクにコピーします。このコマンドでコピーできるのは、以前に ufsdump コマンドでハードディスクからテープにコピーしたファイルシステムだけです。

ufsrestore コマンドには、次の 3 つのオプションのうちの 1 つを必ず指定します。

以下のオプションは省略可能です。

例:

次の例は、対話形式でテープからファイルを取り出す方法を示しています。ファイルは、現在のディレクトリ (この例では /disk2) に書き込まれます。ブロック化因数として 96、ダンプファイルとして /dev/rmt/0 (1 台目のテープドライブ) を指定しています。


注 -

テープからハードディスクにファイルを取り出す (つまりコピーする) ときには、ハードディスクからテープにファイルをコピーしたときと同じ (またはそれ以上の) ブロック化因数を使用する必要があります。


example# cd /disk2
example# ufsrestore ibf 96 /dev/rmt/0
ufsrestore > ?
Available commands are:
  ls [arg] - list directory
  cd arg - change directory
  pwd - print current directory
  add [arg] - add `arg' to list of files to be extracted
  delete [arg] - delete `arg' from list of files to be
extracted
  extract - extract requested files
  setmodes - set modes of requested directories
  quit - immediately exit program
  what - list dump header information
  verbose - toggle verbose flag (useful with "ls")
  help or "?" - print this list
IF no `arg' is supplied, the current directory is used


システムは、ufsrestore プロンプトを表示します。疑問符 (?) を入力すると、使用することができる引数の一覧が以下のように表示されます。

ここで ls と入力すると、テープ上にあるディレクトリを表示することができます。


ufsrestore > ls
4lib/     dict        mail    openwin      spool
5bin      games       man/    preserve     src
adm       include/    net     pub          tmp

ここで、add コマンドを使用して、抽出するファイルの一覧にファイルまたはディレクトリを追加します。


ufsrestore > add man mail

この例では、テープから抽出するファイルの一覧に man mail というファイルを追加しています。

テープからこれらのファイルを抽出してみましょう。抽出したファイルは、現在の作業用ディレクトリに書き込まれます (この例では /disk2)。


ufsrestore > extract

目的のファイルの抽出を終了したら、q と入力して、ufsrestore コマンドを終了します。


ufsrestore > q

tar コマンド

tar コマンドは、複数のファイルをまとめて tar ファイルという 1 つのファイルに保管したり、tar ファイルからファイルを抽出したりします。tar で複数のボリューム (テープ) を扱うことはできないため、保管するデータが複数のテープを必要とする場合は、別のテープ操作コマンドを使用してください。

例 1:

次の例は、ハードディスクからテープにファイルをコピーする方法を示しています。


example# tar cvbf 96 /dev/rmt/1 ./ディレクトリ

この例の tar コマンドは、指定されたディレクトリから、デバイス名 が /dev/rmt/1 のテープドライブにファイルをコピーします。ソースディレクトリ名の前に ./ が指定されているため、ファイル名は相対パス名で記録されます。後でこれらのファイルを抽出した場合、現在の作業用ディレクトリを基準にファイルシステムに書き戻されます。

例 2:

次の例は、テープからハードディスクの現在の作業用ディレクトリにファイルをコピーする方法を説明しています。tar を実行する前に、抽出されるファイルを格納するディレクトリに切り替えておいてください。


example# cd /tmp
example# tar xvbf 96 /dev/rmt/1


注 -

テープからハードディスクにファイルを取り出す (つまりコピーする) ときは、ハードディスクからテープにファイルをコピーしたときと同じ (またはそれ以上の) ブロック化因数を使用する必要があります。