Solaris のシステム管理 (第 1 巻)

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

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

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

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

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

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

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

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

操作 

使用するコマンド 

参照先 

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

ufsdump(1M) コマンド

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

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

Solstice BackupTM ソフトウェア

Solstice Backup 5.1 管理者ガイド

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

nisbackup(1M) コマンドと nisrestore(1M) コマンド

Solaris ネーミングの管理

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

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

tar(1)cpio(1)、または pax(1) コマンド

tar(1) コマンド

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

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

dd(1M) コマンド

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

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

ufsrestore(1M) コマンド

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

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

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

テープデバイスの選択

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

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

媒体 

容量 [ 容量は、ドライブのタイプとテープに書き込むデータによって異なります。]

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

140M バイト (6250bpi) 

2.5G バイト、 1/4 インチのカートリッジ (QIC) テープ 

2.5G バイト 

DDS3 4-mm カートリッジテープ (DAT) 

12 〜 24 G バイト 

14-Gbyte 8-mm カートリッジテープ 

14G バイト 

DLTTM 7000 1/2 インチ カートリッジテープ

35 〜 70G バイト 

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

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

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

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

理由 

バックアップ間隔 

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

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

定期 

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

一般に、新しいソフトウェアをインストールして新しいコマンドを追加すると、/usr/opt ファイルシステムが影響を受ける。 /opt は、ルート (/) の一部であるか、独自のファイルシステムである。

随時 

/export/home

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

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

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

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

サイトの必要に応じて 

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

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

理由 

バックアップ間隔 

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

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

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

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

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

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

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

/usr/opt - 内容に変更がなく、週に 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 コマンドまたはファイルに渡すことができる。

 

自動バックアップ 

 

crontab ユーティリティを使用して、ufsdump コマンドを起動するスクリプトを実行する 。

 

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

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

 

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

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

 

ファイルシステムがバックアップされたときのログを保管する。 

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

 

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

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

ufsrestore

 

 

 

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

 

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

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

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

バックアップのタイプ 

コピー内容 

長所 

短所 

完全 

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

すべてを 1 箇所にまとめることができる。 

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

増分 

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

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

どの増分テープにファイルが入っているかを探すのに時間がかかることがある。最後の完全ダンプに戻らなければならない場合もある。 

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

「バックアップスケジュール」とは、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 は、前のスケジュールを使用して、テープの内容が 2 週間でどのように変化するかを示します。各文字は別のファイルを表します。

表 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 

必要なテープの本数

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

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

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

表 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 本です。

ファイルシステム全体を復元する必要があれば、次の本数のテープが必要になります。その内訳は、レベル 0 が 1 本、すべての金曜日のテープ、前週の金曜日以降の最新の日単位テープ 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 本のテープが必要になります。

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

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

表 33-13 は、ユーザーがプログラム開発や文書作成のようなファイル集約型の作業を実行する小型ネットワーク上の、使用頻度の高いファイルサーバーのバックアップ方針の例を示しています。この例は、バックアップ期間が日曜日に始まり、1 週 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. システムをレベル S (シングルユーザーモード) に移行します。


    # shutdown -g30 -y
    
  3. [省略可能] fsck コマンドを指定してファイルシステムの整合性をチェックします。

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


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

    1. テープドライブが接続されているシステム (テープサーバー) の ./rhosts ファイルに、次のエントリを追加します。

         
      host root

      host

      ufsdump を使用してバックアップを実行するシステムの名前

    2. テープサーバー上で、上記の /.rhosts ファイルに追加したホストに、ネームサービス経由でアクセスできることを確認します。

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

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

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

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

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

    操作 

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

    例 

    参照先 

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

    0 オプション 

    ufsdump 0ucf /dev/rmt/0 /

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

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

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

    ufsdump 9ucf /dev/rmt/0/

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

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

    ファイルまたはディレクトリを指定する 

    ufsdump ucf /dev/rmt/0 /export/home/kryten

     

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

    -u オプション

    ufsdump 9ucf /dev/rmt/ 0 /export/home

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

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

    -c オプション

    ufsdump 9ucf /dev/rmt/0 /export/home

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

    テープドライブを指定する 

    -f dump-file

    ufsdump 9ucf /dev/rmt/0 /export/home

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

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

    remote-system:dump-file

    ufsdump 0ucf pluto:/dev/rmt/0 /export/home

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

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

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

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

  11. ufsrestore コマンドでテープの内容を表示して、バックアップが正常に実行されたことを確認します。

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

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

次の例では、ルート (/) ファイルシステムの完全バックアップを QIC-150 テープ (/dev/rmt/0) 上に作成します。


# shutdown -g30 -y
# 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 
         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
                      .
                      .
                      .
#

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

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


# ufsdump 9ucf /dev/rmt/0 /
DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 9 dump: Tue Jun 09 11:04:41 1998
  DUMP: Date of last level 0 dump: Tue Jun 09 10:14:54 1998
  DUMP: Dumping /dev/rdsk/c0t3d0s0 (pluto:/) 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: Estimated 1502 blocks (751KB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 1384 blocks (692KB) on 1 volume at 51 KB/sec
  DUMP: DUMP IS DONE
  DUMP: Level 9 dump on Tue Jun 09 11:04:41 1998
# ufsrestore tf /dev/rmt/0
     39872	./var
     62671	./var/adm
     39915	./var/adm/sa
     40018	./var/adm/sa/sa09
     62810	./var/adm/sulog
     62888	./var/adm/pacct
     91154	./var/cron
     91311	./var/cron/log
      5716	./var/mail
      5835	./var/mail/adm
     45585	./var/spool
     51388	./var/spool/mqueue
     91155	./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: Tue Jun 09 11:12:44 1998
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (pluto:/export/home) to /dev/rmt/0.
  DUMP: Mapping (Pass I) [regular files]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Estimated 232 blocks (116KB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 124 blocks (62KB) on 1 volume at 8 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.6 のデータを Solaris 7 システムへ)

次の例では、Solaris 2.6 システム上のローカルの /export/home ファイルシステムを、リモートの Solaris 7 システム pluto 上のテープデバイスに完全バックアップします。


# ufsdump 0ucf pluto:/dev/rmt/0 /export/home
  # ufsdump 0ucf pluto:/dev/rmt/0 /export/home
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Tue Jun 09 13:54:27 1998
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (venus:/export/home) to pluto:/dev/rmt/0.
  DUMP: Mapping (Pass I) [regular files]
  DUMP: Mapping (Pass II) [directories]
  DUMP: Estimated 38310 blocks (18.71MB).
  DUMP: Dumping (Pass III) [directories]
  DUMP: Dumping (Pass IV) [regular files]
  DUMP: Tape rewinding
  DUMP: 38302 blocks (18.70MB) on 1 volume at 98 KB/sec
  DUMP: DUMP IS DONE
  DUMP: Level 0 dump on Tue Jun 09 13:54:27 1998
# # ufsrestore tf pluto:/dev/rmt/0
         2	.
         3	./lost+found
     34180	./kryten
     34182	./kryten/.login
     34183	./kryten/.cshrc
     51266	./kryten/letters
     51272	./kryten/letters/letter1
     51273	./kryten/letters/letter2
     51274	./kryten/letters/letter3
     57032	./kryten/memos
     74095	./kryten/reports
     74096	./kryten/reports/reportA
     74097	./kryten/reports/reportB
     74098	./kryten/reports/reportC
			.
			.
			.
#

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

次の例では、Solaris 7 システム上のローカルの /export/home ファイルシステムを、リモートの SunOS 4.1.3 システム mars 上のテープデバイスに完全バックアップします。


注 -

ufsdump コマンドといっしょに SunOS 4.0/4.1 用のデバイス名 (/dev/rst0) が使用されているので注意してください。



# ufsdump 0ucf mars:/dev/rst0 /export/home
  DUMP: Writing 63 Kilobyte records
  DUMP: Date of this level 0 dump: Fri Oct 24 15:06:47 1997
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rdsk/c0t3d0s7 (earth:/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 24 15:06:47 1997
  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.3 のデータを Solaris 7 システムへ)

次の例では、Sun 4.1.3 システム mars 上のローカルのルート (/) ファイルシステムを、Solaris 7 システム pluto 上のリモートテープデバイスに完全バックアップします。


注 -

SunOS 4.1.3 およびその互換バージョンのシステム上のデータをバックアップするときには、ufsdump コマンドではなく dump コマンドを使用しなければならないことに注意してください。



# dump 0ucf pluto:/dev/rmt/0 /
  DUMP: Date of this level 0 dump: Tue Oct 21 16:05:19 1997   
  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 21 16:05:19 1997
  DUMP: Tape rewinding
  DUMP: 8690 blocks (4.24MB) on 1 volume
  DUMP: DUMP IS DONE
# 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
                      .
                .
                .
#

第 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 が現在の作業ディレクトリにファイル階層を作成し直します。たとえば、/export/doc/books ディレクトリ (/export はファイルシステムです) からバックアップされたファイルは、/export からの相対的な位置に保存されます。つまり、docs ディレクトリ内の book1 ファイルは、テープ上で ./doc/books/book1 として保存されます。後で、./doc/books/book1 ファイルを /var/tmp ディレクトリに復元する場合、そのファイルは /var/tmp/doc/books/book1 に復元されます。

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


注 -

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


ファイルシステムの復元

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

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

  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 tfs /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/restore などのサブディレクトリを作成し、そのディレクトリに移動してファイルを復元することをお勧めします。

    階層を復元する場合は、ファイルを置くファイルシステム上の一時ディレクトリにファイルを復元します。復元後、 mv コマンドで、階層全体を目的の場所に移動します。

  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
    

    どのボリューム番号を使用するかを指定するプロンプトが表示されます。

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


    Specify next volume #: 1
    

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

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


    set owner/mode for `.'? [yn] n
    

    ufsrestore が最後の整理を行なっている間は、ufsrestore プロンプトが表示されるまでにはしばらく時間がかかります。

  11. ufsrestore プログラムを終了します。


    ufsrestore> quit
    

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

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

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


      # ls -l
      

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

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

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

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

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


# cd /var/tmp
# ufsrestore if /dev/rmt/0
ufsrestore> ls
.:
 .cpr_config   etc/          lost+found/   sbin/         usr/
 TT_DB/        export/       mnt/          sccs/         var/
 b/            home/         net/          share/        vol/
 bin           kernel/       opt/          shared/       ws/
 dev/          lib           platform/     src/          xfn/
 devices/      license/      proc/         tmp/
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. ボリューム 1 のテープをテープドライブに挿入します。

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


    # cd /var/tmp
    

    他のユーザーとの衝突を防ぐために、/var/tmp などのサブディレクトリを作成し、そのディレクトリに移動して、ファイルを復元することをお勧めします。

    階層を復元する場合は、ファイルを置くファイルシステム上の一時ディレクトリにファイルを復元します。復元後、mv コマンドで、階層全体を目的の場所に移動します。

  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
      

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

    2. リストをチェックして、リストに指定したすべてのファイルとディレクトリが復元されていることを確認します。

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

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

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


# cd /var/tmp
# ufsrestore xvf /dev/rmt/0 ./etc/passwd ./etc/shadow
Verify volume and initialize maps
Media block size is 126
Dump   date: Tue Jun 09 14:30:16 1998
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
Directories already exist, set modes anyway? [yn] n
# cd etc
#  mv passwd /etc
# mv shadow /etc
# ls -l etc

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

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


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

例 - リモートドライブを使用してファイルを復元する

次の例では、システム venus 上にあるリモートテープドライブ /dev/rmt/0 を使用してファイルを復元します。


# ufsrestore xf 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. 最低のレベルから最高のレベルまで、ダンプのレベルごとに、手順 7 から 手順 10 までを繰り返します。

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


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


    # rm restoresymtable
    

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

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


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


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

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


    # 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:		410400 sectors in 270 cylinders of 19 tracks, 80 sectors
		200.4MB in 17 cyl groups (16 c/g, 11.88MB/g, 5696 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 24432, 48832, 73232, 97632, 122032, 146432, 170832, 195232, 219632,
 244032, 268432, 292832, 317232, 341632, 366032, 390432,
# mount /dev/dsk/c0t3d0s7 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
Verify volume and initialize maps
Media block size is 126
Dump   date: Tue Jun 09 15:01:03 1998
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. テープを書き込み保護します。

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


    # ufsrestore rvf /dev/rmt/n
    

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

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

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

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


    # ufsrestore rvf /dev/rmt/n
    

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

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

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


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


    # rm restoresymtable
    

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

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


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


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


    # fsck /dev/rdsk/device-name
    

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

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


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

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

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

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


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

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

  17. 必要があれば、/usr ファイルシステムについて 手順 5 から 手順 18 を実行します。

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


    # 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 1998
/dev/rdsk/c0t3d0s0               9 Wed Nov  6 16:14:51 1998
/dev/rdsk/c0t3d0s7               0 Wed Nov  6 16:18:08 1998

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

/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 でのデバイス名 (/dev/rst0 など) を使用します。システムが Solaris ソフトウェアを実行中の場合は、SunOS 5.7 でのデバイス名 (/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 コマンドはデフォルト設定を使用します。テープカートリッジ (-c)、密度 (-d)、サイズ (-s)、トラック数 (-t) を指定できます。引数がオプションの順序と合っていれば、オプションはいくつでも指定できます。

ufsdump の制限

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

表 36-1 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-2 は、ufsdump コマンドのオプションを示しています。

表 36-2 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 オプションの引数として、復元するファイルを指定する。常に最後に指定する。

オプションと引数

ufsrestore コマンドには、表 36-3 に示すオプションのうちの 1 つを指定する必要があります。

表 36-3 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-3 からオプションを 1 つ選択する他に、表 36-4 からもオプションを選択できます。

表 36-4 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

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

s n

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

v

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

y

媒体の読み込みエラーが発生しても処理を続行する。処理を停止して続行するかどうかを選択するプロンプトを表示せずに、不良ブロックをスキップしようとする。 

対話式の復元コマンド

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

オプション 

説明 

ls [directory-name]

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

cd directory-name

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

add [filename]

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

delete [filename]

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

extract

リスト内のファイルを抽出し、ディスク上の現在の作業ディレクトリからの相対パスで指定される位置に復元する。1 つのボリュームのバックアップについてボリューム番号をたずねるプロンプトが表示されたら 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(1M)

「テープにバックアップをとる方法」

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

ufsrestore(1M)

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

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

pax(1), tar(1), または cpio(1)

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

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

dd(1M)

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

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

tar(1)

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

表 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 コマンドは、読み込みブロック数と書き込みブロック数をレポートします。+ の次の数値は、部分的にコピーされたブロックの数です。デフォルトのブロックサイズは 512 バイトです。

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 ファイルをシステムに作成します。これによって、システムは追加されるクローンディスクをリブート時に認識します。


    # touch /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

    マスターディスクデバイスのオーバーラップスライスを指定する。通常はスライス 2。 

    of=/dev/dsk/device-name

    クローンディスクデバイスのオーバーラップスライスを指定する。通常はスライス 2。 

    bs=blocksize

    ブロックサイズ (128K バイト、256K バイトなど)。ブロックサイズの値を大きくすると、コピーに要する時間を短縮できる。 

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


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


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

    たとえば、c0t3d0 をすべて c0t1d0 に変更します。

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


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


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


    # boot diskn -s
    

    注 -

    installboot コマンドをクローンディスクで実行する必要ありません。これは、ブートブロックがオーバーラップスライスの一部としてコピーされるためです。


  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=128k
# fsck /dev/rdsk/c0t2d0s2
# mount /dev/dsk/c0t2d0s2 /mnt
# cd /mnt/etc
# vi vfstab
(新しいディスクのエントリを変更)
# 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 コマンドを組み合わせて実行し、ディレクトリツリーを filesystem1 から filesystem2 へコピーします。


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

    .

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

    -print

    ファイル名を出力する。 

    -depth

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

    -p

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

    -d

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

    -m

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

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

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

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


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


    # rm -rf /filesystem1
    

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


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

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

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

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

表 37-3 cpiopaxtar コマンドの長所と短所

コマンド 

機能 

長所 

短所 

pax

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

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

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

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

tar

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

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

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

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

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

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

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

cpio

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

  • 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 [filename]

    t

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

    v

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

    f /dev/rmt/n

    テープデバイスを示す。 

    filename ...

    リスト表示したいファイルとディレクトリを指定する。 

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

次の例では、ドライブ 0 のテープに含まれているファイルのリストを表示します。


$ 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 ...]

    x

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

    v

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

    f /dev/rmt/n

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

    filename

    取り出すファイルを指定する。 

  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 filename ...

    -w

    書き込みモードを有効にする。 

    -f /dev/rmt/0

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

    filename ...

    コピーしたいファイルとディレクトリを指定する。 

  4. ファイルがテープにコピーされていることを確認します。


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

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


$ pax -w -f /dev/rmt/0 .
$ pax -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/0
    
  4. テープをドライブから取り出して、テープラベルにファイル名を記入します。

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

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


$ cd /export/home/kryten
$ ls | cpio -oc > /dev/rmt/0
8 blocks
$ cpio -civt < /dev/rmt/0
drwxr-xr-x  2 kryten  users    0   Jun  9 15:56 1998, letters
drwxr-xr-x  2 kryten  users    0   Jun  9 15:56 1998, memos
drwxr-xr-x  2 kryten  users    0   Jun  9 15:55 1998, 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 のテープに含まれているファイルのリストを表示します


$ cpio -civt < /dev/rmt/0
drwxr-xr-x  2 rimmer users 0  Jun  9 16:07 1998, answers
drwxr-xr-x  2 rimmer users 0  Jun  9 16:07 1998, sc.directives
drwxr-xr-x  2 rimmer users 0  Jun  9 16:07 1998, tests
8 blocks

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

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


注意 - 注意 -

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


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

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

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


    $ cpio -icvd < /dev/rmt/n
    

    -i

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

    -c

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

    -v

    取り出されたファイルを ls コマンドと同様の形式で表示する。

    -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 コマンドと同様の形式で表示する。

    "*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

    テープアーカイブを作成し、テープデバイスを指定する。 

    - (ハイフン)

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

    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
6+9 records in
0+1 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 ファイルを複数のフォーマット済みフロッピーディスクにコピーする手順は単純ではありません。


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

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

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

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

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

  3. volcheck コマンドを使用してフロッピーディスクを使用できるようにします。


    $ 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 を実行してフロッピーディスクを使用できるようにします。


    $ volcheck
    
  3. tar コマンドを使用してフロッピーディスク上のファイルのリストを表示します。


    $ tar tvf /vol/dev/rdiskette0/unlabeled
    

例 - フロッピーディスク上のファイルのリストを表示する (tar)

次の例では、フロッピーディスクの上のファイルを表示します。


$ 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 を実行してフロッピーディスクを使用できるようにします。


    $ 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 evalutation.doc
x evaluation.doc, 44032 bytes, 86 tape blocks
$ ls -l

指定した名前のファイルがフロッピーディスクから取り出され、現在の作業ディレクトリに格納されます。

ファイルを複数のフロッピーディスクにアーカイブする方法

大量のファイルやファイルシステムをフロッピーディスクにコピーする場合は、一杯になったフロッピーディスクを別のフォーマット済みフロッピーディスクと交換するように促すプロンプトを表示させることができます。cpio コマンドにはこの機能があります。使用する cpio コマンドはファイルをテープにコピーする場合と同じですが、テープデバイス名ではなくデバイスとして /vol/dev/aliases/floppy0 を指定します。cpio の使用方法については、「ディレクトリ内のすべてのファイルをテープにコピーする方法 (cpio)」を参照してください。

ファイルを別のヘッダー形式でコピーする

SunOS 5.7 の 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.0/4.1 の bar コマンドを使用してアーカイブしたファイルをフロッピーディスクから取り出すには、cpio-H bar オプションを使用します。


注 -

ファイルを取り出すには、-H bar オプションと -i をいっしょに使用しなければなりません。bar ヘッダーオプションを使用してファイルを作成することはできません。


bar ファイルをフロッピーディスクから取り出す方法

  1. ファイルを置きたいディレクトリに移動します。

  2. フロッピーディスクをドライブに挿入します。

  3. volcheck を実行して、フロッピーディスクを使用できるようにします。


    $ volcheck
    
  4. cpio コマンドを使用してフロッピーディスクから bar ファイルを取り出します。

    フロッピーディスク上のすべてのファイルが現在のディレクトリにコピーされます。


    $ cpio -ivH bar < /vol/dev/rdiskette/unlabeled
    

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

この章では、テープドライブを管理する方法について説明します。

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

使用する媒体の選択

通常は、次の媒体を使用して Solaris システムのバックアップを作成します。

フロッピーディスクを使用してバックアップを実行することもできますが、時間がかかり煩雑です。

どの媒体を選択するかは、媒体をサポートする機器とファイルの格納に使用する媒体 (通常はテープ) の可用性によって決まります。バックアップはローカルシステムから実行しなければなりませんが、ファイルはリモートデバイスに書き込めます。

表 38-1 に、ファイルシステムの典型的なバックアップ媒体と、その記憶容量を示します。

表 38-1 媒体の記憶容量

媒体 

容量 [ 容量は、ドライブのタイプとテープに書き込むデータによって異なります。]

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

140 Mbytes (6250 bpi) 

2.5G バイト 1/4 インチ カートリッジ (QIC) テープ 

2.5G バイト 

DDS3 4-mm カートリッジ テープ (DAT) 

12 〜 24G バイト 

14-Gbyte 8-mm カートリッジ テープ 

14G バイト 

DLTTM 7000 1/2 インチ カートリッジ テープ

35 〜 70G バイト 

バックアップデバイス名

バックアップに使用するテープまたはフロッピーディスクドライブに論理デバイス名を与えて指定します。この名前は、「raw」のデバイスファイルが入っているサブディレクトリを指し、ドライブの論理デバイス番号が含まれています。テープドライブの命名規則では、物理デバイス名ではなく論理デバイス名を使用します。表 38-2 は、この命名方式を示しています。

表 38-2 バックアップデバイスの基本的なデバイス名

デバイスの種類 

名前 

テープ 

/dev/rmt/n

フロッピーディスク 

/vol/dev/rdiskette0/unlabeled

通常は、図 38-1 のようにテープドライブデバイスを指定します。

図 38-1 テープドライブデバイス名

Graphic

密度を指定しないと、テープドライブは通常それがサポートする一番高い密度で書き込みます。ほとんどの SCSI ドライブはテープ上の密度やフォーマットを自動的に検出し、それに従って読み取りを実行します。ドライブでサポートされる密度を調べるには、/dev/rmt サブディレクトリを見てください。このディレクトリには、各テープで異なる出力密度をサポートするためのテープデバイスファイルのセットが含まれています。

また、SCSI コントローラは最大 7 台の SCSI テープドライブを持つことができます。

テープドライブのデフォルト密度を指定する

通常は、テープドライブを 0 から n までの論理デバイス番号で指定します。表 38-3 は、デフォルトの密度設定を使用してテープデバイス名を指定する方法を示しています。

表 38-3 テープドライブのデフォルト密度指定

指定するドライブ 

使用する番号 

第 1 のドライブ、巻き戻し 

/dev/rmt/0

第 1 のドライブ、巻き戻しなし 

/dev/rmt/0n

第 2 のドライブ、巻き戻し 

/dev/rmt/1m

第 2 のドライブ、巻き戻しなし 

/dev/rmt/1n

デフォルトでは、ドライブはその「推奨」密度で書き込みますが、これは一般にそのドライブでサポートされる最大密度です。テープデバイスを指定しなければ、コマンドはデバイスでサポートされるデフォルト密度でドライブ番号 0 に書き込みます。

テープドライブに別の密度を指定する

テープを特定の密度しかサポートされないテープドライブが付いたシステムに転送するには、目的の密度で書き込むデバイス名を指定します。表 38-4 は、テープドライブに別の密度を指定する方法を示しています。

表 38-4 テープドライブに別の密度を指定する

指定 

番号 

第 1 のドライブ、巻き戻し、低密度 

/dev/rmt/0l

第 1 のドライブ、巻き戻しなし、低密度 

/dev/rmt/0ln

第 2 のドライブ、巻き戻し、中密度 

/dev/rmt/1m

第 2 のドライブ、巻き戻しなし、中密度 

/dev/rmt/1mn

デバイス名と密度文字については、図 38-1 を参照してください。

テープドライブの状態を表示する

mt コマンドの status オプションを使用すると、テープドライブに関する状態情報を表示できます。 mt コマンドは、/kernel/drv/st.conf ファイルに記述されているすべてのテープドライブの情報を表示します。

テープドライブの状態を表示する方法

  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

次の方法を使用すると、システムを手早くポーリングしてすべてのテープドライブを検査できます。


$ 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 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 本目)、サイト特有の情報を入力します。テープは、磁気を発生させる機器から離れた埃のない安全な場所に保管してください。サイトによっては、アーカイブしたテープを遠隔地の防火キャビネットに保管しています。

各ジョブ (バックアップ) がどの媒体 (テープボリューム) に格納されているかということと、各バックアップファイルがどこに保管されているかを記録したログを作成し、管理する必要があります。