RESTORE(8) — NEWS-OS Programmer’s Manual
名称
restore − インクリメンタルファイルシステムの復元
形式
/etc/restore key [ name ... ]
解説
restore は、 dump(8) コマンドでダンプされたテープを読み取ります。 このコマンドの働きは、 key 引数によって制御されます。 key は、最高 1個の機能文字とそれに付随する 1個または複数の 機能修飾子(ある場合)を含む文字列です。 コマンドへの他の引数は、 復元されるファイルを 指定するファイルまたは ディレクトリ名です。 h キー(後述)が指定されていない限り、 ディレクトリ名は、 その下のファイルと(再帰的に)サブディレクトリすべてを表わします。
キーの機能部分は、次の文字のうちの 1つを用いて指定されます。
r テープは読み取られて現ディレクトリへロードされます。 これは軽々しく行うべきではありません。 r キーは、ダンプテープを 空のファイルシステムへ復元する場合、 またはダンプレベル 0 の 復元を行なう場合にだけ使用します。例えば、
/etc/newfs /dev/rhd0h eagle
/etc/mount /dev/rd0h /mnt
cd /mnt
restore r
は、完全なダンプを復元する一般的な例です。 これの先頭で、インクリメンタルダンプを得るために、 もう 1つの restore を実行することができます。 restore は、インクリメンタルな復元の パス間での情報の受渡しのために、 ルートディレクトリにファイル restoresymtable を置くことに注意してください。 このファイルは、 最後のインクリメンタルテープが 復元されたときに削除する必要があります。
newfs(8) と restore があとに続いている dump(8) は、ファイルシステムのサイズを変更するために使用されます。
R restore は、完全な復元の再開のための、 マルチボリュームセットの 個々のテープを要求します (前述の r キー参照)。この R を使用することによって、 restore を一旦中断して、 再開することが可能になります。
x 指定されたファイルがテープから抽出されます。 指定されたファイルが、 以前に内容がそのテープに 書き込まれたディレクトリに一致し、 かつ、 h キーが指定されていない場合には、 そのディレクトリが再帰的に抽出されます。 所有者、修正時刻、 およびモードが(可能であれば)復元されます。 ファイル引数が与えられない場合には、 ルートディレクトリが抽出され、 h キーが指定されていない限り、 それが抽出中のテープの全内容になります。
t 指定されたファイルがテープにあれば、 そのファイルの名前がリストされます。 ファイル引数が与えられない場合には、 ルートディレクトリがリストされ、 h キーが指定されていない限り、 それがリストされているテープの 全内容になります。このtキーは、古い dumpdir プログラム機能に取って代わっていることに 注意してください。
i このモードを使用することによって、 ダンプテープから対話的な復元を行うことができます。 restore は、テープからディレクトリ情報を読み込んでから、 ユーザがディレクトリツリーの中を 移動しながら抽出するファイルを 選択できるようにするインターフェースのようなシェルを 提供します。使用可能なコマンドが 以下に列記されています。 引数を必要とするコマンドの場合、 デフォルトは現ディレクトリになります。
ls [arg] − 現ディレクトリまたは 指定されたディレクトリをリストします。 ディレクトリであるエントリの後ろには “/”が 1個付けられて表示されます。 抽出のためにマークされているエントリの後ろには “∗”が 1個付けられます。 verbose キーがセットされている場合には、 各エントリの iノード番号も表示されます。
cd arg − 現作業ディレクトリを指定された引数に変更します。
pwd − 現作業ディレクトリのフルパス名を表示します。
add [arg] − 現ディレクトリまたは指定された引数が、 抽出されるファイルのリストに追加されます。 ディレクトリが指定された場合には、(コマンド行で h キーが指定されていない限り) そのディレクトリおよび そのすべての子孫が抽出リストに追加されます。 抽出リストにあるファイルは、 ls で表示される際、その後ろに“∗”が付けられます。
delete [arg] − 現ディレクトリまたは指定された引数が、 抽出されるファイルのリストから削除されます。 ディレクトリが指定された場合には、(コマンド行で h キーが指定されていない限り) そのディレクトリおよび そのすべての子孫が抽出リストから削除されます。 1つのディレクトリからその大部分のファイルを抽出する場合には、 まずそのディレクトリを抽出リストに追加してから、 不必要なファイルだけを削除すると効率的です。
extract − 抽出リストにあるすべてのファイルを ダンプテープから抽出します。 restore は、ユーザがどのボリュームを マウントしたいのかを尋ねてきます。 数少ないファイルを抽出するための手早い方法は、 最後のボリュームから開始して、 順に前のボリュームへ進むことです。
setmodes − 抽出リストに追加されたすべてのディレクトリは、 それらの所有者、モード、およびタイムがセットされます。 テープからは、これらは抽出されません。 これは、復元が完了前に中断されたあとで、一掃する場合に有用です。
verbose − v キーの働きを交互にオン/オフに切り替えます(トグル)。 セットされているときには、 v (verbose)キーは、 ls コマンドにすべてのエントリの iノード番号をリストさせます。また、 v キーは restore にも抽出の進行に合わせて 各ファイルに関する情報を表示させます。
help − 使用できるコマンドの要約をリストします。
quit − (抽出リストが空でなくても) restore は即時に終了します。
希望する機能を選択する文字のほかに、 次のキャラクタを使用することができます。
b 次にくる restore への引数がテープのブロックサイズ(Kバイト) として使用されます。−b オプションが指定されない場合、 restore は、テープのブロックサイズを動的に決めます。
f 次にくる restore への引数が、/dev/rmt? の代わりに アーカイブの名前として使用されます。 ファイルの名前が“−”である場合には、 restore は標準入力から読み取ります。 例えば、次のコマンドでは、パイプラインで dump(8) と restore を使用してファイルシステムのダンプと 復元を行うことができます。
dump 0f − /usr | (cd /mnt; restore xf −)
v 通常、 restore は表示を行わずに仕事をします。 v (verbose)キーは、 restore に処理する各ファイルの名前と その前にそれぞれのファイルのタイプを表示させます。
y restore は、テープエラーを検出した場合でも、 復元を中断すべきかどうかを尋ねてきません。 restore は、常に不良テープブロックはスキップして 最善を尽くして処理を継続していきます。
m restore は、ファイル名ではなく、 iノード番号を用いて抽出を行います。 これは、数少ないファイルを抽出し、 かつ、ファイルに対する完璧なパス名の再生成を 回避したい場合にだけ役立ちます。
h restore は、ファイルではなく、 実際のディレクトリを抽出します。 これは、テープから階層構造の復元は行なわれません。
s 次にくる restore への引数は、マルチファイルダンプテープにある ファイルを選択する数字です。 ファイルのナンバリングは、1 からスタートしています。
診断
誤ったキーキャラクタについて注意します。
リードエラーを検出した場合に注意します。 y が指定されている場合、またはユーザが“y”で応答した場合には、 restore は復元の継続を試みます。
ダンプが複数のテープに渡っている場合、 restore はユーザにテープの交換を要求してきます。 x または i キーが指定されている場合は、 restore は、ユーザがどのボリュームをマウントしたいのかも 尋ねてきます。少数のファイルを抽出する最も速い方法は、 最後のボリュームから開始して順に 前のボリュームをマウントすることです。
restore によって表示される可能性のある多数のチェックがあります。 大部分のチェックは自明であるか、 または表示されることはありません。 一般的なエラーは以下に示されています。
Converting to new file system format.
古いファイルシステムから作成されたダンプテープがロードされた。 これは新しいファイルシステムのフォーマットへ自動的に変換される。
<filename>: not found on tape
指定されたファイル名が、 テープディレクトリにリストされていたが、 テープ上にはなかった。 これは、ファイルを探しているときの テープリードエラーによるもので、 アクティブなファイルシステムに対して作成された ダンプテープを使用したことに起因している。
expected next file <i−number>, got <i−number>
ディレクトリにリストされていなかったファイルが現れた。 これは、アクティブなファイルシステムに 対して作成されたダンプテープを使用した場合に起こり得る。
Incremental tape too low
インクリメンタルな復元を行うときに、 前回のインクリメンタルテープより以前に書き込まれたテープ、 インクリメンタルレベルの低すぎるテープがロードされた。
Incremental tape too high
インクリメンタルな復元を行うときに、 前回のインクリメンタルテープでカバーした 範囲から始まっていないテープ、 インクリメンタルレベルの高すぎるテープがロードされた。
Tape read error while restoring <filename>
Tape read error while skipping over inode <i−number>
Tape read error while trying to resynchronize
テープリードエラーが発生した。ファイル名が指定されている場合には、 そのファイルの内容が部分的に読み取れないようになっている可能性がある。 iノードがスキップされている、またはテープが再同期を試行している場合には、 テープ上でファイルが見つからないこともあるが、 抽出されたファイルはいずれもその原形は損なわれていない。
resync restore, skipped <num> blocks
テープリードエラーのあと、 restore はそれ自身を再同期化しなければならないこともある。 このメッセージは、スキップされたブロックの数を示す。
関連ファイル
/dev/rmt? デフォルトのテープドライブ
/tmp/rstdir∗ テープ上のディレクトリが収められているファイル
/tmp/rstmode∗ ディレクトリの所有者、モード、および日時スタンプ
./restoresymtable インクリメンタルな復元の間で受渡しされる情報
関連事項
rrestore(8C), dump(8), newfs(8), mount(8)
バグ
restore は、アクティブなファイルシステムに対して 作られたダンプテープからインクリメンタルな 復元を行うときには、グチャチャになってしまうことがあります。
レベル 0 のダンプは、完全復元後に行わなくてはなりません。 restore はユーザコードで実行するので、 iノードの割当てを制御することはできません。 したがって、ファイルの内容が変化していなくても、 新しい iノード番号体系を反映している 1組の新しいディレクトリを得るために、 完全復元を行わなければなりません。
NEWS-OSRelease 4.1C