時には、全面的に復元しなければならないほどファイルシステムが破壊される場合があります。一般的な例として、ディスク障害が発生した場合は、ハードウェアを交換してからファイルシステムを全面的に復元する必要があります。ディスクの交換方法については、第 33 章「SPARC: ディスクの追加 (手順)」または第 34 章「IA: ディスクの追加 (手順)」を参照してください。/export/home などのファイルシステムを全面的に復元するには、長い時間がかかります。ファイルシステムを一貫性のある方法でバックアップしていれば、最後の増分バックアップ時の状態に復元することができます。
ルート (/) または /usr ファイルシステムの復元には、この手順は使用できません。これらのファイルシステムを復元する方法については、ルート (/) と /usr を復元する方法を参照してください。
必要に応じ、ファイルシステムをマウント解除します。
# umount /dev/rdsk/device-name |
ファイルシステムを新規作成します。
# 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 |
(省略可能) 安全性のため、書き込み保護を設定します。
レベル 0 テープの第 1 ボリュームをテープドライブに挿入します。
ファイルを復元します。
# ufsrestore rvf /dev/rmt/n |
レベル 0 ダンプが復元されます。ダンプの実行に複数のテープが必要な場合は、番号の順にテープをロードするようにプロンプトが表示されます。
テープを外し、次のレベルのテープをドライブにロードします。
テープの復元は必ず 0 から始め、一番高いレベルまで続けてください。
ファイルシステムが復元されていることを確認します。
# ls |
restoresymtable ファイルを削除します。
# rm restoresymtable |
リストアのチェックポイントのために ufsrestore コマンドが作成し、使用した restoresymtable ファイルを削除します。
別のディレクトリに移動します。
# cd / |
新しく復元されたファイルシステムをマウント解除します。
# umount /mnt |
最後のテープを取り出し、書き込み保護されていない新しいテープをテープドライブに挿入します。
新しく復元されたファイルシステムのレベル 0 の バックアップを作成します。
# ufsdump 0uf /dev/rmt/n /dev/rdsk/device-name |
レベル 0 のバックアップが実行されます。ufsrestore はファイルの位置を移動し、i ノード割り当てを変更するので、新しく作成されたファイルシステムのバックアップは、必ずすぐに作成するようにしてください。
復元されたファイルシステムをマウントします。
# mount /dev/dsk/device-name mount-point |
復元されたファイルシステムがマウントされ、使用できるようになります。
復元およびマウントされたファイルシステムが使用できることを確認します。
# ls /mount-point |
次の例は、/export/home ファイルシステムの復元方法を示します。
# umount /export/home
# newfs /dev/rdsk/c0t3d0s7
newfs: construct a new file system /dev/rdsk/c0t3d0s7: (y/n)? y
/dev/rdsk/c0t3d0s7: 410400 sectors in 270 cylinders of 19 tracks,
80 sectors
200.4MB in 17 cyl groups (16 c/g, 11.88MB/g, 5696 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 24432, 48832, 73232, 97632, 122032, 146432, 170832, 195232, 219632,
244032, 268432, 292832, 317232, 341632, 366032, 390432,
# mount /dev/dsk/c0t3d0s7 /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
Verify volume and initialize maps
Media block size is 126
Dump date: Sat Jul 14 08:49:33 2001
Dumped from: the epoch
Level 0 dump of /export/home on earth:/dev/dsk/c0t3d0s7
Label: none
Begin level 0 restore
Initialize symbol table.
Extract directories from tape
Calculate extraction list.
Warning: ./lost+found: File exists
Make node ./kryten
Make node ./kryten/letters
Make node ./kryten/reports
Extract new leaves.
Check pointing the restore
extract file ./kryten/.cshrc
extract file ./kryten/.login
extract file ./kryten/b
extract file ./kryten/memos
extract file ./kryten/letters/b
extract file ./kryten/letters/letter1
extract file ./kryten/letters/letter2
extract file ./kryten/letters/letter3
extract file ./kryten/reports/reportA
extract file ./kryten/reports/reportB
extract file ./kryten/reports/reportC
Add links
Set directory mode, owner, and times.
Check the symbol table.
Check pointing the restore
# ls
# rm restoresymtable
# cd /
# umount /mnt
# ufsdump 0ucf /dev/rmt/0 /export/home
.
.
.
# mount /dev/dsk/c0t3d0s7 /export/home
# ls /export/home
|