Solaris のシステム管理 (デバイスとファイルシステム)

第 27 章 UFS バックアップおよび復元コマンド (参照情報)

この章では、ufsdump コマンドと ufsrestore コマンドの参照情報を示します。

この章で説明する情報は次のとおりです。

バックアップの実行方法の概要については、第 23 章UFS ファイルシステムのバックアップと復元 (概要)を参照してください。

バックアップの手順については、第 24 章UFS ファイルとファイルシステムのバックアップ (手順)を参照してください。

ufsdump コマンドの機能

ufsdump コマンドは、ファイルシステムのバックアップ作成時に 2 つのパスを作成します。最初のパスでは、このコマンドは raw デバイスファイル内でファイルシステムを走査し、メモリー内にディレクトリとファイルのテーブルを作成します。次に、そのテーブルをバックアップメディアに書き込みます。2 つ目のパスでは、ufsdump は i ノードに番号順にアクセスし、ファイルの内容を読み込んでバックアップメディアに書き込みます。

デバイス特性の判断

ufsdump コマンドに必要なことは、適切なテープブロックの大きさを認識することと、どのようにしてメディアの終わりを検出するかということです。

メディアの終わりの検出

ufsdump コマンドは、一連の固定長レコードを書き込みます。ufsdump コマンドは、レコードの一部にしか書き込まれていないという通知を受け取ると、メディアの物理的な終わりに達したものと判断します。この方法は、ほとんどのデバイスに有効です。部分的なレコードしか書き込まれなかったことをデバイスが ufsdump に通知できない場合、ufsdump が別のレコードの書き込みを試みると、メディアエラーが発生します。


注 –

DAT デバイスと 8mm テープデバイスでは、メディアの終わりが検出されます。カートリッジテープデバイスと 1/2 インチテープデバイスでは、メディアの終わりは検出されません。


ufsdump は、ほとんどのデバイスのメディアの終わりを自動的に検出します。したがって、通常は -c-d-s-t オプションを使用しなくても、複数のボリュームのバックアップを実行できます。

ufsdump コマンドで、デバイスがメディアの終わりを検出する方法を確認できない場合は、メディアの終わりに関するオプションを使用する必要があります。

restore コマンドとの互換性を確保するため、サイズオプションを使用すると、従来どおり、現在のテープやフロッピーディスクの終わりに達する前に、ufsdump を次のテープやフロッピーディスクに強制的に進ませることができます。

ufsdump コマンドを使用したデータのコピー

ufsdump コマンドは、raw ディスクスライスからデータのみをコピーします。ファイルシステムがまだ有効であれば、メモリーバッファー内のデータがコピーされていない可能性があります。ufsdump コマンドによるバックアップでは、空きブロックはコピーされず、ディスクスライスのイメージも作成されません。シンボリックリンクがほかのスライス上のファイルを指す場合は、リンク自体がコピーされます。

/etc/dumpdates ファイルの目的

ufsdump コマンドを -u オプション付きで使用すると、/etc/dumpdates というファイルを管理し、更新できます。/etc/dumpdates ファイル内の各行は、次の情報を表しています。

次に例を示します。


# cat /etc/dumpdates
/dev/rdsk/c0t0d0s0               0 Wed Jul 7 13:36:17 2010
/dev/rdsk/c0t0d0s7               0 Thu Jul 8 12:53:12 2010
/dev/rdsk/c0t0d0s7               9 Thu Jul 8 13:41:48 2010

増分バックアップの実行時に、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 つ作成しますが、このファイルは複数のテープやフロッピーディスクにまたがってもかまいません。

デバイスの省略形を使用して、システム上のテープデバイスかフロッピーディスクデバイスを指定します。最初のデバイスは常に 0 です。たとえば、SCSI テープコントローラが 1 つと、中密度の形式を使用する QIC-24 テープドライブが 1 つある場合は、次のデバイス名を使用します。

/dev/rmt/0m

テープデバイス名を指定するときは、名前の末尾に文字 n を付けて、バックアップの完了後にテープドライブを巻き戻さないように指定することもできます。次に例を示します。

/dev/rmt/0mn

テープに複数のファイルを格納する場合は、no-rewind オプションを使用します。バックアップ中に領域を使い果たすと、ufsdump コマンドから新しいテープの挿入を促すプロンプトが表示されるまで、テープは巻き戻されません。デバイスの命名規則の詳細は、「バックアップデバイス名」を参照してください。

リモートのテープドライブまたはフロッピーディスクドライブ

次の形式で、リモートのテープデバイスまたはフロッピーディスクを指定します。host: device。ローカルシステム上のスーパーユーザーがリモートシステムへのアクセス権を持っている場合、ufsdump コマンドはリモートデバイスに書き込みます。通常、スーパーユーザーとして ufsdump コマンドを実行するのであれば、ローカルシステム名をリモートシステムの /.rhosts ファイルに記述しておく必要があります。デバイスを user@host: device と指定した場合、ufsdump コマンドは指定されたユーザーでリモートシステム上のデバイスへのアクセスを試みます。この場合、指定されたユーザーの名前が、リモートシステム上の /.rhosts ファイル中に含まれている必要があります。

デバイスには、ufsdump コマンドを実行するシステムではなく、そのデバイスが存在するシステムのオペレーティングシステムに合った命名規則を使用してください。デバイスが SunOS の旧バージョン (4.1.1 など) を実行するシステム上にある場合は、SunOS 4.1 でのデバイス名 (/dev/rst0 など) を使用します。システムが Solaris ソフトウェアを実行中の場合は、SunOS 5.9 でのデバイス名 (/dev/rmt/0 など) を使用します。

ufsdump コマンドで標準出力を使用する

dump-file 引数としてダッシュ (-) を指定すると、ufsdump コマンドは標準出力に書き込みます。


注 –

dump-file 引数として標準出力を指定すると、-v オプション (検査) は機能しません。


ufsdump コマンドを使用して標準出力に書き込み、ufsrestore コマンドを使用して標準入力から読み込むと、パイプライン内でファイルシステムをコピーできます。次に例を示します。


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

バックアップを作成するファイルを指定する

コマンド行の最後の引数として、バックアップするファイル (filenames) を必ず指定してください。この引数は、バックアップのコピー元または内容を指定します。

ファイルシステムの場合、次のように raw デバイスファイルを指定します。

/dev/rdsk/c0t0d0s7

ファイルシステムは、そのエントリが /etc/vfstab ファイルに存在すれば、マウントポイントディレクトリ (/export/home など) を使用して指定できます。

デバイスの命名規則の詳細は、「バックアップデバイス名」を参照してください。

個々のファイルやディレクトリごとに、1 つまたは複数の名前を空白で区切って入力します。


注 –

ufsdump コマンドを使用して (ファイルシステム全体ではなく) 1 つまたは複数のディレクトリやファイルのバックアップを作成するときには、レベル 0 のバックアップが実行されます。増分バックアップは適用されません。


テープの性質を指定する

テープの性質を指定しなければ、ufsdump コマンドはデフォルト設定を使用します。テープカートリッジ (c)、密度 (d)、サイズ (s)、トラック数 (t) を指定できます。オプションの順序とその引数の順番が一致していれば、オプションはいくつでも指定できます。

ufsdump コマンドの制限

次に、ufsdump コマンドでは実行できない操作を示します。

ufsdump コマンドオプションおよび引数の指定

この節では、ufsdump コマンドのオプションと引数の指定方法について説明します。ufsdump コマンドの構文を、次に示します。


/usr/sbin/ufsdump options arguments filenames
options

1 文字のオプション名からなる 1 つの文字列です。

arguments

オプションの引数を指定します。複数の文字列も指定できます。オプション文字とそれに関連する引数は、同じ順序で並べる必要があります。

filenames

バックアップするファイルを指定します。これらの引数は、空白で区切り、常に最後に指定します。

ufsdump のデフォルトオプション

オプションを指定せずに ufsdump コマンドを実行する場合は、次の構文を使用します。


# ufsdump filenames

ufsdump コマンドでは、デフォルトで次のオプションと引数が使用されます。


ufsdump 9uf /dev/rmt/0 filenames

これらのオプションでは、デフォルトのテープドライブ上にその推奨密度でレベル 9 の増分バックアップが作成されます。

ufsdump オプションについては、ufsdump(1M) のマニュアルページを参照してください。

ufsdump とセキュリティーに関する注意事項

セキュリティー保護を適用するには、次の操作を実行する必要があります。

ufsrestore オプションおよび引数の指定

ufsrestore コマンドの構文を、次に示します。


/usr/sbin/ufsrestore options arguments filenames
options

1 文字のオプション名からなる 1 つの文字列です。次のオプションから 1 つだけ選択します。irRt、または xufsrestore オプションについては、ufsrestore(1M) のマニュアルページを参照してください。

arguments

オプションに対応する引数です。オプション文字とそれに関連する引数は、同じ順序で並べる必要があります。

filenames

復元するファイルを、x または t オプションの引数として指定します。これらの引数は、空白で区切り、常に最後に指定します。