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

ProcedureUFS ファイルシステム全体を復元する方法

ときには、全面的に復元しなければならないほどファイルシステムが破壊される場合があります。一般的な例として、ディスク障害が発生した場合には、ファイルシステムを全面的に復元する必要があります。この場合、ハードウェアを交換してからソフトウェアを復元しなければならないこともあります。ディスクの交換方法については、「SPARC: システムディスクまたは二次ディスクの追加 (作業マップ)」または 「x86: システムディスクまたは二次ディスクの追加 (作業マップ)」を参照してください。

/export/home などのファイルシステムを全面的に復元するには、時間がかかります。ファイルシステムを一貫性のある方法でバックアップしていれば、最後の増分バックアップ時の状態に復元できます。


注 –

ルート (/) または /usr ファイルシステムの復元には、この手順は使用できません。これらのファイルシステムを復元する方法については、「UFS ルート (/) および /usr ファイルシステムを復元する方法」を参照してください。


  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要に応じ、ファイルシステムをマウント解除します。


    # umount /dev/rdsk/device-name
    

    または


    # umount /file-system
    
  3. ファイルシステムを新規作成します。


    # newfs /dev/rdsk/device-name
    

    raw デバイス上に新しいファイルシステムを構築するかどうかを確認するプロンプトが表示されます。意図しないファイルシステムを間違って損失してしまわないように、device-name が正しいことを確認します。

    詳細は、newfs(1M) のマニュアルページを参照してください。

  4. 新しいファイルシステムを作成しなければならないかどうかを確認します。


    newfs: construct a new file system /dev/rdsk/cwtxdysz:(y/n)? y
    

    新しいファイルシステムが作成されます。

  5. 新しいファイルシステムを一時的なマウントポイントにマウントします。


    # mount /dev/dsk/device-name /mnt
    
  6. マウントポイントのディレクトリに移動します。


    # cd /mnt
    
  7. (省略可能) 安全性のため、書き込み保護を設定します。

  8. レベル 0 テープの第 1 ボリュームをテープドライブに挿入します。

  9. ファイルを復元します。


    # ufsrestore rvf /dev/rmt/n
    

    ダンプレベル 0 のバックアップが復元されます。バックアップの実行に複数のテープが必要な場合は、番号の順にテープをロードするようにプロンプトが表示されます。

  10. テープを外し、次のレベルのテープをドライブにロードします。

    テープの復元は必ずダンプレベル 0 から始め、一番高いダンプレベルまで続けてください。

  11. ダンプレベルごとに、一番低いレベルから一番高いレベルまで、手順 8 から手順 10 までの操作を繰り返します。

  12. ファイルシステムが復元されたことを確認します。


    # ls
    
  13. restoresymtable ファイルを削除します。


    # rm restoresymtable
    

    復元のチェックポイントのために ufsrestore コマンドが作成し、使用した restoresymtable ファイルを削除します。

  14. 別のディレクトリに移動します。


    # cd /
    
  15. 新しく復元されたファイルシステムをマウント解除します。


    # umount /mnt
    
  16. 最後のテープを取り出し、書き込み保護されていない新しいテープをテープドライブに挿入します。

  17. 新しく復元されたファイルシステムのレベル 0 の バックアップを作成します。


    # ufsdump 0ucf /dev/rmt/n /dev/rdsk/device-name
    

    レベル 0 のバックアップが実行されます。ufsrestore コマンドはファイルの位置を移動し、i ノード割り当てを変更するので、新しく作成されたファイルシステムの完全バックアップは、必ずすぐに作成するようにしてください。

  18. 復元されたファイルシステムをマウントします。


    # mount /dev/dsk/device-name mount-point
    

    復元されたファイルシステムがマウントされ、使用できるようになります。

  19. 復元およびマウントされたファイルシステムが使用できることを確認します。


    # ls mount-point
    

例 26–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