CHKDSK 和 $ 新的/C 和 / I 开关的说明

文章翻译 文章翻译
文章编号: 187941 - 查看本文应用于的产品
本文的一个 Windows XP 版本,请参阅 314835
展开全部 | 关闭全部

本文内容

概要

在 Windows NT 4.0 版中 Service Pack 4 (SP4) 和 Windows 2000 Chkdsk.exe 中添加了两个新开关。这些开关使用户能够更好地管理通过运行 CHKDSK 或 AUTOCHK 而导致的停机时间。

在 Windows NT 4.0 SP4 和 Windows 2000 中添加这些开关是/C 和 / I,和是唯一有效的目标驱动器具有 NTFS 时的格式。每个开关指示 CHKDSK 例程,以绕过某些操作,否则需要验证 NTFS 数据结构的完整性。

警告 Microsoft 不建议当它与/f 开关一起使用,Microsoft 不保证该磁盘的完整性,如果 CHKDSK 程序被中断时中断 CHKDSK 过程。

更多信息

Chkdsk.exe 是验证逻辑的 Windows 上的文件系统完整性的程序命令行界面。CHKDSK 中遇到它将采取措施来修复文件系统数据的逻辑不一致时提供该文件不在只读模式。

实际上在 CHKDSK 运行联机时执行验证的代码驻留在如 Untfs.dll 和 Ufat.dll 实用程序 dll。Chkdsk.exe 所调用的验证例程是相同的卷进行验证通过由 Windows 资源管理器或磁盘管理器提供图形用户界面时调用。当 CHKDSK 安排在重新启动时运行时,另一方面,二进制包含验证代码的模块是 Autochk.exe。Autochk.exe 是本机 Windows 应用程序,运行早期足够的系统引导顺序它并没有虚拟内存或 $ 其他 Win32 服务的好处。Autochk.exe 生成相同的文本输出的实用程序 Chkdsk.exe 所调用的 dll 类型。但是,除了显示在屏幕上的此输出在启动过程中,Autochk.exe 也将记录一个事件应用程序事件日志为包含尽可能多地文本输出到事件日志的数据缓冲区可以容纳的系统。

由于 Autochk.exe 和验证代码中使用的 Chkdsk.exe 实用程序 dll 都基于相同的源代码,两者都将被称为一般情况下"CHKDSK"整个本文的其余部分。同样,如本文只关心 CHKDSK 行为相对于 NTFS 卷中的更改,它应该了解的说,CHKDSK 会此-并且-此,"以下指:"CHKDSK 会此-并且-此 NTFS 卷上运行时"。

因为使用/C 和 / I 开关会导致卷剩余已损坏,甚至在 CHKDSK 完成后,使用这些开关的建议不要除了在位置必须保持系统停机时间最少的情况下。这些开关旨在由具有异常大的卷和谁需要灵活地管理时必须这样的卷上运行 CHKDSK 时累算的停机时间的用户使用。

若要了解时,它可能是适合于使用这些开关,值得有一些内部 NTFS 数据结构,类型的损坏,可能会发生,它验证一个卷和 $ 潜在后果处于规避 CHKDSK 的常见验证步骤时,CHKDSK 所采取的操作的一个基本的了解。

CHKDSK 的活动分为三个主要"阶段"在此期间它会检查所有在"元数据"在卷上的和一个可选的第四个阶段。 元数据是关于数据数据。它是文件系统开销,因此为说,用于跟踪的有关的所有卷上文件的任何内容。元数据说明哪些分配单元组成的给定文件,哪些分配单元没有哪些分配单元包含坏的扇区等数据。一个文件中的"内容"另一方面,称为"用户数据。NTFS 保护通过使用事务日志的其元数据。因此未保护用户数据。

在其第一个阶段 CHKDSK 说它验证文件和从 0 到 100%完成的计数在屏幕上显示一条消息。此阶段 CHKDSK,请检查该卷的主文件表 (MFT) 中的每个文件记录段 (FRS)。每个文件和目录的 NTFS 卷上由唯一标识一个特定的 FRS 在 MFT 和完成百分比,CHKDSK 显示在此阶段是已经验证的 MFT 的百分比。此阶段 CHKDSK 将检查每个 FRS 的内部一致性,并生成两个位图,表示哪些 FRSs 之一是在使用,和其他卷上的哪些群集正在使用的 representing。此阶段的末尾 CHKDSK 知道哪些空间正在使用中,哪些有可用空间内 MFT 和作为一个整体在卷上。此信息在位图中自己的允许将其用 NTFS 的存储位图的结果进行比较的 CHKDSK 在磁盘上存储的跟踪的 NTFS。如果存在差异 CHKDSK 的输出中对它们进行说明。例如对于如果已在使用一个 FRS 发现已损坏,磁盘群集以前与相关联 FRS 最终会被标记为在 CHKDSK 的位图中可用,但将被标记为"正在使用"根据为 NTFS 的位图。

在其第二个阶段 CHKDSK 说它验证索引和计数从 0 到 100%完成第二次在屏幕上显示一条消息。此阶段 CHKDSK 将检查每个卷上的索引。 索引是实质上是 NTFS 目录和完成百分比,CHKDSK 显示在此阶段是具有要检查的卷上的目录的总数的百分比。此阶段 CHKDSK 检查的内部一致性卷上的每个目录,并还验证每个文件和目录由一个在 MFT FRS 被至少一个目录的引用。它还确认的每个文件或子目录中的每个目录引用实际上作为 MFT 中的有效 FRS 存在,检查循环目录引用。最后,它确认不同的时间戳和文件大小信息与文件相关的那些文件的目录列表中所有最新。此阶段的末尾 CHKDSK 有已没有"孤立"的文件和目录的所有清单都是合法的文件。孤立的文件是一个用于合法 FRS 存在,但其中未列出的任何目录中。找到孤立的文件时, 它可以通常被还原到其合法的目录提供的、 仍然大约是该目录。如果该目录应保存该文件不再存在,CHKDSK 将根区目录中创建目录,并将文件放在那里。如果目录列表找到该引用 FRSs 不再使用或正在使用中但并不对应于目录中列出的文件,则目录项只是将被删除。

在其第三个阶段 CHKDSK 说它验证安全描述符和计数从 0 到 100%完成第三次在屏幕上显示一条消息。此阶段 CHKDSK 将检查每个与每个文件和卷上的目录相关联的安全描述符。安全描述符包含有关文件或目录、 文件或目录的 NTFS 权限的所有者和审核的文件或目录信息的信息。在这种情况下,完成百分比是数量的该卷上的文件和目录的百分比。CHKDSK 验证每个安全描述符结构符合标准格式,并在内部保持一致。它不验证列出的用户或组实际存在的或所授予的权限中任何适当的方式。

如果使用/R 开关,则仅调用 CHKDSK 的第四个阶段。/ R 用于该卷的可用空间中找到坏扇区。在使用/R 时 CHKDSK 试图读取确认该扇区是可用的卷上的每个扇区。自然过程运行 CHKDSK,即使不使用/R 读取与元数据相关联的扇区。提供指定/R CHKDSK 的较早阶段读取与用户数据关联的扇区。找到一个无法读取的扇区后 NTFS 将添加包含该扇区到其列表不正确的群集的群集,并且如果群集中使用,分配一个新的群集,旧的工作。如果使用故障容错磁盘驱动程序的数据恢复,并写入新分配的群集。否则,用 0xFF 字节的图案填充新的群集。NTFS 在正常操作过程中遇到无法读取的扇区时, 它将还它们重新映射相同的方式。因此,/R 开关通常不是必需,但是可用作一种方便的机制,用于扫描整个卷,如果怀疑磁盘有坏扇区。

前面的段落为提供的 CHKDSK 正在执行什么实际操作来验证在 NTFS 卷的完整性仅最广泛的轮廓。有许多特定的检查每个阶段所做并没有提到的阶段之间的多个快速检查。这是只需为下面的讨论有关运行 CHKDSK 并提供在 SP4 中的新开关的影响所需的时间为基础的 CHKDSK 活动的更重要的方面来分级显示。

在第一个和第三个阶段的 CHKDSK,完成百分比指示器进步相对平稳。可以有一些 unevenness 率的这些阶段进行。不在使用中的 FRSs 需要较少的时间来处理比那些正在使用。较大的安全描述符需要更多的时间来处理比执行较小的文件等等。但总体,显示完成的百分比是一个相当准确的所需的该阶段的实际时间表示。

也是 CHKDSK 的如此不一定为第二个阶段。处理目录所需的时间量紧密与相关的文件或子目录的目录中列出的数量。但是,完成百分比在此阶段中列出的是要检查而不考虑这一事实,某些目录可能要花费更长的时间比其他处理的目录数的百分比。例如对于许多小的目录和一个非常大的卷上完成的百分比可能从 0 到 10 的完成百分比进度快速且然后出现停滞较长的快速进入从 10 到 100%完成之前的时间。因此,除非您知道特定的卷上目录是相对于其包含,显示"完成百分比"过程中的文件数高度统一这一阶段不能被视为一个可靠的表示形式的此阶段中剩余的实际时间。

发现意外的 CHKDSK 的中间部分的任何人都使糟,第二个阶段是 CHKDSK 的通常要花费时间最长为运行的。

到目前为止,它应该是明确指出不必执行与卷的状态播放在多长时间的 CHKDSK 的垂直滚动的许多因素会运行。预测在给定卷上运行 CHKDSK 所需的时间将不得不考虑到公式帐户作为文件和目录的数目、 卷的碎片程度等因素通常也作为的主文件表中具体的而言是否文件具有两种长的名称和 8.3 格式名称,和多少损坏实际需要修复。这说没有任何硬件问题 (例如,在的 CPU 的一个或多个磁盘,速度的速度的系统内存量,依次类推。

而不尝试预测长 CHKDSK 会在给定的硬件平台上运行,对于给定的卷,请说它可能需要任意位置几秒钟到几天--根据您的特定情况已足够。除非使用/R,给定的硬件平台的最大的问题是文件和目录的数量,而不是该卷的绝对大小。也就是 50 GB 的卷的一个或两个大的数据库文件将只需要运行提供没有指定/R,则 CHKDSK 秒时间。如果指定/R,则 CHKDSK 将不得不读取验证在的卷上的每个扇区并将的清楚地添加明显的较大的卷。另一方面,甚至一个相对较小的卷可能需要数小时才能运行 CHKDSK,它有数百个数千乃至数百万个较小的文件--如果不论指定了/R。

最好的方法来预测长 CHKDSK 将使其在给定卷上运行是实际在一段内较低的系统使用情况进行试验以只读模式。必须小心使用但是,此技术的三个原因:
  • 如果它在更早的阶段中遇到错误,而且容易错误地报告错误在只读模式下完成所有三个阶段之前,将会中止只读 CHKDSK。也就是 CHKDSK 可能会报告磁盘已损坏即使不存在的实际损坏。如果 NTFS 发生修改的名义 CHKDSK 正在检查在同一时间某些程序活动在磁盘的区域,就会发生这种情况。要正确验证卷,卷必须是一个静态状态,以保证该状态的唯一方法是锁定卷。在指定/F 或/R (即表示"F") 时,CHKDSK 只锁定卷。因此,您可能需要多次运行 CHKDSK,以使其完成在只读模式下的所有阶段。
  • 系统负载和联机或在 Windows NT 启动序列期间是否运行 CHKDSK 可能会影响运行 CHKDSK 所需的时间。CHKDSK 是 CPU 和磁盘密集型。哪些因素成为瓶颈将取决于特定的硬件方案但,如果大量磁盘 I/O 或 CPU 使用率过高进行并发使用只读 CHKDSK,放大时间将导致。此外,Autochk.exe 比 Chkdsk.exe 不同的环境中运行。而通过 Autochk.exe 运行 CHKDSK 为独占使用的 CPU 和 I/O 资源提供了 CHKDSK,它还 deprives CHKDSK 的虚拟内存的好处。因此时运行得更快 Chkdsk.exe 比将通常应 Autochk.exe,, 具有相对较低的大量内存的系统可能会看到较长的时间 Autochk.exe 比为 Chkdsk.EXE 的。
  • 修复损坏将添加到所需时间。没有明显坏的情况下,才可以完成一个只读 CHKDSK。如果磁盘受到影响只次要损坏,修复问题所需的时间将仅略有超过所需的只读 CHKDSK 的。如果没有主要的损坏,因为可能会导致严重的头崩溃或其他主要从硬件故障,运行 CHKDSK 所需的时间,但会增加的损坏的文件数成正比。在极端的情况下,这可能超过两倍所需的 CHKDSK 的时间。

/ C 和/I 简介交换机

/ C 开关指示 CHKDSK 跳过的目录结构中检测周期检查。周期是损坏的极少数的子目录有其自身的祖先的窗体。使用/C 开关可以加快速度大约是 1 到 2 %的 CHKDSK。使用/C 可以也保留在 NTFS 卷上目录"循环"。此类循环可能无法访问目录树的其余部分,并可能会导致文件被孤立的它们不能看到任何 Win32 应用程序--包括备份应用程序的某些数字。

/ I 开关指示 CHKDSK 跳过检查进行比较来与这些项相对应的 FRSs 的目录条目。因此,虽然目录条目仍会检查是确保它们是前后一致,它们不一定与数据存储在其相应 FRSs 即使 CHKDSK 一致已运行用该开关有效。通常使用/I 开关结果 CHKDSK 时间被降低了 50 到 70%。 完全多少速度更快的 CHKDSK 是使用此开关将取决于许多因素,如文件的目录的比例以及相对速度的磁盘 I/O 和 CPU 速度,因此,难预先预测。使用/I 开关会导致剩余的不正确的 FRSs,请参阅或中的剩余 FRSs 没有引用任何目录条目的目录项。更高版本的情况是另一种形式的 orphaning。FRS 由表示该文件可能除外它是看不到所有 Win32 应用程序包括备份应用程序这一事实的所有方式不变。在前一种情况下的文件可能似乎存在 ; 试图对其进行访问时,应用程序还遇到错误。

当在卷上检测到磁盘损坏时,您有三个基本选项

  • 不执行任何操作。对于使命关键服务器应是全天 24 小时联机的这通常是必需项的选择。在此选项的缺点是相对次要损坏可以"snowball"到主要损坏如果它不修复尽可能快地检测到它后。因此,此选项应仅将其视为让系统保持正常是更重要的运行时存储已损坏的卷上,因为已损坏的卷上的所有数据,应将其都视为"at 风险"CHKDSK 直到数据的完整性。
  • 运行完整的 CHKDSK。此选项修复所有的文件系统数据还原自动化过程的方式都可以恢复的所有用户数据。 在此选项的缺点是完整的 CHKDSK,在一个 inopportune 时可以要求使命关键服务器的几个小时的停机时间。
  • 运行一个缩写的 CHKDSK 使用/C 和 / I 开关的某种组合。此选项修复损坏,可以"snowball"的种类更大的问题更少的时间比完整的 CHKDSK 将需要,但不会修复所有损坏可能存在的。 完整的 CHKDSK 仍将要求在保证可恢复的数据已恢复所有将来的某个时间。
它应该会指出 NTFS 不能保证甚至在检测到损坏后立即运行完整的 CHKDSK 时遵循的磁盘损坏--实例的用户数据的完整性。因此,可能有 CHKDSK 无法恢复的文件。此外,恢复的文件可能已在内部损坏即使已运行 CHKDSK。它,因此,保持至关重要的定期备份或 $ 其他强健的灾难恢复方法的 regimen 的方式保护的使命关键数据。

属性

文章编号: 187941 - 最后修改: 2007年2月19日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft Windows NT Server 4.0 Terminal Server(终端服务器)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Workstation 4.0 开发员版
  • Microsoft Windows NT 4.0 Service Pack 4
关键字:?
kbmt kbfea kbfix kbinfo KB187941 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 187941
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com