有时文件系统会遭到严重损坏,因此必须进行完全恢复。通常,在出现磁盘故障后,需要恢复完整的文件系统。在恢复软件之前,可能需要更换硬件。有关如何更换磁盘的信息,请参见SPARC: 添加系统磁盘或辅助磁盘(任务列表)或x86: 添加系统磁盘或辅助磁盘(任务列表)。
完全恢复文件系统(如 /export/home)可能需要很长时间。如果已持续备份文件系统,则可以将其恢复到上次增量备份时的状态。
不能使用此过程来恢复根 (/) 文件系统或 /usr 文件系统。有关恢复这些文件系统的说明,请参见如何恢复根 (/) 和 /usr 文件系统。
如有必要,请取消挂载文件系统。
# umount /dev/rdsk/device-name |
或:
# umount /file-system |
创建新的文件系统。
# newfs /dev/rdsk/device-name |
系统将询问您是否要在原始设备上构造新的文件系统。确认 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 磁带的第一卷插入磁带机中。
恢复文件。
# ufsrestore rvf /dev/rmt/n |
此时会恢复转储级别 0 备份。如果备份需要多个磁带,则系统会提示您按数字顺序装入各磁带。
取出磁带并在驱动器中装入下一级别的磁带。
请始终从转储级别 0 开始恢复磁带,并继续进行其他转储级别的恢复,直到到达最高的转储级别。
验证文件系统是否已恢复。
# ls |
删除 restoresymtable 文件。
# rm restoresymtable |
系统将删除已创建且通过 ufsrestore 命令执行检查点恢复的 restoresymtable 文件。
转到其他目录。
# cd / |
取消挂载最近恢复的文件系统。
# umount /mnt |
取出最后一个磁带并在磁带机中插入未进行写保护的新磁带。
对最近恢复的文件系统执行级别 0 备份。
# ufsdump 0ucf /dev/rmt/n /dev/rdsk/device-name |
此时会执行级别 0 备份。由于 ufsrestore 命令将重定位文件并更改 inode 分配,因此应始终立即执行新创建文件系统的完整备份。
挂载恢复的文件系统。
# mount /dev/dsk/device-name mount-point |
恢复的文件系统已挂载并且可以使用。
验证恢复且挂载的文件系统是否可用。
# ls mount-point |
# 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 819314 sectors in 867 cylinders of 15 tracks, 63 sectors 400.1MB in 55 cyl groups (16 c/g, 7.38MB/g, 3584 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 15216, 30400, 45584, 60768, 75952, 91136, 106320, 121504, 136688, 681264, 696448, 711632, 725792, 740976, 756160, 771344, 786528, 801712, 816896, # mount /dev/dsk/c0t0d0s7 /mnt # cd /mnt # ufsrestore rvf /dev/rmt/0 Verify volume and initialize maps Media block size is 126 Dump date: Thu Jul 29 10:14:00 2004 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 |