スポンサーリンク

RESTORE(8) FreeBSD システム管理者マニュアル RESTORE(8)

名称

restore, rrestore − dump コマンドで作ったバックアップからファイルやファイ ルシステムをリストアする

書式

restore −i [−dhmNuvy] [−b blocksize] [−f file | −P pipecommand] [−s fileno]

restore −R [−dNuvy] [−b blocksize] [−f file | −P pipecommand] [−s fileno]

restore −r [−dNuvy] [−b blocksize] [−f file | −P pipecommand] [−s fileno]

restore −t [−dhNuvy] [−b blocksize] [−f file | −P pipecommand] [−s fileno] [file ...]

restore −x [−dhmNuvy] [−b blocksize] [−f file | −P pipecommand] [−s fileno] [file ...]

rrestorerestore の別名です。

(4.3BSD 形式のオプションは後方互換性のために実装されていますが、ここでは 説明していません。)

解説

restore ユーティリティは dump(8) と逆の動作を行います。ファイルシステムの 完全なリストアを行うには、まず、フルバックアップのリストアから始め、続い てその上にインクリメンタルバックアップをリストアします。フルまたは部分 バックアップから、単一のファイルやディレクトリの部分ツリーのみをリストア することも可能です。 restore ユーティリティは、ネットワークを介した動作も 可能です。これを行うには、以下で説明されている −f−P フラグを参照して ください。コマンドに与えるその他の引数は、リストアされるファイルを指定す るためのファイルやディレクトリ名です。 −h フラグを指定していない限り (下 記参照)、ディレクトリ名を指定することで、そのディレクトリ中のファイルや ( 再帰的に) サブディレクトリを指定することになります。

以下のいずれか 1 つ (複数指定不可) のフラグが必要です:

       −i

バックアップからの対話的なリストアを行います。バックアップから ディレクトリ情報を読み取ると、 restore はユーザに展開すべきファイ ルを選択させるために、シェルに似たインタフェースでコマンドを受け 付けます。以下のコマンドが使用可能です。引数が必要なコマンドにお いて引数を省略すると、デフォルトとしてカレントディレクトリが使わ れます。

add [arg]
カレントディレクトリまたは指定した引数のファイルを、 リストアするファイルのリストに付け加えます。ディレク トリ名を指定した場合には、そのディレクトリの下のすべ てのファイルが展開リストに加えられます (コマンドライ ンに −h フラグが指定されなかった場合)。 ls でファイル のリストを表示するときに、展開リストに含まれている ファイルの頭には ‘‘*’’ がつけられています。

cd arg
カレントディレクトリを指定したディレクトリに移動しま す。

delete [arg]
カレントディレクトリまたは引数で指定したファイル名の ファイルを、展開するファイルのリストから削除します。 ディレクトリ名を指定した場合には、そのディレクトリの 下のすべてのファイルが展開リストから削除されます (コ マンドラインに −h フラグが指定されなかった場合)。ディ レクトリ中のほとんどのファイルを展開する場合には、 ディレクトリ全体を展開リストに加えたあとで不要なファ イルだけを削除するのが一番便利なやりかたです。

extract
展開ファイルリストにあるすべてのファイルをバックアッ プから展開します。 restore ユーティリティは、どのボ リュームをマウントしたいかをユーザにたずねます。数個 のファイルのみを展開するのにもっとも早い方法は、最終 ボリュームから開始して最初のボリュームへと戻ることで す。

help
利用できるコマンドの簡単な説明を表示します。

ls [arg]
カレントディレクトリまたは指定されたディレクトリのリ ストを表示します。ディレクトリ名の後ろには ‘‘/’’ が付 け加えられ、展開リストにあるファイルの前には ‘‘*’’ が 加えられます。冗長フラグがセットされていた場合には、 各ディレクトリエントリにあわせて inode 番号も表示され ます。

pwd
カレントディレクトリのフルパス名を表示します。

quit
即座に中断します。展開リストに何かファイルがあったと しても終了します。

setmodes
展開リストにあるすべてのディレクトリの所有者、モー ド、時刻がセットされるのみで、バックアップからはなに も展開されません。これは、リストアを途中で中断してし まった時の後始末に有用です。

verbose
冗長フラグ −v の意味を反転します。冗長フラグがセット されている場合には、 ls コマンドは、すべてのエントリ に対してその inode 番号を表示します。また、 restore コマンドは、ファイルを展開するたびにその情報を表示し ます。

what
ダンプヘッダ情報を表示します。これには、日付、レベ ル、ラベル、ダンプの元となったファイルシステムとホス トが含まれます。

−R
フルリストアを再開するために、マルチボリュームのテープのうち特定 のものをリストアすることを要求します (下記 −r フラグを参照)。これ はリストア動作を中断したときに使われます。

−r
リストア (ファイルシステムの再構築) を行います。レベル 0 バック アップのリストアの前には、リストア先となるファイルシステムは newfs(8) で初期化しておき、マウントして、そのディレクトリへ cd(1) で移動しておく必要があります。レベル 0 バックアップのリストアに成 功したら、 −r フラグを指定することで、それに加えて必要なインクリ メンタルバックアップをリストアすることができます。 −r フラグは対 話的なファイルリストアを行わないため、注意して扱わないと損害を与 えることがあります (ディスクは言うに及ばず、精神的にも)。次のよう に実行します:

newfs /dev/da0s1a
mount /dev/da0s1a /mnt
cd /mnt

restore rf /dev/sa0

restore は、インクリメンタルリストアのための情報を、ルートディレ クトリの restoresymtable に記録します。このファイルは、すべての増 分をリストアしたあとで削除すべきです。

restore ユーティリティを、 newfs(8)dump(8) と組み合わせること で、ファイルシステムのサイズやブロックサイズといったパラメータを 変更するのに使うことができます。

       −t

指定したファイル名のファイルがバックアップ中にあれば、その名前を 表示します。ファイル名引数がない場合にはルートディレクトリを表示 するため、 −h フラグを指定していない限り、バックアップ中のすべて のファイルを表示することになります。 −t フラグは、古くからあった dumpdir(8) のかわりの機能を持つことに注意してください。

−x
メディアから、指定したファイルが読み出されます。指定ファイルが ディレクトリで、そのディレクトリの内容がバックアップ中に存在し、 かつ −h フラグが指定されていないときには、ディレクトリの内容が再 帰的に展開されます。 (可能であれば) ファイルの所有者、修正日時、 モードもリストアされます。もし引数が与えられていなければルート ディレクトリを展開するため、 −h フラグを指定していない限り、結果 的にバックアップ全体が展開されます。

以下の追加オプションを指定可能です:

−b blocksize
ダンプレコードあたりのキロバイト数です。 −b が指定されないとき は、 restore はメディアのブロックサイズを動的に求めようとします。

−d
冗長なデバッグ出力を標準エラーへ送ります。

−f file
バックアップを file から読み込みます; file は、 /dev/sa0 (テープ ドライブ) や /dev/da1c (ディスクドライブ) といったスペシャルデバ イスファイル、通常のファイル、 ‘’ (標準入力) のいずれかです。 ファイル名が ‘‘host:file’’ や ‘‘user@host:file’’ という形式である 場合は、 restorermt(8) を用いて指定したファイルを指定のホスト から読み取ります。

−P pipecommand
pipecommand
で定義された sh(1) スクリプト文字列をバックアップの各 ボリュームに対する入力として実行するために popen(3) を使います。 この子のパイプラインの 標準出力 (/dev/fd/1) は restore の入力スト リームにリダイレクトされ、環境変数 RESTORE_VOLUME には現在読み込 まれているボリューム番号が設定されます。ボリュームを 1 つロードす る毎に、それがテープドライブ 1 つであるかのように、 pipecommand スクリプトが開始されます。

−h
ディレクトリ名を指定された場合に、その中のファイルではなく、ディ レクトリそのものを展開するようにします。これによって、ダンプから ディレクトリのサブツリーを階層的に展開してしまうことを防ぎます。

−m
展開を、ファイル名ではなく inode 番号によって行います。これは数個 のファイルのみを展開したい場合で、ファイルの完全なパス名を再生す ることを防ぎたい場合に有用です。

−N
通常通り展開しますが、実際には変更をディスクへ書き込みません。ダ ンプメディアの完全性の確認や他のテスト目的に使用可能です。

−s fileno
マルチファイルテープの fileno から読みます。ファイル番号は 1 から 始まります。

−u
特定のタイプのファイルを作成する時に、リストア先ディレクトリに既 に同名のファイルが存在する場合には、リストアは警告診断を生成し得 ます。この動作を抑制するために、 −u (アンリンク) フラグを指定する と、リストアは古いエントリを削除してから新しいエントリを作成しよ うとします。

−v
普通、 restore は何も表示せずにリストア動作を行います。 −v (verbose, 冗長) フラグを指定すると、扱うファイルのタイプとファイ ル名が表示されます。

−y
エラーが発生したときに、リストア動作を中断するかどうかの問い合わ せを行いません。これによって、不良ブロックをスキップして、可能な かぎり動作を継続します。

環境変数

       TAPE

バックアップを読み取るデバイス。

TMPDIR
一時ファイルが作成されるディレクトリの名前。

関連ファイル

       /dev/sa0

デフォルトのテープドライブ
/tmp/rstdir*
テープ中のディレクトリを保持するファイル
/tmp/rstmode*
ディレクトリの所有者、モード、タイムスタンプ
./restoresymtable
インクリメンタルリストア間で渡される情報

診断

リードエラーが発生すると restore ユーティリティはメッセージを表示します。 もし、 −y が指定されているか、あるいはユーザが ‘y’ の応答をしたならば、 restore はリストアを続行しようとします。

バックアップが 1 巻より多くのテープボリュームに格納されていたならば、 restore は次のボリュームをマウントすべき時点でそれをユーザに知らせます。 もし、 −x あるいは −i フラグが指定されていたら、 restore は、ユーザがマウ ントしたいのはどのボリュームであるかを問い合わせます。少数のファイルを最 も早く展開する方法は、最終ボリュームから開始して、最初のボリュームへ向け て作業を進めることです。

restore は数多くの一貫性検査を行っていて、それを表示します。ほとんどの検 査結果の表示は自明であるか、あるいは「決して起こらない」ものです。良くあ るエラーを以下に示します。

       Converting to new file system format.

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

<filename>: not found on tape
指定したファイル名はテープのディレクトリには記録されていました が、テープのなかに本体が見当たりませんでした。このような事態が起 きるのは、ファイルを探している間にテープのリードエラーが発生した 場合や、稼働中のファイルシステムにおいて作成したダンプテープを 使った場合です。

expected next file <inumber>, got <inumber>
ディレクトリに記録されていなかったファイルが示されます。稼働中の ファイルシステムにおいて作成したダンプを使った場合に発生すること があります。

Incremental dump too low
インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタ ルダンプよりも以前に書かれたものであったり、増分レベルが低すぎる ダンプがロードされた場合に表示されます。

Incremental dump too high
インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタ ルダンプの続きの範囲から開始していなかったり、あるいは増分レベル が高すぎるダンプがロードされた場合に表示されます。

Tape read error while restoring <filename>
Tape read error while skipping over inode <inumber>
Tape read error while trying to resynchronize
テープ (あるいはその他の媒体) のリードエラーが発生しました。ファ イル名が表示されていたならば、その内容はおそらく部分的に不正なも のになっているでしょう。もし inode がスキップされたり、テープの resynchronize (再同期) が試みられていたならば、展開されたファイル には問題はありません。しかし、テープ上からいくつかのファイルを見 付けることができないかもしれません。

resync restore, skipped <num> blocks
ダンプのリードエラーが発生した後に、おそらく restore は自分自身で 再同期をとらなければなりません。このメッセージはスキップしたブ ロックの個数を表示します。

関連項目

dump(8), mount(8), newfs(8), rmt(8)

歴史

restore ユーティリティは 4.2BSD で登場しました。

バグ

使用中のファイルシステムから作成されたダンプからインクリメンタルリストア を行うと、 restore ユーティリティが誤動作を起こすことがあります。

フルリストアの終了後にはレベル 0 ダンプを行う必要があります。 restore は ユーザコードで動作するので、inode の割り当てを制御することができません。 したがって、ファイルの内容が変更されていない場合でも、新しい inode 割り当 てを新しいディレクトリ集合に反映させるためには、フルダンプを行わなければ なりません。

ネットワークを介したリストアを行う場合、 root 権限で restore を実行する必 要があります。これは、以前の dump と restore のセキュリティ上の歴史による ものです。 (restore は root に setuid されて使われるように書かれています が、 restore のコードから全てのバグが取れているとは思わないので、 setuid にて使用する場合は自己の責任において行って下さい。)

一時ファイル /tmp/rstdir*/tmp/rstmode* は、ダンプの日付とプロセス ID に基づいて、ユニークに生成されます (mktemp(3) を参照してください)。ただし −r または −R が使用された場合は例外です。これは、中断された −r の動作を −R によって再開可能とするためであり、別々の処理において同一の一時ファイル を使用することが必要であるためです。他の場合には、ファイルはユニークで す。これは、同時に 2 個の異なったダンプが開始する可能性があるためであり、 別々の処理が衝突しないようにすべきだからです。

FreeBSD 10.0 May 1, 1995 FreeBSD 10.0

スポンサーリンク