在共享群集磁盘上运行 chkdsk /f 命令

本文介绍如何 chkdsk /f 在共享群集磁盘上运行命令。

原始 KB 数: 176970

总结

尝试 chkdsk /f 在共享群集驱动器上运行或 chkdsk /f /r 命令时,Chkdsk 可能无法运行,并可能指出无法锁定驱动器以供独占使用。 如果计划 Chkdsk 在计算机重启后运行,则 Chkdsk 可能会在启动过程中生成以下错误消息:

无法确定驱动器上的文件系统 ??\ 驱动器号

详细信息

在大多数情况下,使用 /F/R 开关运行 Chkdsk 需要重启计算机,因为共享磁盘上的打开句柄。 通常,没有正在运行的服务或驱动程序阻止在计算机重启时检查磁盘(Chkdsk 的派生)。 但是,如果使用 Windows 群集,则在群集服务启动之前,文件系统不会装载共享磁盘,因为共享磁盘的所有者未知。 这会导致 Chkdsk 报告它无法确定共享群集磁盘上的文件系统。 在只读模式下运行 Chkdsk 似乎有效,但 Chkdsk 无法解决任何问题。

如果怀疑共享磁盘上存在文件损坏,请使用以下步骤关闭共享磁盘的所有打开句柄,并在驱动器上运行 Chkdsk:

  1. 退出所有程序并停止所有非群集感知服务。

  2. 启动群集管理员工具,右键单击群集名称,然后单击“ 属性”。

  3. 在“仲裁”选项卡上,记下哪个硬盘是仲裁硬盘。 如果要在其中运行 Chkdsk 的硬盘包含仲裁日志,请暂时将仲裁移动到另一个共享磁盘。

  4. 使用群集管理员工具查找包含要在其中运行 Chkdsk 的共享硬盘的组。

  5. 找到要在其中运行 Chkdsk 的物理磁盘资源后,使整个组脱机,包括共享磁盘。 这会关闭物理磁盘的所有句柄。 若要使组脱机,请右键单击组名称,然后单击“ 脱机”。

  6. 在群集管理员工具中,单击要在其中运行 Chkdsk 的共享磁盘,然后将其联机。 为此,请右键单击磁盘资源,然后单击“ 启用在线”。

    注意

    如果以前设置了脏位,则 Chkdsk 可能会自动运行,物理磁盘资源可能需要一段时间才能联机。 在 Windows NT 4.0 中,你将看到一个命令提示符窗口,其中 Chkdsk 正在运行。 在 Windows 2000 中,如果打开任务管理器,则会看到 Chkdsk 作为进程运行。

  7. 在命令提示符下,更改为尝试运行 Chkdsk 的驱动器以外的驱动器,然后键入 chkdsk **x**: /f /r 命令,其中 X 是共享磁盘。

如果在尝试运行 Chkdsk 时收到 磁盘无法锁定 错误消息,请验证有权访问驱动器的所有服务和工具是否已停止,然后再次尝试运行 Chkdsk。 任何具有驱动器打开句柄的正在运行的服务或程序都可以阻止 Chkdsk 运行。 Windows 2000 及更高版本的 Windows 可能会尝试关闭共享磁盘的打开句柄。 如果系统提示关闭打开的句柄,请按 Y 键。

如果句柄保持打开状态或群集包含单个共享磁盘

如果程序或驱动程序维护共享磁盘的打开句柄,或者只有一个共享磁盘(在其中存储仲裁日志),则必须关闭整个群集。 这样做需要暂时禁用群集组件,以便文件系统可以在重启节点时装载共享磁盘。 还必须关闭群集中的其他节点,以便在节点重启时它们不会获取共享磁盘的所有权。

为此,请使用相应部分中的步骤。

Windows Server 2003

在基于 Microsoft Windows Server 2003 的计算机上对卷运行“chkdsk /F”命令之前,必须将物理磁盘资源置于维护模式。 必须执行此操作,以防止物理磁盘资源进入失败状态。

Windows 2000

  1. 退出所有程序,停止所有无法识别群集的程序,然后使用具有管理凭据的帐户登录到服务器。
  2. 启动群集管理员,右键单击 群集名称,然后单击“ 属性”。
  3. 单击“仲裁”选项卡,然后记下哪个驱动器是仲裁磁盘。 如果要运行 Chkdsk 的驱动器包含仲裁日志,请暂时将仲裁磁盘移到另一个共享驱动器。
  4. 将FSUtil.exe从 %SystemRoot%\System32 基于 Windows XP 或更高版本的计算机上的文件夹复制到基于 Windows 2000 的计算机上的本地驱动器。
  5. 在基于 Windows 2000 的计算机上,在命令提示符处,更改为包含FSUtil.exe的文件夹,然后键入 fsutil dirty set drive: 命令,其中 驱动器 是共享驱动器。
  6. 使用群集管理员查找包含要运行 Chkdsk 的共享驱动器的组。
  7. 右键单击组名称,然后单击“ 脱机”。 这会使整个组脱机,包括共享驱动器,并将所有句柄关闭到物理驱动器。
  8. 右键单击物理磁盘资源,然后单击“ 联机” 。 这会使驱动器联机。 Chkdsk 在卷上运行,它可能处于联机挂起状态一段时间。
  9. 在卷上运行 Chkdsk 后,将组中的所有其他资源联机。

Windows NT 4.0

  1. 关闭节点 B。
  2. 以管理员身份登录到节点 A。
  3. chkdsk /f 共享磁盘上运行命令。 当系统提示你计划 Chkdsk 下次重启时运行时,请按 Y。
  4. 在控制面板的“设备”工具中,单击“群集磁盘”,然后单击“启动”。
  5. 将启动类型更改为 “已禁用”。
  6. 在控制面板的服务工具中,单击群集服务器服务,然后单击“启动”。
  7. 将启动类型更改为 “已禁用”。
  8. 退出控制面板,然后重启节点 A。Chkdsk 运行而不干扰群集磁盘驱动程序或任何其他服务。
  9. Chkdsk 完成后,将启动类型更改回其原始设置,然后重新启动计算机以激活群集。
  10. 打开节点 B。