ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (デバイスとファイルシステム) Oracle Solaris 10 8/11 Information Library (日本語) |
14. Oracle Solaris iSCSI ターゲットおよびイニシエータの構成 (手順)
22. UFS ファイルシステムのバックアップと復元 (概要)
23. UFS ファイルとファイルシステムのバックアップ (手順)
UFS ファイルおよびファイルシステムのバックアップを復元する (作業マップ)
バックアップを実行すると、ファイルやディレクトリは、それらが含まれるファイルシステムからの相対的な位置に保存されます。ファイルとディレクトリを復元するときは、ufsrestore コマンドが現在の作業ディレクトリにファイル階層を作成し直します。
たとえば、/export/doc/books ディレクトリ (/export はファイルシステム) からバックアップされたファイルは、/export からの相対的な位置に保存されます。つまり、books ディレクトリ内の book ファイルは、テープ上で ./doc/books/book1. として保存されます。あとで、./doc/books/book1 ファイルを /var/tmp ディレクトリに復元する場合、そのファイルは /var/tmp/doc/books/book1 に復元されます。
個別のファイルやディレクトリを復元するときには、/var/tmp などの一時的な場所に復元する必要があります。ファイルを確認したら、それを適当な位置に移動させてもかまいません。ただし、個別のファイルやディレクトリはそれぞれ元の位置に復元できます。その場合には、新しいファイルをバックアップテープからの古いバージョンで上書きしないかどうか確かめてください。
ほかのユーザーとの重複を防ぐために、/var/tmp/restore ファイルなどのサブディレクトリを作成し、そのディレクトリに移動して、ファイルを復元することをお勧めします。
階層を復元する場合、ファイルを配置するファイルシステム内の一時ディレクトリにファイルを復元する必要があります。復元後に、mv コマンドを使用して階層全体を適切な場所に移動します。
注 - 一時的な場合でも、/tmp ディレクトリにファイルを復元してはいけません。/tmp ディレクトリは通常、TMPFS ファイルシステムとしてマウントされます。TMPFS は ACL などの UFS ファイルシステム属性をサポートしていません。
ファイルの最新バージョンを検索するには、特にユーザーの要求がない限り、増分バックアップファイルを最高のダンプレベルから最低のダンプレベルへ、最新の日付からもっとも古い日付へ逆方向に調べます。
# ufsrestore ta archive-name ./path/filename ./path/filename
テープ上の各ファイルを表示します。
内容一覧をテープからではなく、オンラインアーカイブファイルから読み取ります。
オンラインアーカイブファイル名を指定します。
オンラインアーカイブ上で検索するファイル名を指定します。コマンドが成功した場合は、ufsrestore は i ノード番号とファイル名を出力します。成功しなかった場合、ufsrestore はエラーメッセージを出力します。
詳細は、ufsrestore(1M) のマニュアルページを参照してください。
# ufsrestore tf /dev/rmt/n ./path/filename ./path/filename
各ファイル名に必ず完全パス名を使用してください。ファイルがバックアップに入っていれば、その名前と i ノード番号が表示されます。ファイルがバックアップに入っていない場合、ファイルがそのボリュームに入っていないことを示すメッセージが表示されます。
# ufsrestore xfs /dev/rmt/n tape-number
例 25-1 使用するテープを決定する
次の例は、オンラインアーカイブに /etc/passwd ファイルが存在するかどうかを確認する方法を示します。
# ufsrestore ta /var/tmp/root.archive ./etc/passwd
次の例は、バックアップテープに /etc/passwd ファイルが存在するかどうかを確認する方法を示します。
# ufsrestore tf /dev/rmt/0 ./etc/passwd
# cd /var/tmp
# ufsrestore if /dev/rmt/n
情報を伝えるためのメッセージと ufsrestore> プロンプトが表示されます。
ufsrestore> verbose
ufsrestore> extract
どのボリューム番号を使用するかを指定するプロンプトが表示されます。
Specify next volume #: 1
リスト内のファイルとディレクトリが抽出され、現在の作業ディレクトリに復元されます。
set owner/mode for `.'? [yn] n
ufsrestore コマンドによる最後の整理が完了すると、ufsrestore のプロンプトが表示されます。
ufsrestore> quit
シェルプロンプトが表示されます。
例 25-2 対話式で UFS ファイルを復元する
次の例では、バックアップテープから /etc/passwd ファイルと /etc/shadow ファイルを抽出する方法について説明します。
# cd /var/tmp # ufsrestore if /dev/rmt/0 ufsrestore> ls .: .: .sunw/ export/ net/ sbin/ usr/ Sources/ etools/ opt/ scde/ var/ b/ home/ ptools/ set/ vol/ bin kernel/ pkg/ share/ dev/ lib/ platform/ shared/ devices/ lost+found/ proc/ src/ etc/ mnt/ rtools/ tmp/ ufsrestore> cd etc ufsrestore> add passwd shadow ufsrestore> verbose verbose mode on ufsrestore> extract Extract requested files You have not read any volumes yet. Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume #: 1 extract file ./etc/shadow extract file ./etc/passwd Add links Set directory mode, owner, and times. set owner/mode for `.'? [yn] n ufsrestore> quit # cd etc # mv passwd /etc # mv shadow /etc # ls -l /etc
# cd /var/tmp
# ufsrestore xvf /dev/rmt/n filename
filename 引数内に指定されたファイルまたはディレクトリをコピーするように ufsrestore コマンドに指定します。
復元処理中にファイル名を表示します。
テープデバイス名を識別します。
1 つまたは複数のファイル名またはディレクトリ名を指定します。複数の場合は、空白で区切って指定します。次に例を示します。./export/home/user1/mail ./export/home/user2/mail .
Specify next volume #: 1
ファイルは現在の作業ディレクトリに復元されます。
set owner/mode for '.'? [yn] n
例 25-3 特定のファイルを復元する
次の例では、passwd ファイルと shadow ファイルを /var/tmp ディレクトリに非対話式で復元する方法を説明します。
# cd /var/tmp # ufsrestore xvf /dev/rmt/0 ./etc/passwd ./etc/shadow Verify volume and initialize maps Media block size is 126 Dump date: Wed Jul 14 13:36:17 2010 Dumped from: the epoch Level 0 dump of / on starbug:/dev/dsk/c0t0d0s0 Label: none Extract directories from tape Initialize symbol table. Extract requested files You have not read any volumes yet. Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume #: 1 extract file ./etc/passwd extract file ./etc/shadow Add links Set directory mode, owner, and times. Specify next volume #:1 extract file ./etc/passwd extract file ./etc/shadow Add links Set directory mode, owner, and times. set owner/mode for `.'? [yn] n # cd etc # mv passwd /etc # mv shadow /etc # ls -l /etc
例 25-4 リモートのテープデバイスからファイルを復元する
ufsrestore コマンドを使用するときにテープデバイス名の前に remote-host: を追加することにより、ファイルをリモートドライブから復元できます。
次の例では、システム venus 上のリモートテープドライブ /dev/rmt/0 を使用してファイルを復元します。
# ufsrestore xf venus:/dev/rmt/0 ./etc/hosts
ときには、全面的に復元しなければならないほどファイルシステムが破壊される場合があります。一般的な例として、ディスク障害が発生した場合には、ファイルシステムを全面的に復元する必要があります。この場合、ハードウェアを交換してからソフトウェアを復元しなければならないこともあります。ディスクの交換方法については、「SPARC: UFS ファイルシステム用のディスクの設定 (作業マップ)」または 「x86: UFS ファイルシステム用のディスクの設定 (作業マップ)」を参照してください。
/export/home などのファイルシステムを全面的に復元するには、時間がかかります。ファイルシステムを一貫性のある方法でバックアップしていれば、最後の増分バックアップ時の状態に復元できます。
注 - ルート (/) または /usr ファイルシステムの復元には、この手順は使用できません。これらのファイルシステムを復元する方法については、「UFS ルート (/) および /usr ファイルシステムを復元する方法」を参照してください。
# umount /dev/rdsk/device-name
または
# umount /file-system
# newfs /dev/rdsk/device-name
raw デバイス上に新しいファイルシステムを構築するかどうかを確認するプロンプトが表示されます。意図しないファイルシステムを間違って損失してしまわないように、device-name が正しいことを確認します。
詳細は、newfs(1M) のマニュアルページを参照してください。
newfs: construct a new file system /dev/rdsk/cwtxdysz:(y/n)? y
新しいファイルシステムが作成されます。
# mount /dev/dsk/device-name /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/n
ダンプレベル 0 のバックアップが復元されます。バックアップの実行に複数のテープが必要な場合は、番号の順にテープをロードするようにプロンプトが表示されます。
テープの復元は必ずダンプレベル 0 から始め、一番高いダンプレベルまで続けてください。
# ls
# rm restoresymtable
復元のチェックポイントのために ufsrestore コマンドが作成し、使用した restoresymtable ファイルを削除します。
# cd /
# umount /mnt
# ufsdump 0ucf /dev/rmt/n /dev/rdsk/device-name
レベル 0 のバックアップが実行されます。ufsrestore コマンドはファイルの位置を移動し、i ノード割り当てを変更するので、新しく作成されたファイルシステムの完全バックアップは、必ずすぐに作成するようにしてください。
# mount /dev/dsk/device-name mount-point
復元されたファイルシステムがマウントされ、使用できるようになります。
# ls mount-point
例 25-5 UFS ファイルシステム全体を復元する
次の例では、/export/home ファイルシステムを復元する方法を示します。
# newfs /dev/rdsk/c0t0d0s7 newfs: /dev/rdsk/c0t0d0s7 last mounted as /export/home newfs: construct a new file system /dev/rdsk/c0t0d0s7: (y/n)? y /dev/rdsk/c0t0d0s7: 143358064 sectors in 23334 cylinders of 48 tracks, 128 sectors 69999.1MB in 1459 cyl groups (16 c/g, 48.00MB/g, 5824 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920, Initializing cylinder groups: ............................ super-block backups for last 10 cylinder groups at: 142447776, 142546208, 142644640, 142743072, 142841504, 142939936, 143038368, 143136800, 143235232, 143333664 # mount /dev/dsk/c0t0d0s7 /mnt # cd /mnt # ufsrestore rvf /dev/rmt/0 Verify volume and initialize maps Media block size is 126 Dump date: Wed Jul 14 12:45:33 2010 Dumped from: the epoch Level 0 dump of /export/home on starbug:/dev/dsk/c0t0d0s7 Label: none Begin level 0 restore Initialize symbol table. Extract directories from tape Calculate extraction list. Warning: ./lost+found: File exists Make node ./rimmer Make node ./rimmer/wdir Make node ./lister Make node ./pmorph Make node ./inquisitor Make node ./kryten Make node ./kryten/letters Make node ./kryten/reports Extract new leaves. Check pointing the restore extract file ./rimmer/words extract file ./rimmer/words1 extract file ./rimmer/words2 extract file ./rimmer/words3 extract file ./rimmer/wdir/words extract file ./rimmer/wdir/words1 extract file ./rimmer/wdir/words2 extract file ./rimmer/wdir/words3 . . . Add links Set directory mode, owner, and times. Check the symbol table. Check pointing the restore # rm restoresymtable # cd / # umount /mnt # ufsdump 0ucf /dev/rmt/0 /export/home . . . # mount /dev/dsk/c0t0d0s7 /export/home # ls /export/home
システムディスクを追加する方法の詳細については、「SPARC: UFS ルートファイルシステム用のディスクを設定する方法」または 「x86: UFS ルートファイルシステム用のディスクを設定する方法」を参照してください。
# mount /dev/dsk/device-name /mnt
# cd /mnt
# tapes
# ufsrestore rvf /dev/rmt/n
ダンプレベル 0 のテープが復元されます。
テープの復元は必ずダンプレベル 0 から始め、もっとも低いダンプレベルからもっとも高いダンプレベルまで続けてください。
# ufsrestore rvf /dev/rmt/n
次のレベルのテープが復元されます。
# ls
# rm restoresymtable
復元のチェックポイントのために ufsrestore コマンドが作成し、使用した restoresymtable ファイルを削除します。
# cd /
# umount /mnt
# fsck /dev/rdsk/device-name
復元されたファイルシステムの整合性が検査されます。
SPARC システムの場合:
# installboot /usr/platform/`uname-i`/lib/fs/ufs/bootblk /dev/rdsk/device-name
詳細は、installboot(1M) のマニュアルページを参照してください。
SPARC システム上での installboot コマンドの使用例については、例 25-6 を参照してください。
x86 システムの場合:
# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/cwtxdysz
詳細は、installgrub(1M) のマニュアルページを参照してください。
x86 システム上での installgrub コマンドの使用例については、例 25-7 を参照してください。
# ufsdump 0uf /dev/rmt/n /dev/rdsk/device-name
ダンプレベル 0 のバックアップが実行されます。ufsrestore コマンドはファイルの位置を移動し、i ノード割り当てを変更するので、新しく作成されたファイルシステムの完全バックアップは、必ずすぐに作成するようにしてください。
# init 6
システムがリブートされます。
例 25-6 SPARC: UFS ルート (/) ファイルシステムを復元する
次の例は、SPARC システム上でルート (/) ファイルシステムを復元する方法を示します。この例では、システムはローカルの Solaris DVD またはネットワークから起動するものとします。
# mount /dev/dsk/c0t3d0s0 /mnt # cd /mnt # tapes # ufsrestore rvf /dev/rmt/0 # ls # rm restoresymtable # cd / # umount /mnt # fsck /dev/rdsk/c0t3d0s0 # installboot /usr/platform/sun4u/lib/fs/ufs/bootblk /dev/rdsk/c0t3d0s0 # ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t3d0s0 # init 6
例 25-7 x86: UFS ルート (/) ファイルシステムを復元する
次の例は、x86 システム上でルート (/) ファイルシステムを復元する方法を示します。この例では、GRUB フェイルセーフブートセッション、ローカルの Solaris DVD、またはネットワークからシステムが起動されていることを前提としています。
# mount /dev/dsk/c0t3d0s0 /mnt # cd /mnt # tapes # ufsrestore rvf /dev/rmt/0 # ls # rm restoresymtable # cd / # umount /mnt # fsck /dev/rdsk/c0t3d0s0 # /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t3d0s0 stage1 written to partition 0 sector 0 (abs 2016) stage2 written to to partition 0, 227 sectors starting 50 (abs 2066) # ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t3d0s0 # init 6