fsck [-F FSType] [-m] [-V] [-v] [special]...
fsck [-F FSType] [-n | N | y | Y] [-V] [-v] [-o FSType-specific-options] [special]...
fsck 审计文件系统并以交互方式修复不一致的文件系统状况。如果文件系统中存在不一致,每项更正措施的缺省操作是等待用户响应 yes 或 no。如果用户没有写入权限,fsck 缺省为 no 操作。某些更正操作会导致数据丢失。数据丢失的数量和严重性可通过诊断输出确定。
FSType-specific-options 是在选项或关键字-属性对的逗号分隔(逗号后不加空格)列表中指定的选项,由命令的特定于 FSType 的模块进行解释。
special 表示文件系统所在的字符特殊设备,例如 /dev/rdsk/c1t0d0s7。注意:应使用字符特殊设备,而不是块特殊设备。如果挂载块设备,fsck 将不工作。
如果未指定 special 设备,fsck 会检查 /etc/vfstab 中列出的文件系统。将检查 /etc/vfstab 中的以下条目:在 fsckdev 字段中具有特殊字符设备条目并在 fsckpass 字段中具有非零数字条目。指定 –F FSType 会将要检查的文件系统限制为指示的那些类型。
如果指定 special,但未指定 –F,将通过在 /etc/vfstab 中查找匹配条目来确定文件系统类型。如果没有找到相应的条目,则将使用 /etc/default/fs 中指定的缺省本地文件系统类型。
如果文件系统类型支持并行检查,例如 ufs,可能会并行检查可以进行检查的一些文件系统。有关更多信息,请查阅文件系统特定的手册页(例如 fsck_ufs(1M))。
支持下列常规选项:
指定要对其进行操作的文件系统类型。
检查但不修复。此选项检查文件系统是否适合挂载,返回相应的退出状态。如果文件系统可以挂载,fsck 显示如下消息:
ufs fsck: sanity check: /dev/rdsk/c0t3d0s1 okay
假定对 fsck 询问的所有问题响应 no;不打开文件系统进行写入。
回显扩展的命令行但不执行命令。应当使用此选项来确认和验证命令行。
启用详细的输出。可能并不是所有文件系统特定的 fsck 实现都支持此项。
假定对 fsck 询问的所有问题响应 yes。
这些 specific-options 可以是以下各项的任意组合,以逗号分隔(逗号后不加空格)。
使用块 n 作为文件系统的超级块。块 32 始终是备用超级块之一。通过运行 newfs(1M) 并指定 –Nv 选项来确定其他超级块的位置。
如果文件系统处于旧(静态表)格式,则将其转换为新(动态表)格式。文件系统处于新格式时,如果旧格式可以支持文件系统配置,则将其转换为旧格式。在交互模式下,fsck 将列出转换的方向并询问是否应进行转换。如果提供了否定回答,则不对文件系统执行进一步操作。在整理模式下,将列出转换的方向,并且如果可能将执行转换而不需要用户交互。同时转换所有文件系统时,最好在整理模式下进行转换。可以通过 fstyp(1M) 的输出的第一行确定文件系统的格式。注意:c 选项很少使用,包括该选项仅为了与 4.1 之前的发行版兼容。不保证此选项会包括在将来发行版中。
强制检查文件系统,而不考虑其超级块清理标志。
以非交互方式检查和修复文件系统(“整理”(preen))。如果存在需要干预的问题则立即退出。需要使用此选项来启用并行文件系统检查。
仅检查可写入文件系统。
文件系统已卸载并且正常
指定了错误参数
文件系统已卸载并且需要进行检查(仅限 fsck –m)
文件系统已经挂载
无法对设备执行 stat 操作
修改了挂载为读取/写入状态的文件系统-重新引导
检测到无法更正的错误-正常终止
处理过程中捕获到信号
检测到无法更正的错误-立即终止
文件系统已挂载为只读状态并且正常
根据 largefile(5) 手册页,fsck 命令可以感知 UFS 文件系统的大文件。
缺省的本地文件系统类型。可以在 /etc/default/fs 中为以下标志设置缺省值。例如:LOCAL=ufs。
未指定FSType时用于命令的缺省分区。
每个文件系统的缺省参数的列表
有关下列属性的说明,请参见 attributes(5):
|
clri(1M)、fsck_ufs(1M)、fsdb_ufs(1M)、fsirand(1M)、fstyp(1M)、mkfs(1M)、mkfs_ufs(1M)、mountall(1M)、newfs(1M)、reboot(1M)、vfstab(4)、attributes(5)、largefile(5)、ufs(7FS)
操作系统会缓冲文件系统数据。在已挂载文件系统上运行 fsck 会导致操作系统的缓冲区对磁盘变为过时。因此,使用 fsck 时,文件系统应该处于未挂载状态。如果这不可能,应该注意保证系统是不活动的并且在运行 fsck 后立即重新引导该系统。但是,这样做经常是不够的。如果在文件系统上运行 fsck 会修改该文件系统,将可能出现紧急情况。
可能并不是所有 FSType 都支持此命令。
从 Solaris 9 开始,fsck 管理磁盘上的扩展属性数据。(有关扩展文件属性的说明,请参见 fsattr(5)。)可以在不识别属性的 Solaris 版本(Solaris 9 之前的版本)上挂载具有扩展属性的文件系统,但是将无法访问这些属性,并且 fsck 会将其从文件中去除并置于 lost+found 中。去除这些属性后,文件系统在不识别属性的 Solaris 版本上将完全稳定,但是在可识别属性版本中将被视为已损坏。在后一种情况下,先运行可识别属性的 fsck 来稳定文件系统,然后再将其用于可识别属性的环境。