本文介绍如何 chkdsk /f
在共享群集磁盘上运行命令。
原始 KB 数: 176970
总结
尝试 chkdsk /f
在共享群集驱动器上运行或 chkdsk /f /r
命令时,Chkdsk 可能无法运行,并可能指出无法锁定驱动器以供独占使用。 如果计划 Chkdsk 在计算机重启后运行,则 Chkdsk 可能会在启动过程中生成以下错误消息:
无法确定驱动器上的文件系统 ??\ 驱动器号。
详细信息
在大多数情况下,使用 /F
或 /R
开关运行 Chkdsk 需要重启计算机,因为共享磁盘上的打开句柄。 通常,没有正在运行的服务或驱动程序阻止在计算机重启时检查磁盘(Chkdsk 的派生)。 但是,如果使用 Windows 群集,则在群集服务启动之前,文件系统不会装载共享磁盘,因为共享磁盘的所有者未知。 这会导致 Chkdsk 报告它无法确定共享群集磁盘上的文件系统。 在只读模式下运行 Chkdsk 似乎有效,但 Chkdsk 无法解决任何问题。
如果怀疑共享磁盘上存在文件损坏,请使用以下步骤关闭共享磁盘的所有打开句柄,并在驱动器上运行 Chkdsk:
退出所有程序并停止所有非群集感知服务。
启动群集管理员工具,右键单击群集名称,然后单击“ 属性”。
在“仲裁”选项卡上,记下哪个硬盘是仲裁硬盘。 如果要在其中运行 Chkdsk 的硬盘包含仲裁日志,请暂时将仲裁移动到另一个共享磁盘。
使用群集管理员工具查找包含要在其中运行 Chkdsk 的共享硬盘的组。
找到要在其中运行 Chkdsk 的物理磁盘资源后,使整个组脱机,包括共享磁盘。 这会关闭物理磁盘的所有句柄。 若要使组脱机,请右键单击组名称,然后单击“ 脱机”。
在群集管理员工具中,单击要在其中运行 Chkdsk 的共享磁盘,然后将其联机。 为此,请右键单击磁盘资源,然后单击“ 启用在线”。
注意
如果以前设置了脏位,则 Chkdsk 可能会自动运行,物理磁盘资源可能需要一段时间才能联机。 在 Windows NT 4.0 中,你将看到一个命令提示符窗口,其中 Chkdsk 正在运行。 在 Windows 2000 中,如果打开任务管理器,则会看到 Chkdsk 作为进程运行。
在命令提示符下,更改为尝试运行 Chkdsk 的驱动器以外的驱动器,然后键入
chkdsk **x**: /f /r
命令,其中 X 是共享磁盘。
如果在尝试运行 Chkdsk 时收到 磁盘无法锁定 错误消息,请验证有权访问驱动器的所有服务和工具是否已停止,然后再次尝试运行 Chkdsk。 任何具有驱动器打开句柄的正在运行的服务或程序都可以阻止 Chkdsk 运行。 Windows 2000 及更高版本的 Windows 可能会尝试关闭共享磁盘的打开句柄。 如果系统提示关闭打开的句柄,请按 Y 键。
如果句柄保持打开状态或群集包含单个共享磁盘
如果程序或驱动程序维护共享磁盘的打开句柄,或者只有一个共享磁盘(在其中存储仲裁日志),则必须关闭整个群集。 这样做需要暂时禁用群集组件,以便文件系统可以在重启节点时装载共享磁盘。 还必须关闭群集中的其他节点,以便在节点重启时它们不会获取共享磁盘的所有权。
为此,请使用相应部分中的步骤。
Windows Server 2003
在基于 Microsoft Windows Server 2003 的计算机上对卷运行“chkdsk /F”命令之前,必须将物理磁盘资源置于维护模式。 必须执行此操作,以防止物理磁盘资源进入失败状态。
Windows 2000
- 退出所有程序,停止所有无法识别群集的程序,然后使用具有管理凭据的帐户登录到服务器。
- 启动群集管理员,右键单击 群集名称,然后单击“ 属性”。
- 单击“仲裁”选项卡,然后记下哪个驱动器是仲裁磁盘。 如果要运行 Chkdsk 的驱动器包含仲裁日志,请暂时将仲裁磁盘移到另一个共享驱动器。
- 将FSUtil.exe从
%SystemRoot%\System32
基于 Windows XP 或更高版本的计算机上的文件夹复制到基于 Windows 2000 的计算机上的本地驱动器。 - 在基于 Windows 2000 的计算机上,在命令提示符处,更改为包含FSUtil.exe的文件夹,然后键入
fsutil dirty set drive:
命令,其中 驱动器 是共享驱动器。 - 使用群集管理员查找包含要运行 Chkdsk 的共享驱动器的组。
- 右键单击组名称,然后单击“ 脱机”。 这会使整个组脱机,包括共享驱动器,并将所有句柄关闭到物理驱动器。
- 右键单击物理磁盘资源,然后单击“ 联机” 。 这会使驱动器联机。 Chkdsk 在卷上运行,它可能处于联机挂起状态一段时间。
- 在卷上运行 Chkdsk 后,将组中的所有其他资源联机。
Windows NT 4.0
- 关闭节点 B。
- 以管理员身份登录到节点 A。
- 在
chkdsk /f
共享磁盘上运行命令。 当系统提示你计划 Chkdsk 下次重启时运行时,请按 Y。 - 在控制面板的“设备”工具中,单击“群集磁盘”,然后单击“启动”。
- 将启动类型更改为 “已禁用”。
- 在控制面板的服务工具中,单击群集服务器服务,然后单击“启动”。
- 将启动类型更改为 “已禁用”。
- 退出控制面板,然后重启节点 A。Chkdsk 运行而不干扰群集磁盘驱动程序或任何其他服务。
- Chkdsk 完成后,将启动类型更改回其原始设置,然后重新启动计算机以激活群集。
- 打开节点 B。