Sun 周辺機器使用の手引き

テープユーティリティー

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

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


注 -

この後に出てくる「ブロック化因数 (blocking factor)」とは、各コマンドがテープドライブに送るデータ量を意味しています。使用の際には、設定可能な範囲で最も大きな値を指定するのが最良です。詳細についてはマニュアルページの st の項目を参照してください。 データの読み出しに使用するブロック化因数は、データの書き込みに使用するブロック化因数と同じかそれより大きい値に設定しておく必要があります。「設定可能な範囲で最も大きな値を指定するのが最良」と述べた理由は、ここにあります。 ブロック化因数のデフォルト値は 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 テープドライブに書き込む方法を示しています。ブロック化因数は 63k です。

例:


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

ufsdump コマンド

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


注 -

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


例:

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


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

ufsrestore コマンド

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

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

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

例:

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


注 -

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


example# cd /disk2
example# ufsrestore ibf 126 /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 126 /dev/rmt/1 ./ディレクトリ

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

例 2:

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


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


注 -

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