Solaris のシステム管理

パート IX データのバックアップと復元

このパートでは、Solaris 環境でデータのバックアップを取る手順と復元する手順について説明します。次の章が含まれます。

第 33 章「ファイルシステムのバックアップと復元の概要」

ufsdump コマンドと ufsrestore コマンドを使用してデータのバックアップを取り、復元する際のガイドラインと計画について説明します。

第 34 章「ファイルとファイルシステムのバックアップの手順」

個々のファイルとファイルシステム全体をローカルデバイスまたはリモートデバイスからバックアップする手順を説明します。 

第 35 章「ファイルとファイルシステムの復元の手順」

個々のファイルとファイルシステム全体を復元する詳しい手順を説明します。 

第 36 章「ufsdump コマンドと ufsrestore コマンドの参照情報」

ufsdump の機能、ufsdump コマンドと ufsrestore コマンドの構文とオプションについて説明します。

第 37 章「UFS ファイルとファイルシステムのコピー手順」

ファイルシステムをディスクにコピーする手順、ddcpiotar コマンドをさまざまなバックアップ媒体で使用する手順、ファイルを異なるヘッダー形式でコピーする手順について説明します。

第 38 章「テープドライブの管理手順」

テープドライブを追加する方法、テープドライブ、バックアップデバイス名を判断し、テープドライブと磁気テープカートリッジで作業する手順を説明します。 

第 33 章 ファイルシステムのバックアップと復元の概要

この章では、ufsdump コマンドと ufsrestore コマンドを使用し、ファイルシステム全体のバックアップをとって復元する際のガイドラインと計画の作成について説明します。

この章の内容は以下のとおりです。

ファイルシステムのバックアップと復元における新機能

Solaris 2.5 リリース以降が動作している NIS+ マスターサーバーをバックアップおよび復元するためには nisbackup コマンドと nisrestore コマンドを使用して下さい。これらのコマンドを使用する方法については、『Solaris ネーミングの管理』を参照してください。

バックアップと復元についての参照先

ufsdump コマンドと ufsrestore コマンドを使用してファイルシステムをバックアップおよび復元する手順については、次を参照してください。

ファイルシステムのバックアップと復元とは

ファイルシステムのバックアップとは、消失、損傷、または破損に備えて、ファイルシステムを取り外し可能な媒体 (テープなど) にコピーすることを意味します。ファイルシステムの復元とは、最新のバックアップファイルを取り外し可能な媒体から作業ディレクトリにコピーすることを意味します。

この章では、「スケジュールされた」バックアップ処理と復元処理に使用するコマンド (ufsdumpufsrestore) について説明しますが、他にもファイルを共有または転送するためにファイルとファイルシステムのコピーに使用できるコマンドがあります。表 33-1 は、個々のファイルやファイルシステムを媒体にコピーする各コマンドの説明箇所を示しています。

表 33-1 ファイルとファイルシステムをコピーするコマンド

操作 

使用するコマンド 

参照先 

ファイルシステム全体または個々のファイルシステムをローカルまたはリモートのテープデバイスにコピーする 

ufsdump コマンド

第 34 章「ファイルとファイルシステムのバックアップの手順」 または 第 36 章「ufsdump コマンドと ufsrestore コマンドの参照情報」

ネットワーク上のすべてのシステムのファイルシステム全体をサーバーからバックアップする 

Solstice BackupTM ソフトウェア

Solstice Backup 4.2 User Guide

NIS+ マスターサーバーをバックアップ、復元する 

nisbackup コマンドと nisrestore コマンド

NIS+ and FNS Administration Guide

ファイルをテープ上でコピー、表示、検索する 

ファイルをフロッピーディスク上でコピー、表示、検索する 

tarcpio、または pax コマンド

tar コマンド

第 37 章「UFS ファイルとファイルシステムのコピー手順」

マスターディスクをクローンディスクにコピーする 

dd コマンド

第 37 章「UFS ファイルとファイルシステムのコピー手順」

ファイルシステム全体または個々のファイルシステムを、取り外し可能な媒体から作業ディレクトリに復元する 

ufsrestore コマンド

第 35 章「ファイルとファイルシステムの復元の手順」

ファイルシステムをバックアップしなければならない理由

ファイルのバックアップは、最も重要なシステム管理作業の 1 つです。次のような原因によるデータの消失に備えて、定期的にバックアップを実行する必要があります。

テープデバイスの選択

表 33-2 は、バックアップ処理中にファイルシステムを格納するための典型的なテープデバイスを示しています。テープデバイスについての詳細は、第 38 章「テープドライブの管理手順」を参照してください。

表 33-2 ファイルシステムのバックアップに使用する典型的な媒体

媒体 

容量 

テープの長さ 

1/2 インチのリールテープ 

40 〜 45M バイト 

2300 フィート 

60M バイト、1/4 インチのストリーミングカートリッジテープ 

60M バイト 

425 フィート 

150M バイト、1/4 インチのストリーミングカートリッジテープ 

150M バイト 

700 フィート 

2.3G バイト、8mm カートリッジテープ 

2.3G バイト 

6000 フィート 

5.0G バイト、8mm カートリッジテープ 

5.0G バイト 

13000 フィート 

4 mm カートリッジテープ (DAT) [ 容量は、ドライブのタイプとテープに書き込まれるデータに応じて異なる。]

3.5 インチフロッピーディスク [ フロッピーディスクを使用してファイルシステムのバックアップを作成できるが、時間がかかり煩雑である。]

1422 ブロック (1.44M バイト) 

バックアップを作成するファイルシステムの計画

頻繁に変化するファイルシステムなど、ユーザーにとって重要なファイルシステムはバックアップしておく必要があります。表 33-3表 33-4 は、スタンドアロンシステムとサーバー用にバックアップを作成するファイルシステムの一般的なガイドラインを示しています。

表 33-3 ファイルシステムをスタンドアロン用にバックアップする

バックアップするファイルシステム [ df コマンドを使用するか、/etc/vfstab ファイルを調べて、どのスライスにファイルシステムが入っているかを調べる。]

理由 

バックアップ間隔 

ルート (/) - パーティション 0 [ Solaris ソフトウェアのインストール時にデフォルトで作成されるファイルシステムを示す。]

ルート (/) には、メールやアカウンティングなど、頻繁に変更されるファイルが保管されるカーネルと /var ディレクトリが入っている。

定期 

/usr - パーティション 6 2

一般に、新しいソフトウェアをインストールして新しいコマンドを追加すると、ユーザーのファイルシステムが影響を受ける。 

随時 

/export/home

/export/home には、スタンドアロンシステム上のユーザー全員のディレクトリとサブディレクトリが入っている。

ルート (/) や /usr よりも頻繁に、サイトのニーズによっては毎日 1 度

/export または /var を他の使用可能スライスにバックアップ

Solaris ソフトウェアのインストール中に、これらのファイルシステムを作成した可能性がある。 

サイトの必要に応じて 

表 33-4 ファイルシステムをサーバー用にバックアップする

バックアップするファイルシステム [ df コマンドを使用するか、/etc/vfstab ファイルを調べて、どのスライスにファイルシステムが入っているかを調べる。] ...

理由 

バックアップ間隔 

ルート (/) - パーティション 0 [ Solaris ソフトウェアのインストール時にデフォルトで作成されるファイルシステムを示す。]

/export - パーティション 3 2

/usr - パーティション 6 2

これらのファイルシステムには、カーネル、主要コマンド、実行可能プログラムが入っている。 

サイトのニーズに応じて毎日 1 度ないし月に 1 度 

ルート (/) - ネットワーク上でクライアントとハードウェアを頻繁に追加したり削除したりする場合は、カーネル構成ファイルなどの重要なファイルをルート (/) 内で変更せざるを得ない。この場合は、週に 1 度から月に 1 度の間隔で、ルート (/) ファイルシステム上で完全バックアップを実行する必要がある。サイトでユーザーのメールをメールサーバー上の /var/mail ディレクトリに保管している場合は (その後クライアントシステムがマウント)、ルート (/) ディレクトリを毎日バックアップできる。

/export - ディスクレスクライアントのルート (/) ディレクトリは、/export ファイルシステムに保管される。そこに入っている情報はサーバーのスライス 0 にあるルートディレクトリと同様なので、頻繁に変化することはない。随時バックアップを実行すればよい。ただし、サイトでメールをクライアントのルートディレクトリに送信している場合は、/export のバックアップをさらに頻繁に実行する必要がある。

/usr - 内容に変更がなく、週に 1 度ないし月に 1 度バックアップするだけでかまわない。

/export/home - パーティション 7 2

/export/home には、システム上のユーザー全員のホームディレクトリとサブディレクトリが入っている。そのファイルは変更が多い。

毎日ないし毎週 


注 -

サーバーの /export/swap のバックアップを作成する必要はありません。


バックアップコマンドと復元コマンドの概要

ufsdump コマンドと ufsrestore コマンドは、ファイルシステム全体のバックアップを定期的に実行する場合の推奨コマンドです。表 33-5 は、この 2 つのコマンドで実行できる作業を示しています。各コマンドの機能と構文については、第 36 章「ufsdump コマンドと ufsrestore コマンドの参照情報」を参照してください。

表 33-5 ufsdumpufsrestore で実行できる作業

コマンド 

実行できる作業 

備考 

ufsdump

 

 

 

 

ファイルシステム全体または個々のファイルシステムのバックアップを、ローカルまたはリモートのテープドライブに作成する。 

テープデバイスは、ネットワーク内でユーザーがアクセスするどのシステム上にあってもかまわない。このコマンドは UFS ファイルシステムタイプの構造を認識し、raw デバイスファイル経由で直接処理するので高速である。 

 

増分バックアップの実行 

これにより、前回のバックアップ以降に変更があったファイルのバックアップのみを作成できる。 

 

単一システムからネットワーク経由でシステムグループをバックアップする。 

 

あるシステムから、リモートシェルまたはリモートログインを通じて、各リモートシステム上で ufsdump を実行し、ドライブがあるシステムに出力を転送できる。また、出力を dd コマンドにパイプできる。

 

自動バックアップ 

 

ufsdump コマンドを起動するスクリプトを呼び出す crontab ユーティリティを使用する。

 

バックアップテーブルへのユーザーアクセスを制限する 

-a オプションを使用する。

 

実際にバックアップを実行せずに、バックアップのサイズを決定する 

-S オプションを使用する。

 

各ダンプレコードのログファイルを保管する 

-u オプションを使用する。

 

テープの内容をソースファイルシステムと対照して検査する 

-v オプションを使用する。

ufsrestore

 

 

 

個々のファイルシステムまたはファイルシステム全体を、ローカルまたはリモートのテープドライブから復元する 

 

バックアップタイプの選択

ufsdump コマンドを使用すると、完全バックアップまたは増分バックアップを実行できます。表 33-6 は、この 2 つのタイプのバックアップ手順の違いを示しています。

表 33-6 完全バックアップと増分バックアップの違い

バックアップのタイプ 

コピー内容 

長所 

短所 

完全 

ファイルシステムまたはディレクトリ全体

ファイルシステム内の小さな変化を検索しなくてすむ。 

大量のバックアップテープが必要であり、書き込みに時間がかかる。ドライブはテープ上でファイルが入っている位置に順番に移動しなければならないので、個々のファイルの検索時間が長くなる。 

増分 

前回のバックアップ以降に変更があり、ファイルシステム上で指定したファイルのみ

ファイルシステム内の小さな変化を簡単に検索できる。 

どの増分テープにファイルが入っているかを探すのに時間がかかることがある。 

バックアップスケジュールを設定する際のガイドライン

「バックアップスケジュール」とは、ufsdump コマンドを実行するように設定するスケジュールです。この節では、バックアップスケジュールを作成する際に検討すべき要素、ファイルシステムのバックアップ頻度に関するガイドライン、バックアップスケジュールの例について説明します。

バックアップスケジュールに影響する要素

どのようなスケジュールを設定するかは、次の要素によって左右されます。

バックアップ頻度

バックアップに費やす時間と媒体を最小限度に抑える必要がない場合は、完全バックアップを毎日実行してもかまいません。しかし、多くのサイトの場合、これは現実的ではないので、ほとんどの場合は増分バックアップが使用されます。その場合は、サイトが過去 4 週間分のバックアップからファイルを復元できるようにしてください。そのためには、少なくとも 1 週分ごとに 1 組ずつ、合計 4 組のテープが必要で、各組を毎月使い廻することになります。また、少なくとも一年分の月別のバックアップを保存し、数年分の年度別バックアップを保管しておく必要があります。

ダンプレベルを使用して増分バックアップを作成する

ufsdump コマンドで指定するダンプレベル (0-9) によって、どのファイルのバックアップが作成されるかが決まります。ダンプレベル 0 を指定すると、完全バックアップが作成されます。1 から 9 までの番号は、増分バックアップのスケジュール設定に使用されますが、特に意味が定義されているわけではありません。これらの番号は、累積バックアップまたは個別バックアップのスケジュール設定に使用する番号の範囲にすぎません。レベル 1 から 9 までが意味するのは、大小による相互関係だけです。

次の例は、1 から 9 までのレベルを使用する増分ダンプ手順を示しています。

日単位累積バックアップのダンプレベル

累積増分バックアップを毎日実行するのが、最も一般に使用される方法で、ほとんどの場合に推奨できます。次の例は、毎日レベル 9 のダンプを使用し、金曜日にはレベル 5 のダンプを使用してプロセスを再開するスケジュールを示しています。


注 -

次の例で、1 から 9 までの範囲内で他の番号を使用しても同じ結果になります。ポイントは、毎日同じ番号を使用し、金曜日にはそれより「 小さい」番号を使用することです。たとえば、レベル 4、4、4、4、2 や 7、7、7、7、5 を指定してもかまいません。


図 33-1 増分バックアップ: 日単位累積

Graphic

日単位個別バックアップのダンプレベル

次の例は、1 日分の作業内容のみを別々のテープ上で保存するスケジュールを示しています。この場合、月曜日から木曜日までは連続するダンプレベル番号 (3、4、5、6) を使用し、金曜日にはそれより小さい番号 (2) を使用します。


注 -

次の例では、連番 6、7、8、9 の次に 2 を使用しても、5、6、7、8 の次に 3 を使用してもかまいません。番号自体の意味は定義されておらず、その大小に意味があります。


図 33-2 増分バックアップ: 日単位個別

Graphic

バックアップスケジュールの例

この節では、バックアップスケジュールのサンプルを示します。どのスケジュールも、完全バックアップ (レベル 0) から始めることと、-u オプションを使用して各バックアップを記録することを前提としています。

例 - 日単位累積、週単位累積バックアップ

表 33-7 は、最も一般的に使用される増分バックアップをスケジュールを示しています。これは、ほとんどの場合に推奨できるスケジュールです。

表 33-7 日単位累積/週単位累積バックアップスケジュール
 

未固定 

月 

火 

水 

木 

金 

月の 1 日目 

 

 

 

 

 

第 1 週 

 

第 2 週 

 

第 3 週 

 

第 4 週 

 

このスケジュールで実行される処理は次のとおりです。

表 33-8 日単位/週単位累積スケジュールのテープの内容
 

月曜日 

火曜日 

水曜日 

木曜日 

金曜日 

第 1 週 

a b 

a b c 

a b c d 

a b c d e 

a b c d e f 

第 2 週 

g h 

g h i 

g h i j 

a b c d e f g h i j k 

例 - 日単位累積、週単位増分バックアップ

表 33-9 は、各曜日のテープに月曜日 (第 1 週の場合は初期レベル 0) 以降に変更があったすべてのファイルが累積され、毎週金曜日のテープにはその週に変更があったすべてのファイルが入っているスケジュールを示しています。

表 33-9 日単位累積/週単位増分バックアップスケジュール
 

未固定 

月 

火 

水 

木 

金 

月の 1 日目 

 

 

 

 

 

第 1 週 

 

第 2 週 

 

第 3 週 

 

第 4 週 

 

表 33-10 は、テープの内容が 2 週間でどのように変化するかを示しています。

表 33-10 日単位累積/週単位増分スケジュールのテープの内容
 

月曜日 

火曜日 

水曜日 

木曜日 

金曜日 

第 1 週 

a b 

a b c 

a b c d 

a b c d e 

a b c d e f 

第 2 週 

g h 

g h i 

g h i j 

g h i j k 

テープの必要量

このスケジュールでは、6 本 (日単位テープを再利用したい場合) または 9 本 (曜日ごとに 4 本の日単位テープを別々に使用したい場合) のテープが必要になります。その内訳は、レベル 0 に 1 本、金曜日用に 4 本、日単位テープ用に 1 本または 4 本です。

ファイルシステム全体を復元する必要があれば、5 本のテープが必要になります。その内訳は、レベル 0 が 1 本、前週までの毎週金曜日のテープ (3 本)、最新の日単位テープ 1 本です。

例 - 日単位増分、週単位累積バックアップ

表 33-11 は、各曜日のテープには前日以降に変更があったファイルのみが入っており、毎金曜日のテープには月初めの初期レベル 0 以降に変更があったすべてのファイルが入っているスケジュールを示しています。

表 33-11 日単位増分/週単位累積バックアップスケジュール
 

未固定 

月 

火 

水 

木 

金 

月の 1 日目 

 

 

 

 

 

第 2 週 

 

第 3 週 

 

第 4 週 

 

表 33-12 は、テープの内容が 2 週間でどのように変化するかを示しています。

表 33-12 日単位累積/週単位累積バックアップスケジュールのテープの内容
 

月曜日 

火曜日 

水曜日 

木曜日 

金曜日 

第 1 週 

a b 

c d 

e f g 

a b c d e f g h i 

第 2 週 

j k l 

n o 

p q 

a b c d e f g h i j k l m n o p q r s 

テープの必要量

このスケジュールでは、少なくとも 9 本のテープが必要になります。その内訳は、レベル 0 に 1 本、金曜日用に 4 本、日単位テープ 4 本ですが、これは日単位テープを毎週再利用することが前提となっており、お勧めできません。週単位テープを 1 カ月保存する場合は、21 本のテープが必要になります。

ファイルシステム全体を復元する必要があれば、6 本のテープが必要になります。その内訳は、レベル 0 に 1 本、前回の金曜日のテープ、その週のすべての日単位テープです。

例 - サーバーのバックアップスケジュール

表 33-13 は、ユーザーがプログラム開発や文書作成のようなファイル集約型の作業を実行する小型ネットワーク上の、使用頻度の高いファイルサーバーのバックアップ方針の例を示しています。この例は、バックアップ期間が日曜日に始まり、7 日間 4 週間からなっているものと想定しています。

表 33-13 サンプルサーバーのバックアップスケジュール

ディレクトリ 

日付 

レベル 

テープ名 

/

第 1 日曜日 

n 個のテープ

/usr

第 1 日曜日 

"  

/export

第 1 日曜日 

"  

/export/home

第 1 日曜日 

"  

 

第 1 月曜日 

 

第 1 火曜日 

 

第 1 水曜日 

 

第 1 木曜日 

 

第 1 金曜日 

 

第 1 土曜日 

/

第 2 日曜日 

n 個のテープ

/usr

第 2 日曜日 

"  

/export

第 2 日曜日 

"  

/export/home

第 2 日曜日 

"  

 

第 2 月曜日 

 

第 2 火曜日 

H  

 

第 2 水曜日 

I  

 

第 2 木曜日 

J  

 

第 2 金曜日 

 

第 2 土曜日 

L  

/

第 3 日曜日 

n 個のテープ 

/usr

第 3 日曜日 

"  

/export

第 3 日曜日 

"  

/export/home

第 3 日曜日 

"  

 

第 3 月曜日 

 

第 3 火曜日 

N  

 

第 3 水曜日 

 

第 3 木曜日 

 

第 3 金曜日 

 

第 3 土曜日 

/

第 4 日曜日 

n 個のテープ 

/usr

第 4 日曜日 

"  

/export

第 4 日曜日 

"  

/export/home

第 4 日曜日 

"  

 

第 4 月曜日 

 

第 4 火曜日 

 

第 4 水曜日 

 

第 4 木曜日 

 

第 4 金曜日 

 

第 4 土曜日 

このスケジュールでは、4 n 本のテープ (ルート(/)、/usr/export/export/home の 4 回の完全バックアップに必要な本数) に加えて、/export/home の増分バックアップ用に 24 本のテープを使用します。このスケジュールは、増分バックアップごとに 1 本ずつテープを使用し、それを 1 カ月は保存することを前提としています。

このスケジュールの機能は次のとおりです。

  1. 日曜日ごとに、ルート(/)、/usr/export/export/home の完全バックアップ (レベル 0) を実行します。レベル 0 のテープを少なくとも 3 カ月は保存します。

  2. 月の第 1 月曜日に、テープ A を使用して /export/home のレベル 9 のバックアップを実行します。ufsdump は下のレベルのバックアップ、この場合は日曜日に実行したレベル 0 のバックアップ以降に変更があったすべてのファイルをコピーします。

  3. 月の第 1 火曜日に、テープ B を使用して /export/home のレベル 9 のバックアップを実行します。この場合も、ufsdump は、下のレベル、つまり日曜日のレベル 0 のバックアップ以降に変更があったすべてのファイルをコピーします。

  4. 第 1 水曜日に、テープ C を使用してレベル 5 のバックアップを実行します。ufsdump は日曜日以降に変更があったすべてのファイルをコピーします。

  5. 木曜日と金曜日には、テープ D と E を使用してレベル 9 のバックアップを実行します。ufsdump は、下のレベルのバックアップ、つまり水曜日のレベル 5 のバックアップ以降に変更があったすべてのファイルをコピーします。

  6. 月の第 1 土曜日に、/export/home のレベル 5 のバックアップを実行します。このバックアップでは、下のレベルのバックアップ、この場合は日曜日に実行したレベル 0 のバックアップ以降に変更があったすべてのファイルがコピーされます。テープを再利用する場合は、テープ A から F までを次の 4 週間の第 1 月曜日までは保存しておきます。

  7. 次の 3 週間は、テープ G から L までと、日曜日のレベル 0 用に 4 n 本のテープを使用して、手順 1 から 6 までを繰り返します。

  8. 4 週ごとに、レベル 0 用に新しいテープ 1 組と、増分バックアップ用のテープ A から X までを再利用して、手順 1 から 7 までを繰り返します。レベル 0 のテープは、3 カ月後に再利用できるようになります。

    このスケジュールでは、各ファイルを 1 カ月間で段階別に保存できます。多数のテープが必要ですが、テープのライブラリを確実に用意できます。テープの本数を減らすには、テープ A から F までを毎週再利用します。

他のバックアップスケジュールに関する推奨事項

表 33-14 は、バックアップスケジュールに関する他の推奨事項を示しています。

表 33-14 システムのバックアップスケジュールに関する他の推奨事項

必要事項 

推奨事項 

備考 

各ファイルの別バージョン (ワード処理に使用するファイルシステムなど) を復元する必要がある 

  • 作業日ごとに日単位増分バックアップを実行する

  • 日単位増分バックアップには同じテープを再利用しない

このスケジュールでは、その日に変更があったすべてのファイルが保存されるだけでなく、下のレベルの最後のバックアップ以降に変更があったファイルがディスク上に残る。ただし、このスケジュールの場合は、火曜日に変更があったファイルが木曜日にも変更されると、金曜日の下のレベルのバックアップでは、火曜日の夜ではなく木曜日の夜に変更されたように見えるので、毎日異なるテープを使用する必要がある。ユーザーが火曜日のバージョンを必要とする場合には、火曜日 (または水曜日) のバックアップテープを保存しておかなければ、それを復元できない。また、火曜日と水曜日には存在したファイルが木曜日に削除されても、金曜日の下のレベルのバックアップには表示されない。 

ファイルシステム全体を短時間で復元する必要がある 

下位のレベルのバックアップを頻繁に実行する 

同じサーバー上で多数のファイルシステムのバックアップを作成している 

ファイルシステムごとにスケジュールをずらすことを検討する 

この方法では、すべてのレベル 0 のバックアップを同じ日に実行しないことになる。 

テープの本数を最小限度に抑える必要がある 

1 週間に実行する増分バックアップのレベルを上げる 

これは、毎日の変更のみが各日単位テープに保存されることを意味する。 

 

週末に実行するバックアップのレベルを上げる 

これは、変更が (月単位ではなく) 週単位でしか週単位テープに保存されないことを意味する。 

 

日単位と週単位の増分バックアップを同じテープに入れる 

これは、ufsdump コマンドの rewind オプションを使用して実行される。

 

第 34 章 ファイルとファイルシステムのバックアップの手順

この章では、ufsdump コマンドを使用してファイルシステムのバックアップを行う手順について説明します。

この章の内容は以下のとおりです。

ufsdump コマンドの構文、オプション、引数についての詳細は、第 36 章「ufsdump コマンドと ufsrestore コマンドの参照情報」を参照してください。

バックアップを実行する準備

ファイルシステムのバックアップを実行する準備は、計画の作成から始まります。詳細については、第 33 章「ファイルシステムのバックアップと復元の概要」を参照してください。この段階では、次の項目を決定します。

この節では、次のように、ファイルシステムのバックアップを作成する前に実行しておかなければならない作業について説明します。

ファイルシステム名を検索する方法

  1. /etc/vfstab ファイルの内容を表示します。

        $ more /etc/vfstab
    
  2. mount point カラムに表示されるファイルシステム名を調べます。

  3. ファイルシステムをバックアップするときには、mount point カラムのマウントポイントを使用することになります。

例 - ファイルシステム名を検索する

$ more /etc/vfstab
#device         device            mount    FS   fsck   mount   mount
#to mount       to fsck           point    type pass  at boot  options
#
/proc             -                  /proc   proc    -     no      -
swap              -                  /tmp    tmpfs   -     yes     -
/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 /       ufs     1     no      -
/dev/dsk/c0t3d0s1 -                  -       swap    -     no      -
/dev/dsk/c0t1d0s6 /dev/rdsk/c0t1d0s6 /usr    ufs     2     no      -
mars:/share/kit -                    /kit    nfs     -     yes     -
mars:/db/doc    -                   /db/doc  nfs     -     yes     -

完全バックアップをとるために必要なテープの本数を決定する方法

  1. スーパーユーザーになります。

  2. usfdump S コマンドを使用して、バックアップのサイズをバイト単位で見積もります。

        # ufsdump S filesystem
    

    S

    バックアップの実行に必要な予想バイト数を表示する。 

  3. 予想バイト数をテープの容量で除算して、必要な本数を調べます。

    テープの容量リストについては、表 33-2 を参照してください。

例 - テープの本数を決定する

次の例では、150M バイトのテープに 489472 バイトのファイルシステムが入ります。

# ufsdump S /export/home
489472

バックアップの実行

バックアップを実行する際の一般的なガイドラインは次のとおりです。


注 -

Solaris 2.5 リリース以降が動作している NIS+ マスターサーバーをバックアップするためには nisbackup コマンドを使用して下さい。このコマンドを使用する方法については、『Solaris ネーミングの管理』を参照してください。


カートリッジテープ上でバックアップを実行する方法

次は、ufsdump コマンドを使用してファイルシステムのバックアップを作成する一般的な手順です。この中の例では、オプションと引数の使用方法を示しています。

  1. スーパーユーザーになります。

  2. システムを停止します。

        # init 0
    
  3. システムをレベル S (シングルユーザーモード) にします。

        ok boot -s
    
  4. [省略可能] fsck コマンドを使用してファイルシステムの整合性をチェックします。

    -m オプションを使用して fsck コマンドを実行すると、ファイルシステムの整合性がチェックされます。たとえば、電源障害が発生すると、ファイルが非整合状態になることがあります。fsck コマンドについての詳細は、第 31 章「ファイルシステムの完全性チェック」を参照してください。

        # fsck -m /dev/rdsk/ device-name
    
  5. ファイルシステムをリモートテープドライブにバックアップする場合

    1. バックアップを開始するシステムの ./rhosts ファイルに、次のエントリを追加します。

          host root
    2. 上記の /.rhosts ファイルに追加したホスト名に、ローカルの /etc/inet/hosts ファイル経由でアクセスできるか、NIS や NIS+ ネームサーバーを利用できることを確認します。

  6. テープドライブのデバイス名を確認します。

    デフォルトのテープドライブは、/dev/rmt/0 です。

  7. 書き込み保護されていないテープをテープドライブに挿入します。

  8. ufsdump コマンドを使用してファイルシステムのバックアップを作成します。

    次の表を使用して、ufsdump コマンドの最も一般的なオプションと引数を選択します。他のオプションと引数については、第 36 章「ufsdump コマンドと ufsrestore コマンドの参照情報」を参照してください。

    操作 

    使用するオプションまたは引数 

    例 

    参照先 

    完全バックアップを実行する 

    0 オプション 

    ufsdump 0ucf /dev/rmt/n files

    「例 - 完全バックアップ、ルート (/)、カートリッジテープ」

    増分バックアップを実行する 

    1 から 9 までのオプション 

    ufsdump 9ucf /dev/rmt/n files

    「例 - 増分バックアップ、ルート (/)」

    個々のファイルのバックアップを実行する 

    filename 引数

    ufsdump 9ucf /dev/rmt/n /export/home/user1/mail

    「例 - 完全バックアップ、個々のホームディレクトリ」

    ダンプを /etc/dumpdates ファイルに記録する 

    -u オプション (ファイルを更新)

    ufsdump 9ucf /dev/rmt/n files

    「例 - 増分バックアップ、ルート (/)」

    カートリッジテープを指定する 

    -c オプション

    ufsdump 9ucf /dev/rmt/n files

    「例 - 増分バックアップ、ルート (/)」

    テープドライブのファイル名を指定する 

    -f dump-file

    ufsdump 9ucf /dev/rmt/1 files

    「例 - 増分バックアップ、ルート (/)」

    ローカルファイルシステムをリモートホストのテープデバイスにバックアップする 

    remote-host: 引数

    ufsdump 0ucf mars:/dev/rmt/0 files

    「例 - リモートシステムへの完全バックアップ (Solaris 2.x のデータを Solaris 2.x システムへ)」

  9. プロンプトが表示されたら、テープを取り出して次のテープと交換します。

  10. 各テープにボリューム番号、レベル、日付、システム名、ファイルシステム名を記入したラベルを貼ります。

  11. Control-d キーを押してシステムをレベル 3 の動作に戻します。

  12. ufsrestore コマンドでテープの内容を表示して、バックアップが成功していることを確認します。

    このコマンドは、第 35 章「ファイルとファイルシステムの復元の手順」で説明します。

例 - 完全バックアップ、ルート (/)、カートリッジテープ

次の例では、ルート (/) ファイルシステムの完全バックアップが 150M バイトのカートリッジテープ (/dev/rmt/0) 上に作成されます。

# init 0
ok boot -s
# ufsdump 0ucf /dev/rmt/0 /
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Wed Nov 06 15:32:21 1996
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s0 (mars:/) to /dev/rmt/0.
  DUMP: Mapping (Pass I) [regular files]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Estimated 41236 blocks (20.13MB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 41200 blocks (20.12MB) on 1 volume at 95 KB/sec
  DUMP: DUMP IS DONE
  DUMP: Level 0 dump on Wed Nov 06 15:32:21 1996
# ufsrestore tf /dev/rmt/0 (Verification starts here)
         2	.
         3	./lost+found
      5696	./usr
     11392	./export
     17088	./opt
     22784	./var
     28480	./var/sadm
     34176	./var/sadm/install
     39872	./var/sadm/install/admin
     39879	./var/sadm/install/admin/default
                      .
                      .
                      .
    #
# (Press Control-D to bring system to run level 3)

例 - 完全バックアップ、/export/home、4 mm の DAT テープ

次の例では、/export/home ファイルシステムの完全バックアップが 4 mm のテープ上に作成されます。

# ufsdump 0ucf /dev/rmt/0 /export/home
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Wed Nov 06 16:18:08 1996
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (mars:/export/home) to /dev/rmt/0.
  DUMP: Mapping (Pass I) [regular files]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Estimated 13504 blocks (6.59MB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 13480 blocks (6.58MB) on 1 volume at 92 KB/sec
  DUMP: DUMP IS DONE
  DUMP: Level 0 dump on Wed Nov 06 16:18:08 1996
# ufsrestore tf /dev/rmt/0
    113920	./x97_sysmgt
    159488	./kryten
    159489	./kryten/.login
    159490	./kryten/.cshrc
    170880	./kryten/directives
    170882	./kryten/directives/directive.2001
    170883	./kryten/directives/directive.450b
    170881	./kryten/directives/directive.115c
    159491	./kryten/tar_file
          .
          .
          .
#

例 - 増分バックアップ、ルート (/)

この例では、ルート (/) ファイルシステムの増分バックアップを 4 mm の DAT テープデバイスに行ないます。

# ufsdump 9ucf /dev/rmt/0 /
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 9 dump: Wed Nov 06 16:14:51 1996
  DUMP: Date of last level 0 dump: Wed Nov 06 15:32:21 1996
  DUMP: Dumping /dev/rdsk/c0t3d0s0 (mars:/) to /dev/rmt/0.
  DUMP: Mapping (Pass I) [regular files]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Estimated 3708 blocks (1.81MB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 3652 blocks (1.78MB) on 1 volume at 75 KB/sec
  DUMP: DUMP IS DONE
  DUMP: Level 9 dump on Wed Nov 06 16:14:51 1996
 # ufsrestore tf /dev/rmt/0
         2	   .
     10752	   ./var
     13440	   ./var/sadm
      2689	   ./var/sadm/install
      2690	   ./var/sadm/install/.lockfile
      2766	   ./var/sadm/install/contents
     10753	   ./var/sadm/pkg
      2734	   ./var/adm
      2780	   ./var/adm/sa
      2951	   ./var/adm/sa/sa24
      2735	   ./var/cron
      2885	   ./var/cron/log
      8086	   ./var/spool
      8087	   ./var/spool/locks
      8088	   ./var/tmp
#

例 - 完全バックアップ、個々のホームディレクトリ

この例では、/export/home/kryten ディレクトリの完全バックアップを 4 mm DAT テープに行ないます。

# ufsdump 0ucf /dev/rmt/0 /export/home/kryten
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Wed Nov 06 16:12:41 1996
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (mars:/export/home) to /dev/rmt/0.
  DUMP: Mapping (Pass I) [regular files]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Estimated 280 blocks (140KB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 250 blocks (125KB) on 1 volume at 15 KB/sec
  DUMP: DUMP IS DONE
# ufsrestore tf /dev/rmt/0
         2	   .
      2688	   ./kryten
      5409	   ./kryten/letters
      5410	   ./kryten/letters/letter1
      5411	   ./kryten/letters/letter2
      5412	   ./kryten/letters/letter3
      2689	   ./kryten/.profile
      8096	   ./kryten/memos
        30	   ./kryten/reports
        31	   ./kryten/reports/reportA
        32	   ./kryten/reports/reportB
        33	   ./kryten/reports/reportC
#

例 - リモートシステムへの完全バックアップ (Solaris 2.x のデータを Solaris 2.x システムへ)

次の例では、Solaris 2.x システム上のローカルの /export/home ファイルシステムが、リモートの Solaris 2.x システム pluto 上のテープデバイスにバックアップされます。

# ufsdump 0ucf pluto:/dev/rmt/0 /export/home
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Fri Oct 25 10:30:53 1996
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (/export/home) to (pluto:/dev/rmt/0).
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 19574 blocks (9.56MB)
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: level 0 dump on Fri Oct 25 10:30:53 1996
  DUMP: Tape rewinding
  DUMP: 19574 blocks (9.56MB) on 1 volume at 92 KB/sec
  DUMP: DUMP IS DONE
# ufsrestore tf pluto:/dev/rmt/0
         2	.
         3	./lost+found
      2688	./kryten
      5409	./kryten/letters
      5410	./kryten/letters/letter1
      5411	./kryten/letters/letter2
      5412	./kryten/letters/letter3
      2689	./kryten/.profile
      8096	./kryten/memos
        30	./kryten/reports
        31	./kryten/reports/reportA
        32	./kryten/reports/reportB
        33	./kryten/reports/reportC
              .
              .
              .
#

例 - リモートシステムへの完全バックアップ (Solaris 2.x のデータを Sun 4.1.x システムへ)

次の例では、Solaris 2.x システム上のローカルの /export/home ファイルシステムが、リモートの SunOS 4.1.x システム (mars) 上のテープデバイスにバックアップされます。ufsdump コマンドといっしょに SunOS 4.x スタイルのデバイス名 (/dev/rst0) が使用されているので注意してください。ufsdump コマンドを実行するには、Solaris 2.x システムにスーパーユーザーとしてログインすることになります。

# ufsdump 0ucf mars:/dev/rst0 /export/home
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Fri Oct 25 15:06:47 1996
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (/export/home) to (mars:/dev/rst0).
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 19574 blocks (9.56MB)
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: level 0 dump on Fri Oct 25 15:06:47 1996
  DUMP: Tape rewinding
  DUMP: 19574 blocks (9.56MB) on 1 volume
  DUMP: DUMP IS DONE
#

 ufsrestore tf mars:/dev/rst0
         2      .
         3      ./lost+found
      2688      ./kryten
      5409      ./kryten/letters
      5410      ./kryten/letters/letter1
      5411      ./kryten/letters/letter2
      5412      ./kryten/letters/letter3
      2689      ./kryten/.profile
      8096      ./kryten/memos
        30      ./kryten/reports
        31      ./kryten/reports/reportA
        32      ./kryten/reports/reportB
        33      ./kryten/reports/reportC
                .
                .
                .
#

例 - リモートシステムへの完全バックアップ (SunOS 4.1.x のデータを Solaris 2.x システムへ)

次の例では、Sun 4.1.x システム (mars) 上のローカルのルート (/) ファイルシステムが、Solaris 2.x システム pluto 上のリモートテープデバイスにバックアップされます。


注 -

データを SunOS 4.1.x システムにバックアップするときには、ufsdump コマンドではなく dump コマンドを使用しなければならないので注意してください。


mars# dump 0ucf pluto:/dev/rmt/0 /
  DUMP: Date of this level 0 dump: Tue Oct 25 16:05:19 1996   
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rsd2a (/) to /dev/rmt/0 on host pluto
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 8686 blocks (4.24MB) on 0.10 tape(s).
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: level 0 dump on Tue Oct 25 16:05:19 1996
  DUMP: Tape rewinding
  DUMP: 8690 blocks (4.24MB) on 1 volume
  DUMP: DUMP IS DONE
mars# restore tf pluto:/dev/rmt/0
         2      .
         3      ./lost+found
      3776      ./export
      7552      ./home
     11328      ./usr
     15104      ./pcfs
      3777      ./tftpboot
      3778      ./tftpboot/tftpboot
      3794      ./tftpboot/boot.sun4c.sunos.4.1.3
      7553      ./etc
      7554      ./etc/sendmail.cf
      7555      ./etc/aliases
      7556      ./etc/aliases.dir
      7557      ./etc/aliases.pag
      7558      ./etc/holidays
      7559      ./etc/dumpdates
                      .
                .
                .
mars#

第 35 章 ファイルとファイルシステムの復元の手順

この章では、ファイルシステムを復元する手順について説明します。

この章で説明する手順は次のとおりです。

この章では、ufsdump コマンドによりバックアップしたファイルやファイルシステムを復元する場合の、ufsrestore(1M) コマンドの使用方法を説明します。ファイルやファイルシステムをアーカイブ、復元、コピー、または移動できる他のコマンドについては、第 37 章「UFS ファイルとファイルシステムのコピー手順」を参照してください。

ファイルとファイルシステムを復元する準備

ufsrestore コマンドを使うと、ファイルが ufsdump コマンドで作成したバックアップから現在の作業ディレクトリにコピーされます。ufsrestore を使うと、ファイルシステムの階層構造全体をレベル 0 ダンプとそのあとに行われる増分ダンプから再ロードしたり、複数のファイルを任意のダンプテープから復元できます。ufsrestore がスーパーユーザーによって実行される場合には、ファイルはそのオリジナルの所有者、最新の変更時刻、モード (許可) といっしょに復元されます。

ファイルやファイルシステムの復元を始める前に、次の内容を知っておく必要があります。

ディスクデバイス名の決定

バックアップテープに適切な名前が付いている場合は、テープラベルに入っているディスクデバイス名 (/dev/rdsk/devicename) が使えるはずです。詳細は、「ファイルシステム名を検索する方法」を参照してください。

使用するテープドライブのタイプの決定

ファイルを復元するには、バックアップ媒体と互換性のあるテープドライブを使用しなければなりません。バックアップ媒体の形式によって、ファイルの復元にどんなドライブを使用しなければならないかが決まります。たとえば、使用するバックアップ媒体が 8mm テープの場合、ファイルの復元には 8mm テープドライブを使わなければなりません。

テープドライブ名の決定

テープデバイス名 (/dev/rmt/n) をバックアップテープラベル情報の一部として指定しているかも知れません。同じドライブを使ってバックアップテープを復元しようとする場合には、ラベル内にあるデバイス名を使うことができます。媒体のデバイスとデバイス名についての詳細は、第 38 章「テープドライブの管理手順」を参照してください。

ファイルシステム全体の復元

ファイルシステムは全面的に復元しなければならないほど破壊される場合があります。一般的な例として、ディスクヘッドが破損した場合は、ファイルシステムは全面的に復元しなければなりません。ただし、ソフトウェアを復元する前に、ハードウェアを取り替える必要があります。ディスクの取り替え方については、第 23 章「SPARC: ディスク追加の手順」または第 24 章「x86 : ディスク追加の手順」を参照してください。/export/home などのファイルシステムを全面的に復元するには、長時間かかります。ファイルシステムを一貫性のある方法でバックアップしていれば、最後の増分バックアップ時の状態に復元することができます。

個別のファイルとディレクトリの復元

この節では、ローカルテープドライブを使って個別のファイルやディレクトリを復元する方法を説明します。リモートドライブを使ってファイルを復元する方法についての詳細は、「リモートドライブを使ってファイルを復元する方法」を参照してください。

ファイルシステムのルートディレクトリではなく、ディレクトリ内にファイルを復元する場合には、ufsrestore によって現在のディレクトリ内にファイル階層構造が再作成されます。たとえば、/home/doc/books からとったバックアップファイルを /home1 に復元する場合には、そのファイルはディレクトリ /home1/doc/books に復元されます。

個別のファイルやディレクトリを復元するときには、/var/tmp などの一時的な場所に復元するのが賢明です。ファイルやディレクトリを確認したら、それを適当な位置に移動させてもかまいません。個別のファイルやディレクトリはそれぞれ元の位置に復元できます。その場合には、新しいファイルをバックアップテープからの古いバージョンで上書きしないかどうか確かめてください。


注 -

一時的な場合でも、/tmp ディレクトリにファイルを復元してはなりません。/tmp ディレクトリは、通常、TMPFS ファイルシステムとしてマウントされていて、ACL などの UFS ファイルシステム属性をサポートしていません。


リモートドライブを使ってファイルを復元する方法

remote-host: をテープデバイス名の前に追加すると、ファイルをリモートドライブから復元することができます。次にその構文を示します。

ufsrestore rf [user@]remote-host:/dev/rmt/unit filename 

たとえば、システム venus 上の /dev/rmt/0 にアクセスするには、次のように入力します。

# ufsrestore rf venus:/dev/rmt/0 filename

ファイルシステムの復元

次のことを知っておく必要があります。

使用するテープを決定する方法

  1. ファイルまたはファイルシステムを失なった日付、または復元したいファイルが前回いつごろ変更されたかをユーザーにたずねます。

  2. 自分が作成したバックアップ計画を参照して、そのファイルまたはファイルシステムが入っていた前回のバックアップの日付を調べます。

    ファイルの最新バージョンを検索するには、増分バックアップファイルを最高レベル (0) から最低レベル (9) へ、最新バージョンから最古バージョンへ逆方向に調べます。

  3. オンラインのアーカイブファイルがある場合には、ufsrestore コマンドを使って正しい媒体を指定します。

        # ufsrestore ta archive-name ./path/filename ./path/filename
    

    t

    テープ上に現れる各ファイルを表示する。 

    a

    テープではなくオンラインアーカイブファイルから内容一覧を読み取る。 

    archive-name

    オンラインアーカイブファイル名を指定する。 

    ./path/filename

    オンラインアーカイブ上で検索するファイル名を指定する。コマンドが成功した場合は、ufsrestore は i ノード番号とファイル名を出力する。成功しなかった場合は、エラーメッセージを出力する。

  4. バックアップが入っている媒体をドライブに挿入し、ufsrestore コマンドを使って正しい媒体であるかどうかを確認します。

        # ufsrestore tf device-name ./path/filename ./path/filename
    

    ファイル名には必ず完全パス名を使用してください。ファイルがバックアップに入っていれば、その名前と i ノード番号が表示されます。入っていなければ、そのファイルはそのボリュームに入っていないというメッセージが表示されます。

  5. 同じテープに複数のダンプファイルが入っている場合は、s /dev/rmt/n オプションを使って、自分が使用したいダンプがあるテープの位置に移動してください。

        # ufsrestore xfs /dev/rmt/n tape_number
    

例 - 使用するテープを決定する

ufsdump を使って /usr スライスをダンプする場合、内容一覧には /usr の下にあるファイルとディレクトリが列挙されます。/usr/bin/pwd がオンラインアーカイブに入っているかどうかを調べるには、次のように入力します。

# ufsrestore ta archive-name ./bin/pwd

/usr/bin/pwd がバックアップテープに入っているかどうかを調べるには、次のように入力します。

# ufsrestore tf /dev/rmt/n ./bin/pwd

対話方式でファイルを復元する方法

  1. スーパーユーザーになります。

  2. テープを書き込み保護の状態にします。

  3. バックアップテープをテープドライブに挿入します。

  4. ファイルを復元するための一時的なディレクトリに変更します。

        # cd /var/tmp
    

    ファイルを別のディレクトリに復元するには、この手順で /var/tmp を別のディレクトリ名に置き換えます。

  5. ufsrestore コマンドを使って対話方式で復元を開始します。

    情報を伝えるためのメッセージと ufsrestore> プロンプトが表示されます。

        # ufsrestore if /dev/rmt/n
    
  6. 復元したいファイルのリストを作成します。

    1. ディレクトリの内容を表示します。

          ufsrestore> ls directory
      
    2. ディレクトリを変更します。

          ufsrestore> cd directory-name
      
    3. 復元したいファイルとディレクトリのリストを作成します。

          ufsrestore> add filename filename
      
    4. [省略可能] ディレクトリや、復元したいファイルのリストからファイル名を削除しなければならない場合は、delete コマンドを使います。

          ufsrestore> delete filename
      
  7. verbose モードをオンにして、復元するファイル名を表示します。

        ufsrestore> verbose
    
  8. リストが完了したら、extract コマンドを使います。

        ufsrestore> extract
    

    ufsrestore コマンドはどのボリューム番号を使用するかたずねます。

  9. ボリューム番号を入力して、Return キーを押します。ボリュームが 1 つしかない場合には、1 を入力して Return キーを押します。

        Specify next volume #: 1
    

    リスト内のファイルとディレクトリが抽出され、現在の作業ディレクトリに復元されます。

  10. 現在の作業ディレクトリのモードを変更したくない場合は、set owner/mode プロンプトが表示されたときに n を入力します。

        set owner/mode for `.'? [yn] n
    
  11. ufsrestore プログラムを終了します。

        ufsrestore> quit
    

    シェルプロンプトが表示されます。

  12. ファイルが復元されたことを確認します。

    1. 復元されたファイルとディレクトリを表示します。

          # ls -l
      

      ファイルとディレクトリのリストが表示されます。

    2. リストで指定したファイルとディレクトリがすべて復元されているかどうかを確認するため、リストを調べます。

    3. ファイルを正しいディレクトリに移動します。

例 - 対話方式でファイルを復元する

次の例では、ファイル /etc/passwd/etc/shadow がバックアップテープから復元されています。

# cd /var/tmp
# ufsrestore if /dev/rmt/0
ufsrestore> ls
.:
 .OWdefaults         bin         lib            sbin/
 .Xauthority         dev/        lost+found/    shared/
 .desksetdefaults    devices/    misc/          tmp/
 .fm/                etc/        mnt/           ufsboot
 .mailtool-init      export/     net/           usr/
 .openwin-init       home/       nfs/           var/
 .profile            hsfsboot    opt/           ws/
 .wastebasket/       kadb        proc/
 .xsun.pluto:0       kernel/
ufsrestore> cd etc
ufsrestore> add passwd shadow
ufsrestore> verbose
verbose mode on
ufsrestore> extract
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start with the
last volume and work towards the first.
Specify next volume #: 1
extract file ./etc/shadow
extract file ./etc/passwd
Add links
Set directory mode, owner, and times.
set owner/mode for `.'? [yn] n
ufsrestore> quit
# 

特定のファイルを復元する方法

  1. スーパーユーザーになります。

  2. 安全のためにテープを書き込み保護します。

  3. バックアップテープをテープドライブに挿入します。

  4. 一時的にファイルを復元するディレクトリに変更します。

        # cd /var/tmp
    

    ファイルを別のディレクトリに復元するには、この手順で /var/tmp を別のディレクトリ名に置き換えます。

  5. ufsrestore コマンドを使ってファイルを復元します。

        # ufsrestore xvf /dev/rmt/n filename ...

    x

    引数 filename 内に指定されたファイルまたはディレクトリをコピーするように ufsrestore コマンドに指定する。

    v

    復元するファイル名を表示する。 

    f /dev/rmt/n

    テープデバイス名を識別する。 

    filename ...

    空白で区切られた 1 つ以上の個別のファイルまたはディレクトリの名前。例 : ./export/home/user1/mail ./export/home/user2/mail.

  6. ファイルが入っているボリューム番号を入力して、Return キーを押します。

        Specify next volume #: 1
    

    ファイルは現在の作業ディレクトリに復元されます。

  7. 現在のディレクトリのモードを変更したくない場合は、set owner/mode プロンプトが表示されたときに n と入力して Return キーを押します。

        set owner/mode for '.'? [yn] n
    
  8. 特定のファイルを復元します。

    1. 現在のディレクトリを表示します。

          # ls -l filename
      

      ファイルのリストが表示されます。

    2. ファイルを正しいディレクトリに移動します。

          # mv filename /directory/filename
      

例 - 特定のファイルを復元する

この例では、passwdshadow ファイルが /var/tmp ディレクトリに復元されます。

# cd /var/tmp
# ufsrestore xvf /dev/rmt/0 ./etc/passwd ./etc/shadowVerify volume and initialize maps
Media block size is 126
Dump   date: Wed Nov 06 15:21:10 1996
Dumped from: the epoch
Level 0 dump of / on pluto:/dev/dsk/c0t3d0s0
Label: none
Extract directories from tape
Initialize symbol table.
Warning: ./etc: File exists
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start with the
last volume and work towards the first.
Specify next volume #: 1
extract file ./etc/passwd
Add links
Set directory mode, owner, and times.
set owner/mode for `.'? [yn] n
# cd etc
#  mv passwd /etc
# mv shadow /etc
# ls -l etc

リモートドライブを使ってファイルを復元する方法

テープデバイス名の前に remote-host: を追加して、ファイルをリモートドライブから復元することができます。構文は次のようになります。

ufsrestore rf [user@]remote-host:/dev/rmt/n filename 

たとえば、システム venus 上のリモートテープドライブ /dev/rmt/0 にアクセスするには、次のように入力します。

# ufsrestore rf venus:/dev/rmt/0 filename

ファイルシステム全体を復元する方法


注 -

この手順は、ルート (/) または /usr の復元には使用できません。これらのファイルシステムを復元する方法については、「ルート (/) と /usr を復元する方法」を参照してください。


  1. スーパーユーザーになります。

  2. 必要があれば、ファイルシステムをマウント解除します。

        # umount /dev/rdsk/device-name
    
  3. newfs コマンドを使って新しいファイルシステムを作成します。

        # newfs /dev/rdsk/device-name
    

    raw デバイス上で新しいファイルシステムを構築したいかどうかをたずねるプロンプトが表示されます。デバイス名は正しく、削除しなければならないような間違ったファイルシステムがないことを確認します。

  4. 新しいファイルシステムを作成しなければならないかどうかを確認します。

        newfs: construct a new file system /dev/rdsk/cwtxdysz:
        (y/n)? y
    

    新しいファイルシステムが作成されます。

  5. 一時的なマウントポイントに新しいファイルシステムをマウントします。

        # mount /dev/dsk/device-name /mnt
    
  6. ディレクトリを /mnt に変更します。

        # cd mnt
    

    マウントポイントディレクトリに変更しました。

  7. テープを書き込み保護します。

  8. レベル 0 テープの第 1 ボリュームをテープドライブに挿入します。

  9. ufsrestore コマンドを使ってテープ上のファイルを復元します。

        # ufsrestore rvf /dev/rmt/n
    

    レベル 0 ダンプが復元されます。ダンプの実行に複数のテープが必要な場合は、次のテープをロードするようにプロンプトが表示されます。

  10. テープを外して、ドライブに次のテープをロードします。

    テープの復元は必ず 0 から始め、一番高いレベルまで継続します。

  11. ufsrestore コマンドを使ってファイルシステムを復元します。

        # ufsrestore rvf /dev/rmt/n
    

    次のレベルのテープが復元されます。ダンプの実行に複数のテープが必要な場合は、次のテープをロードするようにプロンプトが表示されます。

  12. ファイルシステムが復元されていることを確認します。

        # ls
    
  13. restoresymtable ファイルを削除します。

        # rm restoresymtable
    

    ufsrestore によって作成された restoresymtable が削除されます。

  14. 別のディレクトリに変更します。

        # cd /
    
  15. 新しく復元されたファイルシステムをマウント解除します。

        # umount /mnt
    
  16. 最後のテープを外し、書き込み保護されていない新しいテープをテープドライブに挿入します。

  17. ufsdump コマンドを使って、新しく復元されたファイルシステムのバックアップをとります。

        # ufsdump 0uf /dev/rmt/n /dev/rdsk/device-name
    

    ufsrestore はファイルの位置を移動し、i ノード割当てを変更するので、新しく作成されたファイルシステムのバックアップは、必ずすぐにとるようにしてください。

  18. 復元されたファイルシステムをマウントします。

        # mount /dev/dsk/device-name /mount-point
    

    復元されたファイルシステムはマウントされて、使用できるようになります。

  19. 復元され、マウントされたファイルシステムが使用できることを確認します。

        # ls /mount-point
    

例 - ファイルシステム全体を復元する

この例では、/export/home ファイルシステムが復元されます。

# umount /export/home
# newfs /dev/rdsk/c0t3d0s7
newfs: construct a new file system /dev/rdsk/c0t3d0s7: (y/n)? y
/dev/rdsk/c0t3d0s7:	41040 sectors in 57 cylinders of 9 tracks, 80 sectors
      21.0MB in 4 cyl groups (16 c/g, 5.90MB/g, 2688 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 11632, 23232, 34832,
# mount /dev/dsk/c0t3d0s7 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
Verify volume and initialize maps
Media block size is 126
Dump date: Wed Nov 06 16:21:10 1996
Dumped from: the epoch
Level 0 dump of /export/home on pluto:/dev/dsk/c0t3d0s7
Label: none
Begin level 0 restore
Initialize symbol table.
Extract directories from tape
Calculate extraction list.
Warning: ./lost+found: File exists
Make node ./kryten
Make node ./kryten/letters
Make node ./kryten/memos
Make node ./kryten/reports
Make node ./rimmer
Make node ./rimmer/sc.directives
Make node ./rimmer/tests
Make node ./rimmer/answers
Extract new leaves.
Check pointing the restore
# ls
# rm restoresymtable
# cd /
# umount /mnt
# ufsdump 0ucf /dev/rmt/0 /export/home
                    .

                    .

                    .
# mount /dev/dsk/c0t3d0s7 /export/home
# ls /export/home

ルート (/) と /usr を復元する方法

  1. 新しいシステムディスクを、ルート (/) と /usr ファイルシステムが復元されるシステムに追加します。

    システムディスクを追加する方法についての詳細は、第 23 章「SPARC: ディスク追加の手順」または第 24 章「x86 : ディスク追加の手順」を参照してください。

  2. 新しいファイルシステムを一時的なマウントポイントにマウントします。

        # mount /dev/dsk/device-name /mnt
    
  3. /mnt ディレクトリに変更します。

        # cd /mnt
    
  4. テープデバイスのエントリを作成します。

        # tapes
    
  5. テープを書き込み保護します。

  6. ufsrestore コマンドを使ってルートファイルシステムを復元します。

        # ufsrestore rvf /dev/rmt/n
    

    レベル 0 のテープが復元されます。

  7. テープを外し、次のレベルのテープをドライブにロードします。

    テープの復元は必ず 0 から始め、最も低いレベルから最も高いレベルまで続けます。

  8. ufsrestore コマンドは必要なだけ続けて使用します。

        # ufsrestore rvf /dev/rmt/n
    

    次のレベルのテープが復元されます。

  9. テープを追加するたびに、手順 7 と手順 8 を繰り返します。

  10. ファイルシステムが復元されていることを確認します。

        # ls
    
  11. restoresymtable ファイルを削除します。

        # rm restoresymtable
    

    ufsrestore によって作成され、復元のチェックポイントに使用された restoresymtable ファイルを削除します。

  12. ルートディレクトリに変更します。

        # cd /
    
  13. 新しく作成されたファイルシステムをマウント解除します。

        # umount /mnt
    
  14. 新しいファイルシステムをチェックします。

        # fsck /dev/rdsk/device-name
    

    復元されたファイルシステムが完全であるかどうかがチェックされます。

  15. installboot コマンドで、ルートパーティションにブートブロックを作成します。

        # installboot  /usr/platform/`uname-i`/lib/fs/ufs/bootblk /dev/rdsk/ devicename
    

    SPARC システム上で installboot コマンドを使用する方法については「例 - SPARC システム上でルート (/) と /usr を復元する」を、x86 システム上で installboot コマンドを使用する方法については「例 - x86 システム上でルート (/) ファイルシステムを復元する」をそれぞれ参照してください。

  16. 新しいテープをテープドライブに挿入します。

  17. 新しいファイルシステムのバックアップをとります。

        # ufsdump 0uf /dev/rmt/n /dev/rdsk/device-name
    

    レベル 0 のバックアップが実行されます。ufsrestore はファイルの位置を移動し、i ノード割当てを変更するので、新しく作成されたファイルシステムのバックアップは、必ずすぐにとるようにしてください。

  18. 必要があれば、/usr ファイルシステムのために手順 5 から 18 までを繰り返します。

  19. システムをリブートします。

        # init 6
    

    システムがリブートされます。

例 - SPARC システム上でルート (/) と /usr を復元する

# mount /dev/dsk/c0t3d0s0 /mnt
# cd /mnt
# tapes
# ufsrestore rvf /dev/rmt/0
# ls
# rm restoresymtable
# cd /
# umount /mnt
# fsck /dev/rdsk/c0t3d0s0
# installboot /usr/platform/`uname -i`
/lib/fs/ufs/bootblk /dev/rdsk/c0t3d0s0
# ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t3d0s0
# init 6

例 - x86 システム上でルート (/) ファイルシステムを復元する

# mount /dev/dsk/c0t3d0s0 /mnt
# cd /mnt
# tapes
# ufsrestore rvf /dev/rmt/0
# ls
# rm restoresymtable
# cd /
# umount /mnt
# fsck /dev/rdsk/c0t3d0s0
# installboot /usr/platform/`uname -i`/lib/fs/ufs/pboot
/usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t3d0s0
# ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t3d0s0
# init 6

第 36 章 ufsdump コマンドと ufsrestore コマンドの参照情報

この章では、ufsdump コマンドと ufsrestore コマンドの参照情報を示します。

この章の内容は以下のとおりです。

ufsdump の機能

ufsdump コマンドは、ファイルシステムのバックアップを作成するときに 2 つのパスを作成します。最初のパスでは、ufsdump は raw デバイスファイル内でファイルシステムを走査し、メモリー内にディレクトリとファイルのテーブルを作成します。次に、そのテーブルをバックアップ媒体に書き込みます。2 つ目のパスでは、ufsdump は i ノードに番号順にアクセスし、ファイルの内容を読み込んで媒体に書き込みます。

デバイス特性の判断

ufsdump コマンドに必要なことは、適切なブロックの大きさを認識することと、どのようにして媒体の終りを検出するかということです。

媒体の終りの検出

ufsdump は一連の固定長レコードを書き込みます。レコードの一部にしか書き込まれていないという通知を受け取ると、ufsdump は媒体の物理的な終りに達したものと想定します。この方法は、ほとんどのデバイスに有効です。部分的なレコードしか書き込まれなかったことをデバイスが ufsdump に通知できない場合は、ufsdump が書き込もうとすると媒体エラーが発生します。


注 -

DAT デバイスと 8mm テープデバイスでは、媒体の終りが検出されます。カートリッジテープデバイスと 1/2 インチテープデバイスでは、媒体の終りは検出されません。


データのコピー

ufsdump コマンドは、raw ディスクスライスからデータのみをコピーします。ファイルシステムがまだ有効であれば、メモリーバッファ内のデータがコピーされていない可能性があります。ufsdump によるバックアップでは、空きブロックはコピーされず、ディスクスライスのイメージも作成されません。シンボリックリンクが他のスライス上のファイルを指す場合は、リンク自体がコピーされます。

/etc/dumpdates ファイルの役割

ufsdump コマンドを -u オプションといっしょに使用すると、/etc/dumpdates というファイルを管理し、更新できます。/etc/dumpdates 内の各行は、バックアップが作成されたファイルシステム、前回のバックアップレベル、バックアップ日時と曜日を示します。次の例は、ファイルサーバーからの典型的な /etc/dumpdates ファイルを示しています。

/dev/rdsk/c0t3d0s0              0 Wed Nov  6 15:32:21 1996
/dev/rdsk/c0t3d0s0               9 Wed Nov  6 16:14:51 1996
/dev/rdsk/c0t3d0s7               0 Wed Nov  6 16:18:08 1996

増分バックアップを実行するときに、ufsdump コマンドは /etc/dumpdates を検索して、下のレベルの最後のバックアップ日付を調べます。次に、下のレベルのバックアップ以降に更新されたすべてのファイルを媒体にコピーします。バックアップが完了すると、完了したばかりのバックアップを記述する新しい情報行によって、そのレベルの最後のバックアップの情報行が置き換えられます。/etc/dumpdates には、レベル 0 のバックアップを実行した日付現在で、各レベルでバックアップされたファイルシステムごとに 1 行ずつ情報が入っています。

/etc/dumpdates ファイルを使用して、バックアップが実行中であるかどうかを検査してください。機器に問題が発生している場合は、この検査が特に重要です。機器の障害が原因でバックアップを完了できないと、そのバックアップは /etc/dumpdates ファイルに記録されません。

ディスク全体を復元する必要があれば、/etc/dumpdates ファイル内で最後のバックアップの日付とレベルをチェックできるので、ファイルシステム全体を復元するために必要なファイルを判断できます。


注 -

/etc/dumpdates ファイルは編集可能なテキストファイルですが、編集するかどうかはユーザーの判断によります。ファイルに変更を加えた結果、アーカイブテープと一致しなくなると、必要なテープ (またはファイル) がどれか分からなくなることがあります。


バックアップデバイス (dump-file) 引数

dump-file 引数 (-f オプションに使用) では、バックアップ先を指定します。次のいずれかを指定できます。

この引数は、バックアップ先がデフォルトのローカルテープドライブ /dev/rmt/0 でないときに使用します。-f オプションを使用する場合は、dump-file の値を指定しなければなりません。


注 -

また、dump-file 引数では、ローカルディスクまたはリモートディスク上のファイルを指すこともできるので、誤用するとファイルシステムがいっぱいになる可能性があります。


ローカルのテープドライブかフロッピーディスクドライブ

通常、dump-file ではテープドライブかフロッピーディスクドライブの raw デバイスファイルを指定します。ufsdump が出力デバイスに書き込むときには、バックアップファイルを 1 つ作成しますが、このファイルは複数のテープやフロッピーディスクにまたがってもかまいません。

デバイスの省略形を使用して、システム上のテープデバイスかフロッピーディスクデバイスを指定します。第 1 のデバイスは常に 0 です。たとえば、SCSI テープコントローラが 1 つと、媒体密度のコマンドを使用する QIC-24 テープドライブが 1 つある場合は、次のデバイス名を使用します。

/dev/rmt/0m

テープデバイス名を指定するときは、名前の末尾に文字 "-n" を付けて、バックアップの完了後にテープドライブを巻き戻さないように指定することもできます。たとえば、次のように入力します。

/dev/rmt/0mn

テープに複数のファイルを格納したい場合は、"no-rewind" オプションを使用します。バックアップ中に領域を使い果たすと、ufsdump から新しいテープの挿入を促すプロンプトが表示されるまで、テープは巻き戻されません。デバイスの命名規則についての詳細は、「バックアップデバイス名」を参照してください。

リモートのテープドライブかフロッピーディスクドライブ

構文 host:device を使用して、リモートのテープドライブかフロッピーディスクドライブを指定します。ローカルシステム上の root がリモートシステムへのアクセス権を持っていれば、ufsdump はリモートデバイスに書き込みます。通常は root として ufsdump を実行するのであれば、ルートシステム名をリモートシステムの /.rhosts ファイルに組み込まなければなりません。デバイスを user@host:device と指定すると、ufsdump は指定されたユーザーとしてリモートシステム上で実行しようとします。この場合、指定されたユーザーは、リモートシステムにアクセスできるように、リモートシステム上に .rhosts ファイルを持っていなければなりません。

デバイスには、ufsdump コマンドを実行するシステムではなく、そのデバイスが存在するシステムのオペレーティングシステムに合った命名規則を使用してください。デバイスが SunOS の旧バージョン (4.1.1 など) を実行するシステム上にある場合は、SunOS 4.1.x のデバイス名 (/dev/rst0 など) を使用します。システムが Solaris ソフトウェアを実行中であれば、SunOS 5.x の規則 (/dev/rmt/0) を使用します。


注 -

dump-file 引数を使用して、リモートデバイスを明示的に指定しなければなりません。SunOS の旧バージョンでは、rdump コマンドは出力を dumphost 別名で定義されたリモートデバイスに送っていました。ufsdump にはそれに相当する rufsdump がありません。


標準出力

dump-file 引数としてダッシュ (-) を指定すると、ufsdump は標準出力に書き込みます。


注 -

dump-file 引数として標準出力を指定すると、-v オプション (検査) は機能しません。


ufsdump コマンドを使用して標準出力に書き込み、ufsrestore コマンドを使用して標準入力から読み込むと、パイプライン内でファイルシステムをコピーできます。次のようになります。

# ufsdump 0f - /dev/rdsk/c0t0d0s7 | (cd /home; ufsrestore xf -)

バックアップを作成するファイルを指定する

コマンド行の最後の引数として、必ず files-to-backup を指定しなければなりません。この引数は、バックアップのコピー元または内容を指定します。通常はファイルシステムを識別しますが、個々のファイルやディレクトリを識別することもできます。

ファイルシステムの場合は、ディスクスライスの raw デバイスファイルを指定します。これには、ファイルコントローラの省略形 (c)、SCSI デバイス専用のターゲット番号 (t)、ディスク番号 (d) とスライス番号 (s) の識別番号が含まれます。たとえば、スタンドアロンシステム (またはサーバー) 上に SCSI ディスクコントローラがあり、スライス 6 に入っている /usr のバックアップを作成したい場合は、デバイスを次のように指定します。

/dev/rdsk/c0t0d0s6

ファイルシステムは、そのエントリが /etc/vfstab ファイルに入っていれば、マウントポイントディレクトリ (/home など) を使用して指定できます。

デバイスの命名規則について詳しくは、「バックアップデバイス名」を参照してください。

個々のファイルやディレクトリごとに、1 つまたは複数の名前を空白で区切って入力します。


注 -

ufsdump を使用して (ファイルシステム全体ではなく) 1 つまたは複数のディレクトリのバックアップを作成するときには、レベル 0 のバックアップが実行されます。増分バックアップは適用されません。


媒体の終りの検出

ufsdump は、ほとんどのデバイスの媒体の終りを自動的に検出します。したがって、通常は -c-d-s-t オプションを使用しなくても、複数のボリュームのバックアップを実行できます。

媒体の終りオプションを使用する必要があるのは、デバイスによる媒体の終りの検出方法が ufsdump で認識されないときや、restore コマンドの旧バージョンを使用してシステム上のファイルを復元しようとしているときです。restore コマンドの旧バージョンとの互換性を確保するために、サイズオプションを使用すると、従来どおり、現在のテープやフロッピーディスクの終りに達する前に、ufsdump を次のテープやフロッピーディスクに強制的に進ませることができます。

テープの性質を指定する

テープの性質を指定しなければ、ufsdump コマンドはデフォルト設定を使用します。表 36-1 は、各種テープカートリッジに使用できる ufsdump コマンドの引数を示しています。テープカートリッジ (-c)、密度 (-d)、サイズ (-s)、トラック数 (-t) を指定できます。引数がオプションの順序と合っていれば、オプションはいくつでも指定できます。

表 36-1 テープ容量を指定する ufsdump の引数

テープ 

引数 

フロッピーディスク 

ufsdump Ds 1422

60M バイトのカートリッジ 

ufsdump cdst 1000 425 9

150M バイトのカートリッジ 

ufsdump cdst 1000 700 18

1/2 インチのテープ 

ufsdump dsb 1600 2300 126

2.3G バイトの 8mm テープ 

ufsdump dsb 54000 6000 126

5.0G バイトの 8mm テープ 

ufsdump dsb 54000 13000 126

5.0G バイトの 4mm テープ 

ufsdump b 96

ufsdump の制限

表 36-2 は、ufsdump コマンドでは実行できない作業を示しています。

表 36-2 ufsdump で実行できない作業

実行できない作業 

備考 

ファイルシステムのバックアップに必要なテープやフロッピーディスクの数を自動的に計算する。 

仮実行 (ドライラン) モード (S オプション) を使用すると、実際にファイルシステムをバックアップする前に必要な容量を判断できる。 

アクティブなファイルシステムをバックアップするときの問題を最小限度に抑えるために、組み込みエラーチェック機能を提供する。 

サーバーからリモートにマウントされたファイルをバックアップ可能にする。 

サーバー上のファイルのバックアップは、そのサーバー上で実行しなければならない。ユーザーがサーバー上で所有するファイル上で ufsdump を実行するアクセス権は拒否される。

ufsdump コマンドのオプションと引数

この節では、ufsdump コマンドのオプションと引数について詳しく説明します。ufsdump コマンドの構文は次のとおりです。

/usr/sbin/ufsdump [options] [arguments] files-to-back-up

options

1 文字のオプション名からなる 1 つの文字列 

arguments

オプションの引数を指定する。複数の文字列も可。オプション文字と引数とは同じ順序で並べなければならない。 

files-to-back-up

バックアップするファイルを指定する。これらの引数は常に最後に指定する。 

デフォルトのコマンドオプション

オプションを指定せずに ufsdump コマンドを実行する場合は、次の構文を使用します。

# ufsdump files-to-back-up

ufsdump では、デフォルトで次のオプションが使用されます。

ufsdump 9uf /dev/rmt/0 files-to-back-up

これらのオプションでは、デフォルトのテープドライブ上にその推奨密度でレベル 9 の増分バックアップが作成されます。

ufsdump コマンドのオプション

表 36-3 は、ufsdump コマンドのオプションを示しています。

表 36-3 ufsdump コマンドのオプション

オプション 

説明 

0-9

バックアップレベル。レベル 0 は files-to-backup で指定したファイルシステム全体の完全バックアップ用。レベル 1 〜 9 は、最後の下位バックアップ以降に変更があったファイルの増分バックアップ用。

a archive-file

アーカイブファイル。指定したディスク上のファイルにバックアップ用の内容一覧を格納 (アーカイブ) する。このファイルは、ufsrestore でしか認識できず、復元すべきファイルがバックアップファイル内にあるかどうかと、もしあればどの媒体ボリュームに入っているかを判断するために使用される。

b factor

ブロック係数。1 処理ごとにテープに書き込まれる 512 バイトのブロック数。 

c

カートリッジ。カートリッジテープにバックアップを作成する。媒体の終りの検出を適用するときは、このオプションでブロックサイズを 126 に設定する。 

d bpi

テープ密度。このオプションは、ufsdump で媒体の終りを検出できないときにのみ使用する必要がある。

D

フロッピーディスク。フロッピーディスクにバックアップを作成する。 

f dump-file

ダンプファイル。ファイルをデフォルトデバイスではなく dump-file で指定したコピー先に書き込む。ファイルを user@system:device として指定すると、ufsdump は指定されたユーザーとしてリモートシステム上で実行しようとする。指定されたユーザーは、このコマンドをローカルシステム上で呼び出してリモートシステムにアクセスできるように、リモートシステム上に .rhosts ファイルを持っていなければならない。

l

自動ロード。このオプションは、オートロード (スタックローダ) テープドライブがある場合に使用する。テープの終りに達すると、このオプションはドライブをオフラインにして、テープドライブの準備ができるまで 2 分間待つ。2 分以内にドライブの準備ができると、続行する。2 分経過しても準備ができなければ、オペレータに別のテープをロードするように促すプロンプトを表示する。 

n

通知。介入が必要になると、sys グループのユーザー全員の端末にメッセージを送る。

o

オフライン。テープやフロッピーディスクの処理が終わると、ドライブをオフラインにして巻き戻し (テープの場合)、可能であれば媒体をはずす (たとえば、フロッピーディスクを取り出したり、8mm の自動ロードテープをはずす)。 

s size

サイズ。テープの場合はフィート数、フロッピーディスクの場合は 1024 バイトのブロック数を指定する。このオプションは、ufsdump で媒体の終りを検出できないときにのみ使用する必要がある。

S

バックアップの予想サイズ。バックアップを実際に実行せずに必要な容量を判断し、バックアップの予想バイト数を示す数値を 1 つ出力する。 

t tracks

トラック数。1/4 インチカートリッジテープのトラック数を指定する。このオプションを使用する必要があるのは、ufsdump で媒体の終りを検出できないときだけである。

u

ダンプレコードのアップデート。ファイルシステムの完全バックアップをとる場合には、ファイル /etc/dumpdates ファイルにエントリを追加する。このエントリは、ファイルシステムのディスクスライスのデバイス名、バックアップレベル (0 〜 9)、日付を示す。u オプションを使用しないときや、個々のファイルかディレクトリのバックアップを作成するときは、レコードは書き込まれない。バックアップのレコードがすでに同じレベルに存在する場合は、それが置き換えられる。

v

検査。各テープまたはフロッピーディスクが書き込まれた後に、ソースファイルシステムと対照して媒体の内容を検査する。矛盾が発生すると、オペレータに新しい媒体のマウントを促すプロンプトを表示してプロセスを繰り返す。ファイルシステム内で動作が発生すると矛盾が報告されるので、このオプションはマウント解除されたファイルシステム専用である。 

w

警告。/etc/dumpdates ファイルに表示されるファイルシステムのうち、特定の日にバックアップされていないファイルシステムを表示する。このオプションを使用すると、他のすべてのオプションは無視される。

W

強調表示付きの警告。/etc/dumpdates 内のすべてのファイルシステムを表示し、特定の日にバックアップされていないファイルシステムを強調表示する。このオプションを使用すると、他のすべてのオプションは無視される。


注 -

/etc/vfstab ファイルには、ファイルシステムのバックアップ頻度に関する情報は入っていません。


ufsdump とセキュリティに関する注意事項

セキュリティに関する注意事項は次のとおりです。

ufsrestore コマンドのオプションと引数

コマンド構文

ufsrestore の構文は次のとおりです。

ufsrestore [options][arguments][filename ...]

options

1 文字のオプション名からなる 1 つの文字列。irRtx から 1 つだけ選択する。

arguments

オプションに対応する引数。オプションと同じ順序で並んでいなければならない。 

filename

x または t オプションの引数として、復元するファイルを指定する。常に最後に指定する。

オプションと引数

表 36-4ufsrestore オプションを 1 つだけ使用しなければなりません。

表 36-4 ufsrestore コマンドに必要なオプション

オプション 

説明 

i

対話式。ufsrestore を対話モードで実行する。このモードでは、限られたシェルコマンドセットを実行して媒体の内容を表示し、復元するファイルやディレクトリを個別に選択できる。利用できるコマンドのリストについては、「対話式復元コマンド」を参照。

r

再帰。媒体の内容全体を現在の作業ディレクトリ (ファイルシステムの最上位レベル) に復元する。完全ダンプ (例、restoresymtable) の最上部に増分ダンプを復元するための情報も含まれる。ファイルシステムを完全に復元するには、このオプションを使用して完全 (レベル 0) ダンプを復元してから、各増分ダンプを復元する。これは新しいファイルシステム (newfs コマンドで作成したばかりのファイルシステム) 用だが、ファイルシステムにはファイルが入っていることがあり、バックアップ媒体にないファイルが保存される。

R

復元の再開。復元を再開するボリュームをたずねるプロンプトを表示し、チェックポイントから再開する。完全復元 (r オプション) が中断された後は、このオプションを指定して ufsrestore コマンドを実行し直す。

x [filename...]

 

抽出。filename 引数で指定したファイルを選択的に復元する。filename では、ファイルとディレクトリのリストを指定できる。h オプションも指定しなければ、指定したディレクトリの下のファイルがすべて復元される。filename を省略するか、ルートディレクトリを表す「.」を入力すると、媒体のすべてのボリューム上 (または標準入力から) のすべてのファイルが復元される。既存のファイルは上書きされ、警告が表示される。

t [filename...]

内容一覧。filename 引数で指定したファイルが媒体と対照してチェックされる。ファイルごとに、完全ファイル名と i ノード番号 (ファイルが見つかった場合) が表示されるか、ファイルが「ボリューム」上にないことを示す (複数のボリュームダンプのボリュームを意味する)。filename 引数を入力しなければ、媒体のすべてのボリューム上のファイルが表示される (どのボリュームにファイルが入っているかは区別されない)。h オプションも指定すると、内容ではなく filename で指定したディレクトリファイルのみがチェックされ表示される。内容一覧は、媒体の最初のボリュームから読み込まれるか、a オプションを使用すると指定したアーカイブファイルから読み込まれる。このオプションは xr オプションといっしょに使用できない。

表 36-4 からオプションを 1 つ選択する他に、表 36-5 からもオプションを選択できます。

表 36-5 ufsrestore コマンドの追加オプション

オプション 

説明 

a archive-file [filename...]

ダンプの内容一覧は、媒体 (最初のボリューム) ではなく、指定した archive-file からダンプの内容一覧が取り出される。このオプションを ti、または x オプションと組み合わせて使用すると、媒体をマウントしなくてもダンプ内のファイルをチェックできる。x コマンドと対話型抽出オプションといっしょに使用すると、ファイルを抽出する前に適切なボリュームのマウントを促すプロンプトが表示される。

b factor

ブロック係数。1 処理ごとにテープに書き込む 512 バイトのブロック数。デフォルトでは、ufsrestore はテープの書き込みに使用したブロック数を表示しようとする。

d

デバッグ。デバッグメッセージ機能をオンにする。 

f backup-file

バックアップファイル。ファイルは、デフォルトのデバイスファイル /dev/rmt/0m ではなく backup-file で指定したソースから読み込まれる。f オプションを使用する場合は、backup-file の値を指定しなければならない。backup-filesystem:device 形式であれば、ufsrestore はリモートデバイスから読み込む。backup-file 引数を使用すると、ローカルディスクやリモートディスク上のファイルも指定できる。backup-file が "-" であれば、ファイルは標準入力から読み込まれる。

h

ディレクトリの展開をオフにする。指定したディレクトリファイルのみが抽出または表示される。 

m

指定したファイルが、バックアップ階層内の位置に関係なくディスク上の現在のディレクトリに復元され、i ノード番号を使用して名前が変更される。たとえば、現在の作業ディレクトリが /files であれば、i ノード番号が 42 のバックアップ ./dready/fcs/test 内のファイルは、/files/42 として復元される。このオプションが便利なのは、少数のファイルを抽出するときだけである。

s n

媒体上の n 番目のバックアップファイルをスキップする。このオプションは、1 本のテープに複数のバックアップを入れるときに便利である。

v

詳細。各ファイルが復元されるたびに、その名前と i ノード番号が表示される。 

y

媒体の読み込みエラーが発生しても処理を続行し、停止する代わりに不良ブロックをスキップしようとして、処理を中止するかどうかをたずねるプロンプトを表示する。このオプションは、コマンドに対して yes という応答を想定するように指示する。 

対話式復元コマンド

表 36-6 対話式復元コマンド

オプション 

説明 

ls [directory-name]

現在のディレクトリまたは指定したディレクトリの内容が表示される。ディレクトリは接尾辞 / 付きで表示され、現在のリスト内で復元 (抽出) されるエントリは接頭辞 * 付きで表示される。詳細オプションを使用すると、i ノード番号が表示される。

cd directory-name

バックアップ階層内の指定したディレクトリに切り替える。 

add [filename]

現在のディレクトリまたは指定したファイルやディレクトリを、抽出 (復元) するファイルのリストに追加する。h オプションを使用しなければ、指定したディレクトリとそのサブディレクトリ内のすべてのファイルがリストに追加される。ディレクトリに復元したいファイルがすべて 1 つのバックアップテープやフロッピーディスクに入っていないことがあるので注意する必要がある。すべてのファイルを抽出するには、さまざまなレベルの複数のバックアップから復元しなければならないことがある。

delete [filename]

現在のディレクトリまたは指定したファイルやディレクトリを、抽出 (復元) するファイルのリストから削除する。h オプションを使用しなければ、指定したディレクトリとそのサブディレクトリ内のすべてのファイルが削除される。ファイルとディレクトリは、構築中の抽出リストからのみ削除されるので注意する必要がある。媒体からは削除されない。

extract

リスト内のファイルを抽出し、ディスク上の現在の作業ディレクトリに復元する。ボリューム番号をたずねるプロンプトが表示されたら 1 を指定する。複数テープや複数フロッピーディスクによる復元を実行して少数のファイルを復元する場合は、最後のテープまたはフロッピーディスクから始める。

help

対話モードで使用できるコマンドのリストが表示される。 

pwd

バックアップ階層内の現在の作業ディレクトリのパス名が表示される。 

q

それ以上ファイルを復元しないで対話モードを終了する。 

setmodes

バックアップ元となったファイルシステムのルートディレクトリのモードに合わせて、復元するファイルのモードを設定できる。set owner/mode for '.' [yn]? というプロンプトが表示される。y (yes の意味) を入力すると、バックアップ元となったファイルシステムのルートディレクトリに合わせて、現在のディレクトリのモード (アクセス権、所有者、時刻) を設定できる。このモードは、ファイルシステム全体を復元するときに使用する。n (no の意味) を入力すると、現在のディレクトリのモードは変更されずにそのまま残る。このモードは、バックアップの一部をファイルのバックアップ元とは異なるディレクトリに復元するときに使用する。

verbose

詳細オプションのオンとオフを切り替える (対話型モードの外側では、コマンド行から v と入力することもできる)。詳細モードがオンになっていると、対話型の ls コマンドでは i ノード番号が表示され、ufsrestore コマンドでは各ファイルが抽出されるたびにファイル情報が表示される。

what

テープやフロッピーディスク上のバックアップヘッダが表示される。 

第 37 章 UFS ファイルとファイルシステムのコピー手順

この章では、各種のバックアップコマンドを使用して、UFS ファイルとファイルシステムをディスク、テープ、フロッピーディスクにコピーする方法について説明します。

この章で説明する手順は次のとおりです。

ファイルシステムのコピーコマンド

ファイルシステム全体をバックアップして復元したいときは、第 36 章「ufsdump コマンドと ufsrestore コマンドの参照情報」で説明した ufsdump コマンドと ufsrestore コマンドを使用します。個々のファイル、ファイルシステムの一部、またはファイルシステム全体をコピーまたは移動したいときは、ufsdumpufsrestore の代わりに、この章で説明する手順を使用できます。

表 37-1 は、各種バックアップコマンドの用途を示しています。

表 37-1 バックアップコマンドの用途

目的 

使用するコマンド 

参照ページ 

ファイルシステムをテープにバックアップする 

ufsdump

「カートリッジテープ上でバックアップを実行する方法」

ファイルシステムをテープから復元する 

ufsrestore

「ファイルシステム全体を復元する方法」

ファイルを他のシステムに転送する 

pax, tar, または cpio

「ファイルとファイルシステムをテープにコピーする」

ファイルまたはファイルシステムをディスクにコピーする 

dd

「ディスクをクローン化する方法 (dd)」

ファイルをフロッピーディスクにコピーする 

tar

「ファイルを 1 枚のフォーマット済みフロッピーディスクにコピーする方法 (tar)」


注 -

一時的な場合でも、/tmp ディレクトリにファイルを復元してはなりません。/tmp ディレクトリは、通常、TMPFS ファイルシステムとしてマウントされていて、ACL などの UFS ファイルシステム属性をサポートしていません。


表 37-2 は、各種のバックアップコマンドと復元コマンドを示しています。

表 37-2 バックアップコマンドの概要

コマンド名 

ファイルシステム境界の認識 

複数ボリュームバックアップのサポート 

物理コピーか論理コピーか 

volcopy

する 

する 

物理 

tar

しない 

しない 

論理 

cpio

する 

する 

論理 

pax

する 

する 

論理 

dd

しない 

する 

物理 

ufsdump/ufsrestore

する 

する 

論理 

次の節では、各方法の長所と短所を説明し、コマンドの使用例を示します。

ファイルシステムをディスクにコピーする

ファイルシステムをディスクにコピーするには、次の 2 つのコマンドを使用します。

次の節では、dd コマンドを使用してファイルシステムをディスクにコピーする方法について説明します。

ファイルシステムのリテラルコピーを作成する

dd コマンドでは、UFS ファイルシステムのリテラル (ブロック) コピーを別のファイルシステムやテープに作成します。デフォルトでは、dd コマンドはその標準入力を標準出力にコピーします。


注 -

可変長テープドライブには dd コマンドを使用しないでください。


標準入力、標準出力、またはその両方の代わりに、デバイス名を指定できます。次の例では、フロッピーディスクの内容が /tmp ディレクトリ内のファイルにコピーされます。

$ dd < /floppy/floppy0 > /tmp/output.file
2400+0 records in
2400+0 records out

dd コマンドは、読み込みブロック数と書き込みブロック数をレポートします。+ の次の数値は、部分的にコピーされたブロックの数です。

dd コマンドの構文は、他のほとんどのコマンドとは異なっています。オプションは keyword=value のペアで指定します。この場合、keyword は設定したいオプションで、value はそのオプションの引数です。たとえば、標準入力と標準出力を次の構文に置き換えることができます。

$ dd if=input-file of=output-file

たとえば、上記の例のリダイレクト記号の代わりに keyword=value のペアを使用するには、次のように入力します。

$ dd if=/floppy/floppy0 of=/tmp/output.file

ディスクをクローン化する方法 (dd)

  1. コピー元とコピー先のディスクが同じディスクジオメトリを持っているかどうかを確認します。

  2. スーパーユーザーになります。

  3. リブートした後でクローンディスクが認識されるように、マスターディスクが入っているシステム上で /reconfigure ファイルを作成します。

  4. システムをシャットダウンします。

        # init 0
    
  5. クローンディスクをシステムに接続します。

  6. システムをブートします。

        ok boot
    
  7. dd コマンドを使用してマスターディスクをクローンディスクにコピーします。

        # dd if=/dev/dsk/device-name of=/dev/dsk/device-name bs=blocksize
    

    if=/dev/dsk/device-name

    入力デバイスとしてマスターディスクデバイスを指定する。 

    of=/dev/dsk/device-name

    出力デバイスとしてクローンディスクデバイスを指定する。 

    bs=blocksize

    ブロックサイズ 

  8. 新しいファイルシステムをチェックします。

        # fsck /dev/rdsk/device-name
    
  9. クローンディスクのルート (/) ファイルシステムをマウントします。

        # mount /dev/dsk/device-name /mnt
    
  10. クローンディスクの /etc/vfstab を編集して、正しいデバイス名を参照します。

  11. クローンディスクのルート (/) ファイルシステムをマウント解除します。

        # umount /mnt
    
  12. システムを停止します。

        # init 0
    
  13. クローンディスクからシングルユーザーモードにブートします。

        # boot diskn -s
    
  14. クローンディスクの構成を解除します。

        # sys-unconfig
    

    構成を解除すると、システムが停止します。

  15. 再びクローンディスクからブートし、ホスト名や時間帯などのシステム情報を与えます。

        # boot diskn
    
  16. スーパーユーザーとしてログインして、一度システムがブートした後のシステム情報を確認します。

        
    hostname console login:

例 - ディスクのクローン化 (dd)

# init 0
ok boot
# dd if=/dev/dsk/c0t0d0s2 of=/dev/dsk/c0t2d0s2 bs=100k
# fsck /dev/rdsk/c0t2d0s2
# mount /dev/dsk/c0t2d0s2 /mnt
# cd /mnt/etc
# vi vfstab
(Modify entries for the new disk)
# cd /
# umount /mnt
# init 0
# boot disk2 -s
# sys-unconfig
# boot disk2

cpio コマンドを使用してファイルシステム間でディレクトリをコピーする

cpio (コピーインとコピーアウト) コマンドを使用して、個々のファイル、ファイルグループ、またはファイルシステム全体をコピーできます。この節では、cpio コマンドを使用してファイルシステム全体をコピーする方法について説明します。

cpio コマンドは、ファイルのリストを取り出して 1 つの大型出力ファイルにコピーするアーカイブプログラムです。また、復元しやすいように、個々のファイルの間にヘッダを挿入します。cpio コマンドを使用すると、ファイルシステム全体を別のスライス、別のシステム、またはテープやフロッピーディスクなどの媒体デバイスにコピーできます。

cpio コマンドは媒体の終りを認識し、別のボリュームの挿入を促すプロンプトを表示するので、複数のテープやフロッピーディスクが必要なアーカイブを作成するには最も (ufsdump よりも) 効率のよいコマンドです。

cpio の使用時には、しばしば lsfind などのコマンドを使用し、コピーしたいファイルを選択して、出力を cpio コマンドにパイプします。

ファイルシステム間でディレクトリをコピーする方法 (cpio)

  1. スーパーユーザーになります。

  2. 目的のディレクトリに変更します。

        # cd /filesystem1
    
  3. find コマンドと cpio コマンドを組み合わせてディレクトリツリーをコピーします。

        # find . -print -depth | cpio -pdmu /filesystem2
    

    .

    現在の作業ディレクトリ内で処理を始める。 

    -print

    ファイル名を出力する。 

    -depth

    ディレクトリ階層を下位へたどってバックアップ中にファイル名を出力する。 

    -p

    ファイルのリストを作成する。 

    -d

    必要に応じてディレクトリを作成する。 

    -m

    ディレクトリ上で正しい変更時刻を設定する。 

    指定したディレクトリ名からファイルがコピーされ、シンボリックリンクは保持されます。

    また、-u オプションも指定できます。このオプションは、無条件コピーを実施します。-u オプションを指定しないと、古いファイルは、新しいファイルで置換されません。これは、ディレクトリを確実にコピーしたいとき、コピーするファイルの一部がすでにターゲットのディレクトリ中に存在する場合に便利です。

  4. 該当する場合は、ソースディレクトリを削除します。

        # rm -rf /filesystem1
    
  5. コピー先ディレクトリの内容を表示して、コピーに成功したかどうかを確認します。

        # cd filesystem2
        # ls
    

例 - ファイルシステム間でディレクトリをコピーする (cpio)

# cd /data1
# find . -print -depth | cpio -pdm /data2
19013 blocks
# cd /data2
# ls
# rm -rf /data1
# cd filesystem2
# ls

詳細は、cpio(1) のマニュアルページを参照してください。

ファイルとファイルシステムをテープにコピーする

paxtarcpio コマンドを使用すると、ファイルとファイルシステムをテープにコピーできます。どのコマンドを選択するかは、コピーする目的に応じて異なります。3 つのコマンドはすべて raw デバイスを使用するので、使用する前にテープ上でファイルシステムをフォーマットまたは作成する必要はありません。

表 37-3 cpiopax、および tar コマンドの長所と短所

コマンド 

機能 

長所 

短所 

pax

POSIX 準拠システムとの間でファイルをコピーする場合、または複数のテープボリュームが必要となる、ファイル、特殊ファイル、またはファイルシステムのコピー 

  • POSIX 準拠システムに対する可搬性は、tar コマンドや cpio コマンドよりもよい。

  • マルチベンダーサポート

tar コマンドの欠点を参照。ただし、pax は、複数のテープボリュームを作成できる。

tar

1 本のテープへの、ファイルやディレクトリのサブツリーのコピー 

  • ほとんどの UNIX オペレーティングシステムで利用できる。

  • パブリックドメインバージョンもすぐに利用できる。

  • ファイルシステムの境界を認識しない。

  • フルパス名の長さが 255 文字を超えることができない。

  • 空のディレクトリや特殊ファイル (デバイスファイルなど) をコピーしない。

  • 複数のテープボリュームを作成する場合は使用できない。

cpio

SunOS 5.x システムから SunOS 4.x システムにファイルをコピーする場合、または複数のテープボリュームが必要となる、ファイル、特殊ファイル、またはファイルシステムのコピー 

  • tar よりも効率的に、データをテープに書き込む。

  • 復元時、テープ中の不良箇所をスキップする。

  • 異なるシステムタイプ間の可搬性のために、異なるヘッダフォーマット (tarustarcrcodcbar) でファイルを書き込むオプションを提供する。

  • 複数のテープボリュームを作成する。

 

使用するテープドライブとデバイス名は、各システムのハードウェアと構成によって異なります。テープドライブとデバイス名の詳細については、「どの媒体を使用するかの選択」を参照してください。

tar を使用してファイルをテープにコピーする

tar コマンドでファイルをテープにコピーする前に、次のことを知っておかなければなりません。

ファイルをテープにコピーする方法 (tar)

  1. コピーしたいファイルが入っているディレクトリに変更します。

  2. 書き込み可能なテープをテープドライブに挿入します。

  3. tar コマンドを使用してファイルをテープにコピーします。

        $ tar cvf /dev/rmt/n filename  ...

    c

    アーカイブが作成されるように指定する。 

    v

    アーカイブされるたびに、各ファイルの名前が表示される。 

    f /dev/rmt/n

    アーカイブを指定したデバイスまたはファイルに書き込むように指定する。 

    filename ...

    コピーしたいファイルを指定する。 

    指定した名前のファイルがテープにコピーされ、テープ上の既存のファイルが上書きされます。

  4. テープをドライブから取り出して、テープラベルにファイル名を記入します。

  5. テープの内容を表示する t オプションを指定し、tar コマンドを使用して、コピーされたファイルがテープに入っているかどうかを確認します。tar テープ上のファイルを表示する方法についての詳細は、「テープ上のファイルのリストを表示する方法 (tar)」を参照してください。

        $ tar tvf /dev/rmt/n
    

例 - ファイルをテープにコピーする (tar)

次の例では、3 つのファイルがテープドライブ 0 のテープにコピーされます。

$ cd /export/home/kryten
$ ls reports
reportA reportB reportC
$ tar cvf /dev/rmt/0 reports
a reports/ 0 tape blocks
a reports/reportA 2 tape blocks
a reports/reportB 5 tape blocks
a reports/reportC 6 tape blocks
$ tar tvf /dev/rmt/n 

テープ上のファイルのリストを表示する方法 (tar)

  1. テープをテープドライブに挿入します。

  2. tar コマンドを使用してテープの内容を表示します。

        $ tar tvf /dev/rmt/n
    

    t

    テープ上のファイルの内容一覧が表示される。 

    v

    t オプションといっしょに使用すると、テープ上のファイルに関する詳細情報が表示される。

    f /dev/rmt/n

    テープデバイスを示す。 

例 - テープ上のファイルのリストを表示する (tar)

次の例では、ドライブ 0 内のテープの目次に 3 つのファイルが入っています。

$ tar tvf /dev/rmt/0
drwxr-xr-x 101/10       0 Nov  6 16:31 1996 reports/
-rw-r--r-- 101/10       0 Nov  6 16:31 1996 reports/reportA
-rw-r--r-- 101/10       0 Nov  6 16:31 1996 reports/reportB
-rw-r--r-- 101/10       0 Nov  6 16:31 1996 reports/reportC

テープからファイルを取り出す方法 (tar)

  1. ファイルを入れたいディレクトリに変更します。

  2. テープをテープドライブに挿入します。

  3. tar コマンドを使用してテープからファイルを取り出します。

        $ tar xvf /dev/rmt/n filename filename
    

    x

    指定したアーカイブファイルからファイルを抽出するように指定する。指定したドライブ内のテープ上にあるすべてのファイルが現在のディレクトリにコピーされる。 

    v

    各ファイルがアーカイブされるたびに、その名前が表示される。 

    f /dev/rmt/n

    アーカイブが入っているテープデバイスを示す。 

  4. 現在のディレクトリの内容をリストして、ファイルがコピーされていることを確認します。

        $ ls -l 
    

例 - テープ上のファイルを取り出す (tar)

次の例では、ドライブ 0 のテープからすべてのファイルがコピーされます。

$ cd /var/tmp
$ tar xvf /dev/rmt/0
x reports/, 0 bytes, 0 tape blocks
x reports/reportA, 0 bytes, 0 tape blocks
x reports/reportB, 0 bytes, 0 tape blocks
x reports/reportC, 0 bytes, 0 tape blocks
x reports/reportD, 0 bytes, 0 tape blocks
ls -l

注 -

テープから抽出されるファイル名は、アーカイブに格納されるファイル名と同一でなければなりません。ファイルの名前やパス名が不明な場合は、まずテープ上のファイルのリストを表示します。手順については、「テープ上のファイルのリストを表示する方法 (tar)」を参照してください。


詳細は、tar(1) のマニュアルページを参照してください。

pax を使用してファイルをテープにコピーする

この節では、pax コマンドでファイルをコピーする方法について説明します。

ファイルをテープにコピーする方法 (pax)

  1. コピーしたいファイルが入っているディレクトリに変更します。

  2. 書き込み可能なテープをテープドライブに挿入します。

  3. pax コマンドを使用してファイルをテープにコピーします。

        $ pax -w -f /dev/rmt/0 .
    

    -w

    現在のディレクトリの内容をテープにコピーする。 

    -f /dev/rmt/0

    テープドライブを識別する。 

  4. pax -l コマンドで、ファイルがテープにコピーされていることを確認します。

        $ pax -l -f /dev/rmt/0
    
  5. ドライブからテープを取り出して、テープラベルにファイル名を記入します。

例 - ファイルをテープにコピーする (pax)

$ pax -w -f /dev/rmt/0 .
$ pax -l -f /dev/rmt/0
filea
fileb
filec

詳細については、pax(1) を参照してください。

ディレクトリ内のすべてのファイルをテープにコピーする方法 (cpio)

  1. 書き込み保護されていないテープをテープドライブに挿入します。

  2. ls コマンドと cpio コマンドを使用してファイルをテープにコピーします。

        $ ls | cpio -oc > /dev/rmt/n
    

    ls

    cpio コマンドにファイル名のリストを与える。

    cpio -oc

    cpio がコピーアウトモード (-o) で動作し、ASCII 文字形式 (-c) でヘッダー情報を書き込むように指定する。これにより他のベンダーのシステムと可搬性を保つ。

    > /dev/rmt/n

    出力ファイルを指定する。 

    ディレクトリ内のすべてのファイルは、指定したドライブ内のテープにコピーされ、テープ上の既存のファイルが上書きされます。コピーされた合計ブロック数が表示されます。

  3. 次の cpio コマンドで、ファイルがテープにコピーされていることを確認します。

        $ cpio -civt < /dev/rmt/n
    
  4. テープをドライブから取り出して、テープラベルにファイル名を記入します。

例 - ディレクトリ内のすべてのファイルをテープにコピーする (cpio)

次の例では、ディレクトリ /export/home/kryten 内のすべてのファイルが、テープドライブ 0 のテープにコピーされます。

$ cd /export/home/kryten
$ ls | cpio -oc > /dev/rmt/0
8 blocks
$ cpio -civt < /tmp/cpio.file
drwxr-xr-x  2 kryten  users    0   Oct 24 11:05 1996, letters
drwxr-xr-x  2 kryten  users    0   Oct 24 11:05 1996, memos
drwxr-xr-x  2 kryten  users    0   Nov  8 14:14 1996, reports
8 blocks
$

テープ上のファイルのリストを表示する方法 (cpio)


注 -

内容一覧を表示すると、cpio コマンドはアーカイブ全体を処理しなければならないので、アーカイブファイルの読み込みに長時間かかります。


  1. テープをテープドライブに挿入します。

  2. cpio コマンドを使用してテープ上のファイルのリストを表示します。

        $ cpio -civt < /dev/rmt/n
    

    -c

    ファイルを ASCII 文字形式で読み込むように指定する。 

    -i

    cpio がコピーインモードで動作することを指定する (この時点ではファイルをリストするだけ)。

    -v

    ls -l コマンドと同様の形式で出力が表示される。

    -t

    指定したテープドライブ内のテープ上にあるファイルの内容一覧が表示される。 

    < /dev/rmt/n

    既存の cpio アーカイブの入力ファイルを指定する。

例 - テープ上のファイルのリストを表示する (cpio)

次の例では、ドライブ 0 のテープの目次に 3 つのファイルが入っています。

$ cpio -civt < /dev/rmt/0
drwxr-xr-x  2 rimmer   users   0   Oct 28 09:17 1996, answers
drwxr-xr-x  2 rimmer   users   0   Oct 28 09:17 1996, sc.directives
drwxr-xr-x  2 rimmer   users   0   Oct 28 09:17 1996, tests
8 blocks

テープからすべてのファイルを取り出す方法 (cpio)

相対パス名を使用してアーカイブを作成した場合、入力ファイルはそれを取り出すときに現在のディレクトリ内のディレクトリとして作成されます。ただし、絶対パス名を指定してアーカイブを作成した場合は、それと同じ絶対パス名を使用してシステム上でファイルが再び作成されます。


注意 - 注意 -

絶対パス名を使用すると、自分のシステム上にある元のファイルを上書きすることになるので危険です。


  1. ファイルを入れたいディレクトリに変更します。

  2. テープをテープドライブに挿入します。

  3. cpio コマンドを使用して、すべてのファイルをテープから現在のディレクトリにコピーします。

        $ cpio -icvd < /dev/rmt/n
    

    -i

    テープの内容を読み込む。 

    -c

    ファイルを ASCII 文字形式で読み込むように指定する。 

    -v

    ls -l コマンドと同様の形式で出力が表示される。

    -d

    必要に応じて、ディレクトリを作成する。 

    < /dev/rmt/n

    入力ファイルを指定する。 

  4. 現在のディレクトリの内容をリストして、ファイルがコピーされていることを確認します。

        $ ls -l
    

例 - テープからすべてのファイルを取り出す (cpio)

次の例では、ドライブ 0 のテープからすべてのファイルがコピーされます。

$ cd /var/tmp
cpio -icvd < /dev/rmt/0
answers
sc.directives
tests
8 blocks
$ ls -l

指定したファイルをテープから取り出す方法 (cpio)

  1. ファイルを入れたいディレクトリに変更します。

  2. テープをテープドライブに挿入します。

  3. cpio コマンドを使用してテープからファイルのサブセットを取り出します。

        $ cpio -icv "*file" < /dev/rmt/n
    

    -i

    テープの内容を読み込む。 

    -c

    ファイルを ASCII 文字形式で読み込むように指定する。 

    -v

    ls -l コマンドと同様の形式で出力が表示される。

    "*file"

    パターンに一致するすべてのファイルを現在のディレクトリにコピーするように指定する。複数のパターンを指定できるが、個々のパターンを二重引用符で囲まなければならない。 

    < /dev/rmt/n

    入力ファイルを指定する。 

  4. 現在のディレクトリの内容をリストして、ファイルがコピーされていることを確認します。

        $ ls -l
    

例 - 指定したファイルをテープから取り出す (cpio)

次の例では、末尾に接尾辞 chapter が付いているすべてのファイルがドライブ 0 のテープからコピーされます。

$ cd /home/smith/Book
$ cpio -icv "*chapter" < /dev/rmt/0
Boot.chapter
Directory.chapter
Install.chapter
Intro.chapter
31 blocks
$ ls -l

詳細は、cpio(1) のマニュアルページを参照してください。

ファイルをリモートテープドライブにコピーする方法 (tardd)

  1. リモートテープドライブを使用するには、次の前提条件を満たさなければなりません。

    • ローカルホスト名 (および、オプションで、コピーしているユーザーのユーザー名) が、リモートシステムの /etc/hosts.equiv ファイル内になければならない。あるいは、コピーしているユーザーは、リモートマシン上の自分のホームディレクトリをアクセス可能にしておかなければならない。さらに、$HOME/.rhosts 内にローカルマシン名がなければならない。詳細については、hosts.equiv(4) を参照。

    • リモートシステムのエントリがローカルシステムの /etc/inet/hosts ファイル内またはネームサービスの hosts ファイル内になければならない。

  2. リモートコマンドを実行するための適切なアクセス権を持っているかどうかをテストするには、次を試してみます。

        $ rsh remotehost echo test
    

    「test」がエコーされた場合、リモートコマンドを実行するためのアクセス権を持っています。「Permission denied」がエコーされた場合、上記の手順 1 で説明したように、ユーザーの設定をチェックしてください。

  3. tar コマンドと dd コマンドを使用して、ファイルをリモートテープドライブにコピーします。

        $ tar cf - files | rsh remotehost dd of=/dev/rmt/n obs=blocksize
    

    tar cf

    tar オプションでテープアーカイブを作成し、テープデバイスを指定する。 

    - (ハイフン)

    可変部としてテープデバイスの代わりに指定する。 

    files

    コピーするファイル 

    | rsh remotehost

    tar コマンドがリモートシェルにパイプされ、ファイルがコピーされる。

    dd of=/dev/rmt/n

    出力デバイスを指定する。 

    obs=blocksize

    ブロック係数を指定する。 

  4. テープをドライブから取り出して、テープラベルにファイル名を記入します。

例 - ファイルをリモートテープドライブにコピーする (tardd)

# tar cvf - * | rsh mercury dd of=/dev/rmt/0 bs=126b
a answers/ 0 tape blocks
a answers/test129 1 tape blocks
a sc.directives/ 0 tape blocks
a sc.directives/sc.190089 1 tape blocks
a tests/ 0 tape blocks
a tests/test131 1 tape blocks
0+2 records in
0+2 records out

ファイルをリモートテープドライブから取り出す方法

  1. 一時ディレクトリに変更します。

        $ cd /var/tmp
    
  2. tar コマンドと dd コマンドを使用して、ファイルをリモートテープドライブに抽出します。

        $ rsh remotehost dd if=/dev/rmt/n | tar xvBpf -
    

    rsh remotehost

    dd コマンドを使用してテープデバイスからファイルを取り出すために起動されるリモートシェル。

    dd if=/dev/rmt/n

    入力デバイスを指定する。 

    | tar xvBpf -

    dd コマンドの出力は tar コマンドにパイプされ、復元されたファイルに使用される。

  3. ファイルが抽出されたかどうかを確認します。

        $ ls -l /var/tmp
    

例 - ファイルをリモートテープドライブから抽出する

$ rsh mercury dd if=/dev/rmt/0 | tar xvBpf -
x answers/, 0 bytes, 0 tape blocks
x answers/test129, 48 bytes, 1 tape blocks
20+0 records in
20+0 records out
x sc.directives/, 0 bytes, 0 tape blocks
x sc.directives/sc.190089, 77 bytes, 1 tape blocks
x tests/, 0 bytes, 0 tape blocks
x tests/test131, 84 bytes, 1 tape blocks
$ ls -l /var/tmp

ファイルとファイルシステムをフロッピーディスクにコピーする

ファイルやファイルシステムをフロッピーディスクにコピーする前に、フロッピーディスクをフォーマットしなければなりません。フロッピーディスクをフォーマットする方法については、第 13 章「コマンド行でのフロッピーディスクのフォーマットと使用方法」を参照してください。

tar コマンドを使用して、UFS ファイルを 1 枚のフォーマット済みフロッピーディスクにコピーします。

UFS ファイルを複数のフォーマット済みフロッピーディスクにコピーする必要があれば、cpio コマンドを使用します。cpio は媒体の終りを認識し、次のボリュームの挿入を促すプロンプトを表示します。


注 -

ボリューム管理の関係で、cpio コマンドを使用して ufs ファイルを複数のフォーマット済みフロッピーディスクにコピーする手順は単純ではありません。Solaris 2.5 リリースでは、この手順が更新される予定です。


両面高密度 3.5 インチフロッピーディスクを使用してください (フロッピーディスクには「DS、HD」マークが付いています)。

ファイルをフロッピーディスクにコピーする際の注意事項

ファイルを 1 枚のフォーマット済みフロッピーディスクにコピーする方法 (tar)

  1. コピーしたいファイルが入っているディレクトリに変更します。

  2. 書き込み保護されていないフォーマット済みフロッピーディスクをドライブに挿入します。

  3. volcheck コマンドを使用してフロッピーディスクを使用可能にします。

  4. フロッピーディスク上のファイルシステムをマウント解除してフォーマットし直します。

        $ fdformat -U/vol/dev/aliases/floppy0 
    
  5. tar コマンドを使用してファイルをフロッピーディスクにコピーします。

        $ tar cvf /vol/dev/rdiskette0/unlabeled filename ...

    指定した名前のファイルがフロッピーディスクにコピーされ、フロッピーディスク上の既存のファイルが上書きされます

  6. フロッピーディスクの内容を表示する -t オプションをつけて tar コマンドを使用し、コピーしたファイルがフロッピーディスクに入っているかどうかを検査します。ファイルのリストを表示する方法についての詳細は、「フロッピーディスク上のファイルのリストを表示する方法 (tar)」を参照してください。

        $ tar tvf /vol/dev/rdiskette0/unlabeled 
    
  7. フロッピーディスクをドライブから取り出します。

  8. ファイル名をフロッピーディスクラベルに記入します。

例 - ファイルを 1 枚のフォーマット済みフロッピーディスクにコピーする (tar)

次の例では、2 つのファイルがフロッピーディスクにコピーされます。

$ cd /home/smith
$ ls evaluation*
evaluation.doc   evaluation.doc.backup
$ tar cvf /vol/dev/rdiskette0/unlabeled evaluation*
a evaluation.doc 86 blocks
a evaluation.doc.backup 84 blocks
$ tar tvf /vol/dev/rdiskette0/unlabeled

フロッピーディスク上のファイルのリストを表示する方法 (tar)

  1. フロッピーディスクをドライブに挿入します。

  2. volcheck を実行してフロッピーディスクを使用可能にします。

  3. tar コマンドを使用してフロッピーディスク上のファイルのリストを表示します。

        $ tar tvf /vol/dev/rdiskette0/unlabeled
    

例 - フロッピーディスク上のファイルのリストを表示する (tar)

次の例では、フロッピーディスクの内容一覧に 2 つのファイルが示されます。

$ tar tvf /vol/dev/rdiskette0/unlabeled
rw-rw-rw-6693/10  44032 Oct 23 14:54 1996 evaluation.doc
rw-rw-rw-6693/10  43008 Oct 23 14:47 1996 evaluation.doc.backup
$

詳細は、tar(1) のマニュアルページを参照してください。

複数のボリューム交換ユーティリティが必要な場合は、cpio コマンドを使用してください。tar コマンドは単なる 1 つのボリュームに対して機能するユーティリティです。

ファイルをフロッピーディスクから取り出す方法 (tar)

  1. ファイルを入れたいディレクトリに変更します。

  2. フロッピーディスクをドライブに挿入します。

  3. volcheck を実行してフロッピーディスクを使用可能にします。

  4. tar コマンドを使用してファイルをフロッピーディスクから取り出します。

        $ tar xvf /vol/dev/rdiskette0/unlabeled
    

    フロッピーディスク上のすべてのファイルが現在のディレクトリにコピーされます。

  5. 現在のディレクトリの内容をリストして、ファイルが取り出されていることを確認します。

        $ ls -l
    
  6. フロッピーディスクをドライブから取り出します。

例 - ファイルをフロッピーディスクから取り出す (tar)

次の例では、フロッピーディスクからすべてのファイルがコピーされます。

$  /home/smith/Evaluations
$ tar xvf /vol/dev/rdiskette0/unlabeled
x evaluation.doc, 44032 bytes, 86 tape blocks
x evaluation.doc.backup, 43008 bytes, 84 tape blocks
$ ls -l

tar コマンドを使用してフロッピーディスクから個々のファイルを取り出します。

$ tar xvf /vol/dev/rdiskette0/unlabeled filename ...

指定した名前のファイルがフロッピーディスクから取り出され、現在の作業ディレクトリに格納されます。

ファイルを複数のフロッピーディスクにアーカイブする方法

大量のファイルやファイルシステムをフロッピーディスクにコピーする場合は、一杯になったフロッピーディスクを別のフォーマット済みフロッピーディスクと交換するように促すプロンプトを表示させることができます。cpio コマンドにはこの機能があります。使用する cpio コマンドはファイルをテープにコピーする場合と同じですが、テープデバイス名ではなくデバイスとして /vol/dev/aliases/floppy0 を指定します。cpio の使用方法については、「ディレクトリ内のすべてのファイルをテープにコピーする方法 (cpio)」を参照してください。

ファイルを別のヘッダー形式でコピーする

SunOS 5.x の cpio コマンドを使用して作成したアーカイブには、SunOS の旧リリースとの互換性がない場合があります。cpio コマンドを使用すると、他の複数の形式で読み込めるアーカイブを作成できます。これらの形式は、-H オプションと次のいずれかの引数で指定します。

ヘッダーオプションを使用する場合の構文は次のとおりです。

cpio -o -H header-option < file-list > output-archive

SunOS の旧リリース用のアーカイブを作成する方法

cpio コマンドを使用してアーカイブを作成します。

$ cpio -oH odc < file-list > /dev/rmt/n

-H オプションは、入力に対して出力の場合と同じ意味を持ちます。-H オプションを使用してアーカイブを作成した場合は、読み込むときにも同じオプションを使用しないと、次のように cpio コマンドが失敗に終ります。

例 - SunOS の旧リリース用にアーカイブを作成する

$ find . -print | cpio -oH tar > /tmp/test
113 blocks
$ cpio -iH bar < /tmp/test
cpio: Invalid header "bar" specified
USAGE:
        cpio -i[bcdfkmrstuvBSV6] [-C size] [-E file] [-H hdr]

[-I file [-M msg]] [-R id] [patterns]
        cpio -o[acvABLV] [-C size] [-H hdr] [-O file [-M msg]]
        cpio -p[adlmuvLV] [-R id] directory

各種オプションを使用してアーカイブを作成するときには、必ず媒体のラベルにアーカイブ上のファイル名やファイルシステム名といっしょにコマンド構文を記入してください。

アーカイブの作成時にどの cpio オプションを使用したかがわからない場合は、各種オプションをいろいろ組み合わせてみなければ、どの方法でアーカイブを読み込めるかがわかりません。

オプションのリストについては、cpio(1) のマニュアルページを参照してください。

bar コマンドで作成したファイルを取り出す

SunOS 4.x の bar コマンドを使用してアーカイブしたファイルをフロッピーディスクから取り出すには、cpio-H bar オプションを使用します。


注 -

ファイルを取り出すには、-H bar オプションと -i をいっしょに使用しなければなりません。bar ヘッダーオプションを使用してファイルを作成することはできません。


bar ファイルをフロッピーディスクから取り出す方法

  1. ファイルを入れたいディレクトリに変更します。

  2. cpio コマンドを使用してフロッピーディスクから bar ファイルを取り出します。

    フロッピーディスク上のすべてのファイルが現在のディレクトリにコピーされます。

        $ cpio -ivH bar < /vol/dev/rdiskette/unlabeled
    

第 38 章 テープドライブの管理手順

この章では、テープドライブを管理する方法について説明します。

この章で説明する手順は次のとおりです。

どの媒体を使用するかの選択

通常は、次の媒体を使用して Solaris 2.5 システムのバックアップを作成します。

フロッピーディスクを使用してバックアップを実行することもできますが、時間がかかり煩雑です。

どの媒体を選択するかは、媒体をサポートする機器とファイルの格納に使用する媒体 (通常はテープ) の可用性によって決まります。バックアップはローカルシステムから実行しなければなりませんが、ファイルはリモートデバイスに書き込めます。

表 38-1 は、ファイルシステムの典型的なバックアップ媒体と、それぞれの長さ (または記憶容量) を示しています。

表 38-1 媒体の記憶容量

媒体 

容量 

テープの長さ 

1/2 インチテープ 

40 〜 45M バイト 

2300 フィート 

60M バイト 1/4 インチカートリッジ 

60M バイト 

425 フィート 

150M バイト 1/4 インチカートリッジ 

150M バイト 

700 フィート 

2.3G バイト 8 mm 

2.3G バイト 

6000 フィート 

5.0G バイト 8 mm 

5.0G バイト 

13000 フィート 

3.5 インチフロッピーディスク 

1422 ブロック (1.44M バイト) 

 


注 -

4 mm のカートリッジテープの容量は、ドライブのタイプとテープに書き込むデータによって異なります。


バックアップデバイス名

バックアップに使用するテープまたはフロッピーディスクドライブに論理デバイス名を与えて指定します。この名前は、「raw」のデバイスファイルが入っているサブディレクトリを指し、ドライブの論理デバイス番号が含まれています。テープドライブの命名規則では、物理デバイス名ではなく論理デバイス名を使用します。表 38-2 は、この命名方式を示しています。

表 38-2 バックアップデバイスの基本的なデバイス名

デバイスの種類 

名前 

テープ 

/dev/rmt/n

フロッピーディスク 

/vol/dev/rdiskette0/unlabeled

ドライブは、その「推奨」密度で書き込みますが、一般にこれはサポートされる最大密度を意味します。ほとんどの SCSI ドライブは、テープの密度や形式を自動的に検出し、それに応じて読み込むことができます。

テープドライブは、コントローラのタイプに応じて次の 2 つのカテゴリに分かれています。

/dev/rmt サブディレクトリには、各種の出力密度をサポートする一連のテープデバイスファイルが入っています。

通常は、図 38-1 のようにテープドライブデバイスを指定します。

図 38-1 テープドライブデバイス名

Graphic

同じシステム上で SCSI テープドライブと SCSI 以外のテープドライブを使用できます。

表 38-3 は、各種のテープコントローラ/装置と媒体のデバイス省略名を示しています。ドライブ番号のデバイス省略名の 1 文字目を次表のように 0 にしなくても、システムに接続されるテープドライブ数に応じて 1、2、3 などを使用できるので注意してください。

表 38-3 テープコントローラ/装置と媒体のデバイス省略名

コントローラ 

ドライブデバイス 

 

タイプ 

サイズ 

形式 

トラック数 

デバイス省略名 

リール 

Xylogics 472 

Fujitsu M2444 

1/2 インチ 

1600 bpi 

/dev/rmt/0m

 

 

1/2 インチ 

6250 bpi 

/dev/rmt/0h

SCSI フロントロード 

HP 

1/2 インチ 

800 bpi 

/dev/rmt/0m

 

 

 

6250 bpi 

/dev/rmt/0h

カートリッジ 

SCSI 

Sysgen 

1/4 インチ 

QIC-11 

/dev/rmt/0l

 

 

 

QIC-24 

/dev/rmt/0m

 

 

 

QIC-11 

/dev/rmt/0l

 

 

 

QIC-24 

/dev/rmt/0m

 

Emulex MT-02 

1/4 インチ 

QIC-11 

/dev/rmt/0l

 

 

 

QIC-24 

/dev/rmt/0m

 

 

 

QIC-11 

/dev/rmt/0l

 

 

 

QIC-24 

/dev/rmt/0m

 

Archive QIC-150 

1/4 インチ 

QIC-150 

18 

/dev/rmt/0h

 

Wangtek QIC-150 

1/4 インチ 

QIC-150 

18 

/dev/rmt/0h

 

Desktop Backup Pack 

1/4 インチ 

QIC-150 

18 

/dev/rmt/0h

 

Exabyte 8200 (2.3 GB) 

8 mm 

8 mm 

Helical Scan 

/dev/rmt/0m

 

Exabyte 8500 (2.3 GB) 

8 mm 

8 mm 

Helical Scan 

/dev/rmt/0l

 

Exabyte 8500 (5 GB) 

8 mm 

8 mm 

Helical Scan 

/dev/rmt/0m

 

Archive Python 

4 mm 

4 mm 

Helical Scan 

/dev/rmt/0

ラックマウント式の SCSI 以外の 1/2 インチリールドライブ

Tapemaster または Xylogics 472 コントローラが付いた 1/2 インチのラックマウント式テープドライブの場合は、デバイス名の変数 A (/dev/rmt/XA) の代わりに表 38-4 for the A の密度を使用してください。

表 38-4 ラックマウント式 1/2 インチテープドライブの密度指定

文字 

密度 

null

デフォルトの推奨「最高」密度 (通常は非圧縮状態で 6250 bpi) 

l

800 bpi 

m

1600 bpi 

h

6250 bpi 

u

圧縮状態で 6250 bpi 

密度文字を省略すると、通常、テープは圧縮されずに最高密度で書き込まれます。

SCSI 1/4 インチカートリッジと 1/2 インチフロントロード式リールドライブ

SCSI 1/4 インチカートリッジと 1/2 インチフロントロード式リールドライブの場合は、デバイス名の変数 A (/dev/rmt/XA) の代わりに表 38-5 の密度を使用してください。

表 38-5 SCSI テープドライブの形式または密度指定

文字 

密度 

1/4 インチカートリッジ 

密度 

1/2 インチフロントロード式リール 

null

デフォルトの推奨 (最高) 密度 

デフォルトの推奨 (最高) 密度 

l

QIC-11 形式 

800 bpi 

m

QIC-24 形式 

1600 bpi 

h

QIC-150 

6250 bpi 

u

予約済み 

予約済み 

1/4 インチカートリッジの場合、密度はデータが書き込まれる形式、つまり QIC 形式で指定されます。QIC-11 形式と QIC-24 形式では、各トラック上に 1 インチ当たり約 1000 バイトが書き込まれます。QIC-150 形式の密度は、やや高くなります。60M バイト 1/4 インチのカートリッジドライブの「推奨」密度は QIC-24 で、150M バイト 1/4 インチカートリッジドライブは QIC-150 です。

18 トラックドライブでは QIC-150 にしか書き込めません。QIC-24 や QIC-11 への書き込みに切り替えることはできません。形式セクションが役に立つのは、QIC-24 と QIC-11 の両方に書き込めるドライブだけです。

テープドライブのデフォルト密度を指定する

通常は、テープドライブを 0 から n までの論理デバイス番号で指定します。表 38-6 は、デフォルトの密度設定を使用してテープデバイス名を指定する方法を示しています。

表 38-6 テープドライブのデフォルト密度指定

指定するドライブ 

使用する番号 

第 1 のドライブ、巻き戻し 

/dev/rmt/0

第 1 のドライブ、巻き戻しなし 

/dev/rmt/0n

第 2 のドライブ、巻き戻し 

/dev/rmt/1m

第 2 のドライブ、巻き戻しなし 

/dev/rmt/1n

デフォルトでは、ドライブはその「推奨」密度で書き込みますが、これは一般にそのドライブでサポートされる最大密度です。テープデバイスを指定しなければ、コマンドはデバイスでサポートされるデフォルト密度でドライブ番号 0 に書き込みます。

テープドライブに別の密度を指定する

テープを特定の密度しかサポートされないテープドライブが付いたシステムに転送するには、目的の密度で書き込むデバイス名を指定します。表 38-7 は、テープドライブに別の密度を指定する方法を示しています。

表 38-7 テープドライブに別の密度を指定する

指定 

番号 

第 1 のドライブ、巻き戻し、低密度 

/dev/rmt/0l

第 1 のドライブ、巻き戻しなし、低密度 

/dev/rmt/0ln

第 2 のドライブ、巻き戻し、中密度 

/dev/rmt/1m

第 2 のドライブ、巻き戻しなし、中密度 

/dev/rmt/1mn

デバイス名と密度文字については、図 38-1 を参照してください。

テープドライブの種類を判断する

mt コマンドの status オプションを使用すると、Xylogics 472 1/2 インチテープドライブと Exabyte EXB-8200 8 mm テープドライブに関する状態情報を表示できます。

また、mt コマンドでは次の 1/4 インチテープドライブに関する情報もレポートされます。

テープドライブの種類を判断する方法

  1. 情報を表示したいドライブにテープをロードします。

  2. mt コマンドを使用してテープドライブ情報を表示します。

        # mt -f /dev/rmt/n status
    
  3. テープドライブ番号を 1、2、3 というように置き換えて手順 1 と 2 を繰り返し、使用可能なすべてのテープドライブに関する情報を表示します。

例 - テープドライブの種類を判別する

次の例は、QIC-150 テープドライブ (/dev/rmt/0) とExabyte テープドライブ (/dev/rmt/1) の状態を示しています。

$ mt -f /dev/rmt/0 status
Archive QIC-150 tape drive:
   sense key(0x0)= No Additional Sense   residual= 0   retries= 0
   file no= 0   block no= 0
$ mt -f /dev/rmt/1 status
Exabyte EXB-8200 8mm tape drive:
sense key(0x0)= NO Additional Sense residual= 0  retries= 0
file no= 0   block no= 0

次の方法を使用すると、システムを手早くポーリングしてすべてのテープドライブを検査できます。この例では、テープドライブは 0 になっています。

$ for drive in 0 1 2 3 4 5 6 7
> do
> mt -f /dev/rmt/$drive status
> done
Archive QIC-150 tape drive:
   sense key(0x0)= No Additional Sense   residual= 0   retries= 0
   file no= 0   block no= 0
/dev/rmt/1: No such file or directory
/dev/rmt/2: No such file or directory
/dev/rmt/3: No such file or directory
/dev/rmt/4: No such file or directory
/dev/rmt/5: No such file or directory
/dev/rmt/6: No such file or directory
/dev/rmt/7: No such file or directory
$ 

磁気テープドライブの状態を表示する方法

テープドライブの状態情報を表示するには、mt コマンドを使用します。

$ mt -f /dev/rmt/n status

指定したテープドライブの状態が表示されます。

例 - 磁気テープドライブの状態を表示する

次の例では、ドライブ /dev/rmt/1 にはテープが入っていません。

$ mt -f /dev/rmt/1 status
/dev/rmt/1: no tape loaded or drive offline
$

次の例は、ドライブ /dev/rmt/1 内のテープの状態を示しています。

$ mt -f /dev/rmt/1 status
Archive QIC-150 tape drive:
   sense key(0x6)= unit attention   residual= 0   retries= 0
   file no= 0   block no= 0
$

磁気テープカートリッジの取り扱い

テープの読み込み中にエラーが発生した場合は、テープのたるみを直し、テープドライブを掃除してからやり直してください。

磁気テープカートリッジのたるみを直す方法

mt コマンドを使用して磁気テープカートリッジのたるみを直します。

$ mt -f /dev/rmt/n retension

例 - 磁気テープドライブのたるみを直す方法

次の例では、ドライブ /dev/rmt/1 内のテープのたるみを直します。

$ mt -f /dev/rmt/1 retension
$

注 -

QIC 以外のテープドライブのたるみは直さないでください。


磁気テープカートリッジを巻き戻す方法

磁気テープカートリッジを巻き戻すには、mt コマンドを使用します。

$ mt -f /dev/rmt/n rewind

例 - 磁気テープカートリッジを巻き戻す

次の例では、ドライブ /dev/rmt/1 内のテープを巻き戻します。

$ mt -f /dev/rmt/1 rewind
$

ドライブの管理と媒体処理のガイドライン

バックアップテープは読み込めなければ役に立ちません。そこで、テープドライブが正常に動作するように定期的に掃除してチェックするとよいでしょう。テープドライブのクリーニング手順については、ハードウェアのマニュアルを参照してください。次の 2 つの方法のうち、どちらかを使ってテープハードウェアをチェックできます。

ハードウェアは、システムからレポートされないような障害を起こす可能性があるので注意してください。

バックアップ後は、必ずテープにラベルを付けてください。第 33 章「ファイルシステムのバックアップと復元の概要」で説明したようなバックアップ方法を採用した場合は、ラベルに「テープA」、「テープB」というようにしておく必要があります。このラベルは変更しないでください。バックアップを実行するたびに別のテープラベルを作成して、バックアップ日付、マシン名、バックアップを作成したファイルシステム、バックアップレベル、テープ番号 (複数のボリュームにまたがる場合は n 本のうちの 1 本目)、サイト特有の情報を入力します。テープは、磁気を発生させる機器から離れた埃のない安全な場所に保管してください。サイトによっては、アーカイブしたテープを遠隔地の防火キャビネットに保管しています。

各ジョブ (バックアップ) がどの媒体 (テープボリューム) に格納されているかということと、各バックアップファイルがどこに保管されているかを記録したログを作成し、管理する必要があります。