Go to main content
マニュアルページ セク ション 1M: シ ステム管理コマン ド

印刷ビューの終了

更新: 2016年12月6日
 
 

ufsrestore(1M)

名前

ufsrestore - ファイルシステムの増分リストア

形式

/usr/sbin/ufsrestore i | r | R | t | x [abcdfhlmostvyLT] 
     [archive_file] [factor] [dumpfile] [n] [label] 
     [timeout] [filename]...

説明

ufsrestore ユーティリティーは、ufsdump コマンドで作成されたバックアップメディアからファイルを復元します。ufsrestores の動作は、キー (key) 引数によって制御されます。key は、正確には 1 個の 機能文字 (irRt、または x) と 0 個以上の機能修飾子 (文字) から成ります。key 文字列にはスペース文字は含まれません。機能修飾子に対する引数は key 文字列で使用した順序で コマンド行に指定します。

filename 引数は、コマンド行に指定されるか、または対話型コマンドの引数として指定され、x および t 機能によってシェルの glob パターンとして扱われます。それらのパターンに一致するすべてのファイルまたはディレクトリが選択されます。メタキャラクタ *?、および [ ] は、それらがコマンド行で指定された場合にこのシェルから保護される必要があります。これらのメタキャラクタを引用符で囲ってファイル名の中で明示的に一致させる方法はありません。

一時ファイル rstdir* および rstmode* はデフォルトで /tmp に配置されます。環境変数 TMPDIR が空でない値で定義されている場合は、/tmp の代わりにその場所が使用されます。

オプション

機能文字

次に示す機能文字のいずれか (1 つのみ) を指定する必要があります。ix、および r は空のディレクトリにファイルを復元するためのものです。R 機能は生成されたディレクトリへの復元を目的としています。

i

対話型。ufsrestore は、メディアからディレクトリ情報を読み取ったあと、ダンプファイルのディレクトリ階層内を参照して、抽出する個々のファイルを選択できる、シェルのようなインタフェースを呼び出します。復元には x (下記参照) と同じセマンティクスがあります。使用できるコマンドについては、下記の「対話型コマンド」を参照してください。

r

再帰。r 機能は、空のディレクトリとレベル 0 のダンプから始めて、現在の作業用ディレクトリを基準にして、ダンプが行われたときの状態とまったく同じようにファイルシステムを再作成します。フルダンプの上に増分ダンプを復元するために使用される情報 (restoresymtable など) も含まれます。通常、ufsrestore はより上のレベルのダンプ (0、1、...、9) ごとに 1 回ずつ、複数回実行されます。レベル 0 とそれに続く増分ダンプとの間で削除されたファイルは、最終復元後は存在しません。ファイルシステムを完全に復元するには、r 機能を使用してレベル 0 のダンプを復元し、増分ダンプごとに繰り返します。この機能文字は新しいファイルシステム (newfs(1M) で作成されたもの) 上への完全な復元を目的としていますが、そのファイルシステムにバックアップメディア上にないファイルが含まれている場合、それらは保持されます。

R

復元を再開します。r モードの ufsrestore が中断された場合、この機能は復元を再開させるボリュームを要求し、それが中止されたところから復元を続行します。それ以外は r と同じです。

t

内容リスト。メディア上にある各 filename を一覧表示します。filename 引数が指定されていない場合は、ルートディレクトリが一覧表示されます。これにより、h 機能修飾子が有効でなければ、メディア上のすべてのファイルの一覧が表示されます。この内容リストは、メディアまたは指定されたアーカイブファイル (a 機能修飾子を使用している場合) から取得されます。a 機能修飾子は、x および r 機能文字と相互に排他的です。

x

指定されたファイルをメディアから抽出します。ファイルは、元のファイルシステムに格納されていたのと同じ相対的位置に復元されます。

filename 引数が、メディア上に内容が書き込まれているディレクトリと一致し、h 修飾子が有効でない場合、現在のディレクトリ (空と予想される) を基準にして、そのディレクトリが再帰的に抽出されます。ファイルごとに、所有者、変更時間、およびモードが復元されます (可能な場合)。

filename 引数を省略するか、または . を指定した場合は、ルートディレクトリが抽出されます。これにより、h 修飾子が有効でなければ、テープ全体が抽出されます。x 機能を使用すると、既存のファイルは上書きされ、ufsrestore によって上書きされたファイルの名前が表示されます。現在実行中の実行可能ファイルを上書きすると、不適切な結果が生じる可能性があります。

x オプションは、部分的なファイルシステムダンプを復元するために使用します (それらが明らかにファイルシステム全体でない場合)。

機能修飾子

a archive_file

メディアではなく archive_file から内容リストを読み取ります。この機能修飾子を ti、または x 機能文字と組み合わせて使用すると、メディアをマウントしなくてもファイルがメディア上にあるかどうかを確認できます。x および対話型 (i) 機能文字とともに使用すると、ファイルを抽出する前にそれらが含まれているボリュームが要求されます。

b factor

ブロック化因数。テープの読み取り用のブロック化因数を指定します。可変長の SCSI テープデバイスの場合、データがデフォルトのブロック化因数で書き込まれていないかぎり、最低でもテープの書き込みに使用されたのと同じ大きさのブロック化因数を使用する必要があります。それ以外の場合はエラーが生成されます。テープブロックが 512 バイトであることに注意してください。最大のブロック化因数については、特定のテープドライバのマニュアルページを参照してください。

c

4.1BSD 形式のメディアの内容を新しい ufs ファイルシステム形式に変換します。

d

デバッグ。デバッグ出力をオンにします。

f dump_file

復元元のファイルとして /dev/rmt/0 ではなく dump_file を使用します。通常、dump_file にはテープドライブを指定します。dump_file を「-」として指定した場合、ufsrestore は標準入力から読み取りを行います。これにより、ufsdump(1M) および ufsrestore をパイプライン内で使用してファイルシステムをコピーできます。

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

このファイルの名前の形式が machine:device である場合、rmt(1M) を使用してネットワーク経由で指定のマシンから復元が行われます。ufsrestore は通常 root によって実行されるため、ローカルマシンの名前はリモートマシンの /.rhosts ファイルに含まれている必要があります。このファイルが user@machine:device として指定されている場合、ufsrestore はリモートマシン上で指定のユーザーとして実行しようとします。指定のユーザーは、ローカルマシンからこのコマンドを呼び出してリモートマシンにアクセスできるようにする .rhosts ファイルをリモートマシン上に持っている必要があります。

h

実際のディレクトリ (それによって参照されるファイルではなく) を抽出または一覧表示します。これにより、テープからすべてのサブツリーの階層的な復元が行えなくなります。

l

自動ロード。復元が完了する前にテープの終わりに達した場合、ドライブをオフラインにして、テープドライブがふたたび使用できるようになるまで最大 2 分間 (デフォルト、T 機能修飾子を参照) 待ちます。これにより、自動ロード (スタックローダー) テープドライブに新しいテープをロードする機会が与えられます。ドライブが 2 分以内に準備できた場合は、続行します。そうでない場合は、別のテープを要求して待ちます。

L label

ダンプファイルのヘッダーに表示されるラベル。それらのラベルが一致しない場合、ufsrestore は診断を発行して終了します。テープラベルは ufsdump テープ形式に固有のものであり、IBM または ANSI 標準のテープラベルとの類似性はまったくありません。

m

すべてのパス名を再生成しなくても済むように、ファイル名ではなく i ノード番号によって抽出します。それらのファイルが、ダンプ階層内の位置に関係なく現在のディレクトリに復元され、その i ノード番号を使って名前が変更されます。これは、いくつかのファイルのみが抽出される場合に役立ちます。

o

オフライン。復元が完了したか、またはメディアの終わりに到達した場合にドライブをオフラインにして、テープを巻き戻します。一部の自動ロードの 8 ミリドライブの場合、テープは自動的にドライブから取り外されます。

s n

同じテープ上に複数のダンプファイルが存在する場合に、n 番目のファイルまでスキップします。次に例を示します。


example# ufsrestore xfs /dev/rmt/0hn 5

ダンプのボリューム 1 を読み取るときに、テープの 5 番目のファイルに位置決めされます。ダンプが複数のボリュームにわたる場合は、「s n」値が指定されていても、最初のボリュームを除くすべてのボリュームが位置 0 から始まるものと想定されます。

s n」が指定されている場合、バックアップメディアは BOT (テープの先頭) にある必要があります。それ以外の場合、絶対位置決めを使用するのではなく、n -1 ファイル分だけテープを前にスキップすることによって位置決めが行われるため、内容リストを読み取る最初の位置決めに失敗します。これは、一部のデバイスの絶対位置決めに非常に長い時間がかかるためです。

T timeout [hms]

autoload コマンドが完了するのを待機する時間を設定します。l 機能修飾子も指定されていないかぎり、この機能修飾子は無視されます。デフォルトのタイムアウト時間は 2 分です。時間の単位は、末尾の h (時間)、m (分)、または s (秒) で指定できます。デフォルトの単位は分です。

v

冗長。ufsrestore は復元する各ファイルの名前と i ノード番号をそのファイルタイプのあとに表示します。

y

テープに障害が発生した場合に復元を強制的に中止させるかどうかを尋ねません。ufsrestore は不良のテープブロックをスキップして、できるだけ続行しようとします。

対話型コマンド

ufsrestore は、i 機能文字を使って呼び出されると、対話型モードに入ります。対話型コマンドはシェルに似ています。それらのコマンドが引数を受け入れる場合、デフォルトは現在のディレクトリになります。対話型オプションは次のとおりです。

add [filename]

指定されたファイルまたはディレクトリを、抽出するファイルのリストに追加します。ディレクトリを指定した場合は、そのディレクトリとそれのファイルが (再帰的に) 抽出リストに追加されます (h 修飾子が有効な場合を除く)。

cd directory

directory (ダンプファイル内) に移動します。

delete [filename]

現在のディレクトリ、あるいは指定されたファイルまたはディレクトリを、抽出するファイルのリストから削除します。ディレクトリを指定した場合は、そのディレクトリとそれのすべての子孫が抽出リストから削除されます (h 修飾子が有効な場合を除く)。多数のファイルをディレクトリから抽出するもっとも都合のよい方法は、そのディレクトリを抽出リストに追加したあとで、除外する特定のファイルを削除することです。

extract

抽出リスト内のすべてのファイルをダンプメディアから抽出します。ufsrestore は、ユーザーがマウントするボリュームを尋ねます。少数のファイルを抽出する最速の方法は、最後のボリュームから始めて、最初に向かって処理を進めることです。コマンド行に「s n」を指定した場合は、ボリューム 1 が、その読み取り時にファイル n に自動的に位置決めされます。

help

使用可能なコマンドのサマリーを表示します。

ls [directory]

directory または現在のディレクトリ (「.」(ピリオド) で表される) 内のファイルを一覧表示します。ディレクトリには「/」 (スラッシュ) が付けられます。抽出対象としてマークされたエントリには、接頭辞「*」 (アスタリスク) が付けられます。冗長オプションが有効な場合は、i ノード番号も表示されます。

marked [directory]

ls に似ていますが、抽出対象としてマークされたファイルのみが一覧表示されます。

pager

ls および marked コマンドからの出力のページ設定を切り替えます。PAGER 環境変数によって定義されたページャーが使用され、その環境変数が定義されていない場合は more(1) が使用されます。PAGER 環境変数には、ページ設定プログラム用の引数をスペースで区切って含めることができます。

pwd

現在の作業用ディレクトリのフルパス名を出力します。

quit

抽出リストが空になっていなくても、ufsrestore はすぐに終了します。

setmodes

プロンプト: set owner/mode for `.' (ピリオド) が表示されます。y (yes の意味) を入力すると、ファイルが復元される現在のディレクトリ「.」(ピリオド) のモード (アクセス権、所有者、時間) が、ダンプ元となったファイルシステムのルートディレクトリのモードに等しく設定されます。通常、これはファイルシステム全体を復元する場合、または個々のファイルをそれらのダンプ元と同じ場所に復元する場合に必要となるものです。n (no の意味) を入力すると、現在のディレクトリのモードは変わりません。通常、これはダンプの一部をそれらのファイルのダンプ元以外のディレクトリに復元する場合に必要となるものです。

setpager command

デフォルトや環境から継承されるものではなく、出力のページ設定に使用するコマンドを設定します。command 文字列には、コマンドそのものに加えて引数も含めることができます。

verbose

v 修飾子のステータスを切り替えます。v が有効になっている間、ls コマンドはすべてのエントリの i ノード番号を一覧表示し、ufsrestore は各ファイルが抽出されるときにそれに関する情報を表示します。

what

メディア上のダンプヘッダーを表示します。

オペランド

次のオペランドがサポートされています。

filename

ディスクに復元されるファイル (またはディレクトリ) のパス名を指定します。h 機能修飾子も使用している場合を除いて、ディレクトリ名はそれに含まれるファイル、および (再帰的に) そのサブディレクトリとそれらに含まれるファイルを指します。filenamex または t 機能文字のどちらかに関連付けられ、最後に指定する必要があります。

使用法

2G バイト (231 バイト) 以上あるファイルを検出した場合の ufsrestore の動作については、largefile(5) を参照してください。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

エラーが発生した。冗長なメッセージが表示されます。

環境変数

PAGER

出力をページ設定するためのフィルタとして使用するコマンド。これを使って使用されるオプションを指定することもできます。デフォルトは more(1) です。

TMPDIR

一時ファイル用のディレクトリを選択します。環境で定義されていない場合はデフォルトで /tmp になります。

ファイル

/dev/rmt/0

デフォルトのテープドライブ

$TMPDIR/rstdir*

テープ上のディレクトリが含まれるファイル

$TMPDIR/rstmode*

ディレクトリの所有者、モード、およびタイムスタンプ

./restoresymtable

増分リストア間で渡された情報

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

more(1), mkfs(1M), mount(1M), rmt(1M), ufsdump(1M), ufsdump(4), attributes(5), largefile(5)

診断

ufsrestore は、不正なオプション文字に対してクレームを出します。

読み取りエラーによってクレームが発生します。y を指定した場合、またはユーザーが y と応答した場合、ufsrestore は続行しようとします。

ダンプが複数のテープにわたる場合、ufsrestore はユーザーにテープを交換するよう求めます。x または i 機能文字が指定されている場合、ufsrestore はユーザーがマウントするボリュームも尋ねます。s 修飾子を指定した場合、ボリューム 1 がマウントされると、それは指定されたファイルに自動的に位置決めされます。

ufsrestore で一覧表示できる整合性検査は多数あります。ほとんどの検査は一目瞭然であるか、または「起こりえない」可能性があります。一般的なエラーは下記のとおりです。

Converting to new file system format (新しいファイルシステム形式に変換しています)

古いファイルシステムから作成されたダンプテープがロードされました。それは新しいファイルシステム形式に自動的に変換されます。

filename: not found on tape (filename がテープ上に見つかりません)

指定されたファイル名がテープディレクトリ内に表示されましたが、テープ上に見つかりませんでした。これは、ファイルの検索中、アクティブなファイルシステムで作成されたダンプテープの使用中、または r 機能を使用した部分ダンプの復元中のテープの読み取りエラーが原因で発生します。

expected next file inumber, got inumber (次のファイル inumber が期待されましたが、inumber が指定されました)

ディレクトリ内に表示されなかったファイルが表示されました。これは、アクティブなファイルシステムで作成されたダンプテープの使用時に発生することがあります。

Incremental tape too low (増分テープのレベルが低すぎます)

増分リストアの実行時に、前回の増分テープより前に書き込まれたか、または増分レベルが低すぎるテープがロードされました。

Incremental tape too high (増分テープが高すぎます)

増分リストアの実行時に、カバレージが前回の増分テープが中止された場所で開始されていないか、または増分レベルが高すぎるテープがロードされました。

media read error: invalid argument (メディアの読み取りエラー: 引数が無効です)

読み取り用に指定されたブロック化因数が、データの書き込みに使用されたブロック化因数よりも小さくなっています。

Tape read error while restoring (復元中にテープの読み取りエラーが発生しました)
Tape read error while skipping over inode number (i ノード番号のスキップ中にテープの読み取りエラーが発生しました)
Tape read error while trying to resynchronize (再同期の試行中にテープの読み取りエラーが発生しました)
A tape read error has occurred (テープの読み取りエラーが発生しました)

ファイル名が指定されている場合は、その内容が部分的に間違っている可能性があります。i ノードがスキップされている場合、またはテープの再同期が試行されている場合は、ファイルがテープ上に見つからなくても、抽出されたファイルが破損していることはありません。

resync ufsrestore, skipped num (ufsrestore を再同期し、num だけスキップしました)

テープの読み取りエラーのあとで、ufsrestore はそれ自身を再同期することが必要な場合があります。このメッセージには、スキップされたブロック数が表示されます。

Incorrect tape label. Expected `foo', got `bar'. (テープラベルが正しくありません。「foo」が期待されましたが、「bar」が指定されました。)

L オプションが指定され、その値がダンプファイルのヘッダーに記録されたものと一致しませんでした。

ufsrestore は、アクティブなファイルシステムで作成されたダンプテープから増分リストアを行うときに混乱する可能性があります。

フルリストア後に「レベル 0」のダンプを行う必要があります。ufsrestore はユーザーモードで実行されるため、i ノードの割り当てを制御できません。これは、ufsrestore によってファイルの内容は変更されないが、ファイルの再配置は行われることを意味します。したがって、フルダンプを行なって、新しいファイル位置を反映する新しいディレクトリセットを取得し、その後の増分ダンプが正しくなるようにする必要があります。