名称
restore, rrestore ― ローカルまたはネットワーク間のファイルシステムの増分復元
構文
/usr/sbin/restore key [name ...]
/usr/sbin/rrestore key [name ...]
説明
restore と rrestore コマンドは、以前に dump または rdump コマンド
( dump(1M) と rdump(1M) を参照) でダンプしたテープを読み取ります。
実行する動作は、 key 引き数で制御できます。 key は文字列で、機能を表す 1 文字と、必要に応じて 1 つまたは複数の機能修飾子を含みます。 name 引き数 (複数使用も可) は、復元するファイルを指定するためのファイル名やディレクトリ名を表します。 h 修飾子
(下記参照) を指定しないと、指定したディレクトリ名は、そのディレクトリ内のファイルおよびサブディレクトリを
(再帰的に) 参照します。
key の機能部分
キーの機能を表す部分には、次の文字のうち 1 つを指定します。
| r | | テープを読み取り、現在のディレクトリにロードします。 r の使用には十分な注意が必要で、完全なダンプテープをクリアファイルシステムに復元する場合、
または全レベルを 0 に復元した後に増分ダンプテープを復元する場合に使用してください。
例えば、以下のとおりです。 /usr/sbin/newfs -F hfs /dev/rdsk/c0t0d0 /usr/sbin/mount /dev/dsk/c0t0d0 /mnt cd /mnt restore r これは、完全なダンプテープを復元する場合の一般的なシーケンスです。
増分ダンプテープを復元するためには、この前にさらに restore または rrestore を実行します。
増分復元パスの間で情報を渡すために、 restore と rrestore がファイルシステムのルートディレクトリにファイル restoresymtab を残しておくことに注意してください。
最後の増分テープが復元されたときにこのファイルを削除してください。 dump または rdump の後に newfs を実行してから restore または rrestore を実行すると、ファイルシステムのサイズを変更できます ( newfs(1M)を参照)。 |
| R | | restore と rrestore では、完全な復元処理
(上記の r を参照) を再開するために、マルチボリュームセット内に特定のテープが必要です。
これによって、 restore と rrestore に対する割り込みと再開が可能になります。 |
| x | | 指定したファイルをテープから取り出します。 指定したファイル名が、テープ上のディレクトリ名と一致し、 h 修飾子を指定しないと、そのディレクトリが再帰的に取り出されます。
所有者、変更時間、およびモードも復元されます (可能な場合)。 引き数にファイルを指定しないと、ルートディレクトリが取り出されます。したがって h を指定しない場合は、テープの全内容が取り出されることになります。 |
| t | | 指定したファイルがテープに存在する場合に、その名称が表示されます。
引き数にファイルを指定しないと、ルートディレクトリの内容が表示されます。したがって h を指定しない場合はテープの全内容が表示されることになります。 |
| s | | restore の次の引き数を、復元するダンプファイルの番号として使用します。
これは、テープに 2 つ以上のダンプファイルがある場合に役立ちます。 |
| i | | このモードでは、ダンプテープから対話形式でファイルを復元することができます。 restore と rrestore は、テープからディレクトリ情報を読み取った後に、シェルによく似たインタフェースをユーザーに提供します。ユーザーはこれによって、ディレクトリツリー内を移動し、取り出したいファイルを選択することができます。
使用可能なコマンドは次のとおりです。 これらのコマンドには引き数が必要で、デフォルトは現在のディレクトリです。 | add [arg] | | 現在のディレクトリ、あるいは引き数で指定したディレクトリを、取り出したいファイルのリストに追加します。
ディレクトリを指定した場合は (コマンド行に h キーを指定しなかった場合)、そのディレクトリのすべての下位ディレクトリが、取り出したいファイルのリスト
(抽出リスト) に追加されます。 抽出リストにあるファイル名には、 ls コマンドでリストしたときに、前に * が付きます。 | | cd [arg] | | 現在のワーキングディレクトリを、引き数で指定したディレクトリに変更します。 | | delete [arg] | | 現在のディレクトリ、あるいは引き数で指定したディレクトリを、取り出したいファイルのリストから削除します。
ディレクトリを指定した場合は (コマンド行に h キーを指定しなかった場合)、そのディレクトリとそのディレクトリのすべての下位ディレクトリが、取り出したいファイルのリスト
(抽出リスト) から削除されます。 ディレクトリ内の大部分のファイルを取り出したいときの便利な方法は、ディレクトリを抽出リストに追加して、その後必要のないファイルを削除する方法です。 | | extract | | 抽出リストに指定された全ファイルをダンプテープから取り出します。 restore と rrestore は、どのボリュームをマウントしたいか聞いてきます。 少数のファイルを取り出す場合には、最後のボリュームから開始して、順に最初のボリュームまで取り出してゆくのが最も速い方法です。 | | help | | 使用可能なコマンドの要約を表示します。 | | ls [arg] | | 現在のディレクトリ、あるいは指定したディレクトリを表示します。
ディレクトリのエントリーには、最後に / が付いて表示されます。抽出用にマークされたエントリーには先頭に * が表示されます。冗長キーを設定した場合には、各エントリーの i ノード番号もリストされます。 | | pwd | | 現在のワークディレクトリの絶対パス名をプリントします。 | | quit | | 抽出リストが空でない場合でも、 restore と rrestore は、ただちに終了します。 | | set-modes | | 抽出リストに追加される全ディレクトリの所有者、モード、およびタイムスタンプを設定します。
テープからは何も取り出されません。 この設定は、復元処理が早期に打ち切られた後のクリーンアップに便利です。 | | verbose | | v 修飾子の機能を切り換えます。
設定した場合は、 ls コマンドがすべてエントリーの i ノード番号をリストするようになります。
また、 restore と rrestore は、取り出された各ファイルに関する情報を表示します。 |
|
関数修飾子
次の機能修飾文字は、必要な機能を選択するための文字に追加して使用します。
| b | | KB 単位でテープのブロックサイズを指定します。 -b オプションを指定していない場合は、 restore と rrestore は、動的にテープのブロックサイズを決定します。 |
| f | | /dev/rmt/0m の代わりのアーカイブファイルの名称を指定します。ファイル名に - を指定すると、 restore は標準入力から読み取ります。
したがって、コマンド行でファイルシステムのダンプと復元を行うには、次のように dump と restore をパイプでつないでください。 dump 0f - /usr | (cd /mnt; restore xf -) rrestore を使用するときにはこのキーを指定しなければなりません。またこのキーの次に指定する引き数は、 マシン:デバイス という形式でなければなりません。 |
| h | | ディレクトリが含んでいるファイルではなく、実際のディレクトリを取り出します。
これによって、ディレクトリが含んでいるファイルではなく、テープからのサブツリー全体の階層的な復元を行わないようにすることができます。 |
| m | | ファイル名ではなく i ノード番号によって取り出します。
これは取り出すファイルが少なく、ファイルの絶対パス名を再指定したくないときに便利です。 |
| v | | restore および rrestore が扱う各ファイルの名称をファイルタイプを前に付けて表示します。
通常、 restore と rrestore は何も出力せずに動作します。 v 修飾子は冗長出力を指定します。 |
| y | | テープエラーが発生したときに restore と rrestore は、操作を打ち切るかどうか聞いてきません。 restore と rrestore は不良テープブロックをスキップし、復元処理を継続しようとします。 rrestore は、テープデバイスにアクセスするためにリモートシステムでサーバ、 /usr/sbin/rmt と /etc/rmt を作成します。 |
診断
正しくないキー文字があると、 restore と rrestore は、警告メッセージを表示します。
restore と rrestore は、読み取りエラーを検出すると、警告メッセージを表示します。 y 修飾子が指定されているか、あるいはユーザーが y と応答すると、 restore と rrestore は、復元処理を継続します。
2 つ以上のテープにわたってダンプが行われる場合には、 restore と rrestore は、ユーザーにテープを交換するか聞いてきます。 x または i 機能が指定されている場合には、 restore と rrestore は、どのボリュームをマウントするかも聞いてきます。
少数のファイルを取り出すときには、まず最後のボリュームから開始して、順に最初のボリュームにまで取り出してゆくのが最も速い方法です。
多くの整合性チェックが行われ、 restore と rrestore によって表示されます。チェックの大部分はメッセージを読めば意味が分かるようになっているか、あるいは
`` 実際には行われません'' です。 次に一般的なエラーを示します。
| filename: not found on tape |
| | | このファイル名は、テープのディレクトリにはリストされていますが、テープ上には見つかりませんでした。
このメッセージは、ファイルを検索中にテープの読み取りエラーが発生した場合、および使用中のファイルシステムに対し作成されたダンプテープを使用した場合に出力されます。 |
| expected next file inumber, got inumber |
| | | 指定されたディレクトリにファイルがリストされていません。
これは使用中のファイルシステムに対し作成されたダンプテープを使用した場合に発生します。 |
| Incremental tape too low |
| | | 増分復元で使用するテープが、前回の増分テープより前に書き込まれたものです。つまりロードされた増分レベルが低すぎます。 |
| Incremental tape too high |
| | | 増分復元で使用するテープが、前回の増分テープが終了した位置から開始しません。つまり、ロードされた増分レベルが高すぎます。 |
| Tape read error while
restoring filename" |
| | | |
| Tape read error while
skipping over inode inumber" |
| | | |
| Tape read error while trying to resynchronize |
| | | テープの読み取りエラーが発生しました。 ファイル名が指定されている場合は、復元したファイルの内容がおそらく部分的に正しくありません。
復元を行う際に、ある i ノードをスキップした場合、あるいはテープを再同期化しようとした場合は、取り出されたファイルは破壊されていませんが、ファイルがテープ上で見つからなかった可能性があります。 |
| Resync restore, skipped num blocks |
| | | テープの読み取りエラーの後に、 restore と rrestore は、それ自体を再同期化する必要があります。
このメッセージは、スキップされたブロック数を示します。 |
警告
restore と rrestore は、使用中のファイルシステムに対し作成されたダンプテープから増分復元しようとすると、正しく処理することができません。
レベル 0 のダンプ ( dump(1M) を参照)
は、復元処理が完了した後に行うべきです。 復元はユーザーコード内で実行するため、i ノードの割当てを制御できません。したがって、ファイルの内容に変更がない場合も、新しい i ノード番号を反映させた新しいディレクトリのセットを得るために、完全ダンプを行わなければなりません。
著者
restore と rrestore は、カリフォルニア大学バークレー校が開発しました。
ファイル
| /dev/rmt/0m | | デフォルトのテープドライブ |
| /tmp/rstdr* | | テープ上のディレクトリを含むファイル |
| /tmp/rstmd* | | ディレクトリの所有者、モード、およびタイムスタンプ |
| ./restoresymtab | | 増分復元間で渡される情報 |
参照
dump(1M), mkfs(1M), mount(1M), newfs(1M), rmt(1M).