有关 Solaris 10 6/06 发行版中 fsck 的新信息,请参见UFS 文件系统实用程序(fsck、mkfs 和 newfs)的增强功能。如果看到以下消息,则无需重新运行 fsck:
***** FILE SYSTEM WAS MODIFIED ***** |
但是,在出现此消息后重新运行 fsck 并不会损害文件系统。此消息只是有关 fsck 的更正操作的信息。
此过程假定本地 CD 或网络引导服务器可用,从而可以从备用设备引导系统。
有关恢复坏的超级块的信息,请参见如何恢复坏的超级块(仅限 Solaris 10 6/06 发行版)或如何恢复坏的超级块(Solaris 8、9 和 10 发行版)。
成为超级用户或承担等效角色。
仅适用于具有镜像根 (/) 文件系统的系统:在从备用设备进行引导之前分离根 (/) 镜像,否则会有损坏文件系统的风险。
有关分离根 (/) 镜像的信息,请参见《Solaris Volume Manager 管理指南》中的“处理子镜像”。
识别需要检查的根 (/)、/usr 或 /var 文件系统的设备,例如 /dev/dsk/c0t0d0s0。
从备用设备进行引导时,将需要提供此设备名称。已从备用设备引导后识别此设备会更困难。
在单用户模式下,从备用设备(如本地 CD 或网络)引导具有需要检查的根 (/)、/usr 或 /var 文件系统的系统。
这样做可确保在这些文件系统上没有任何活动。
例如:
# init 0 ok boot net -s . . . # |
检查包含步骤 3 中识别的根 (/)、/usr 或 /var 文件系统的设备。
如果要检查或修复的文件系统的硬件已更改,则设备名称可能已更改。检查 fsck -n 消息 Last Mounted on ... 是否指示文件系统的预期设备。
在此示例中,要检查的根 (/) 文件系统是 /dev/dsk/c0t0d0s0。
# fsck -n /dev/rdsk/c0t0d0s0 ** /dev/rdsk/c0t0d0s0 (NO WRITE) ** Last Mounted on / . . . fsck /dev/rdsk/c0t0d0s0 ** /dev/rdsk/c0t0d0s0 ** Last Mounted on / ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames . . . |
更正任何报告的 fsck 错误。
有关如何响应以交互方式检查一个或多个 UFS 文件系统时出现的错误消息,请参见《系统管理指南:高级管理》中的第 28 章 “解决 UFS 文件系统不一致问题(任务)”。
如果在运行 fsck 后无法修复所有问题,请参见修复 fsck 命令无法修复的 UFS 文件系统。。
挂载已修复的文件系统,以确定 lost+found 目录中是否存在任何文件。
由 fsck 命令放置在 lost+found 目录中的各个文件是使用其 inode 编号重命名的。如有可能,请重命名这些文件,并将它们移动到所属的位置。请尝试使用 grep 命令匹配各个文件中的短语,并尝试使用 file 命令确定文件类型。
最后,删除遗留在 lost+found 目录中的无法识别的文件或目录,以免该目录不必要地被填满。
使系统返回到多用户模式。
# init 6 |
仅适用于具有镜像根 (/) 文件系统的系统:重新连接根 (/) 镜像。