如何在 Windows 10 上安全地停止“chkdsk /r /f C:”?

如何在 Windows 10 上安全地停止“chkdsk /r /f C:”?

chkdsk /r /f C:在 Windows 10 上启动了一个程序,但现在它正在运行,我想取消它。直接关闭计算机可能会导致损坏,那么我该如何安全地中止它呢?

Ctrl+C 不是一个选项:我在安装了 Windows 的驱动器上运行 chkdsk /r /f。这在 Windows 运行时无法完成,只能在启动时(CMD 之外)完成。它不响应 ctrl+c。

注意:链接的重复问题不是同一个问题。该问题是关于跑步的chkdsk 没有参数,这是安全的,因为它以只读模式运行。标志/r /f导致chkdsk以读写模式运行,因此通常不安全地终止该进程。它需要正常终止。某些实现fsck(Linux 等效)可以正常停止 - 即使在修复模式下 - 因此理论上绝对可以安全地停止一个chkdsk过程。主要问题是:Windows 开发人员是否真的实现了一个正常取消程序,如果是,我该如何触发它?

答案1

不确定从哪个版本的 Windows 或 chkdsk 本身开始出现这种情况,但有关它的 Microsoft Learn 页面说

取消或中断 chkdsk 不应使卷比运行 chkdsk 之前更损坏

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk?tabs=event-viewer

我相信,

  • 使用 Sysinternals 的 Process Explorer 首先暂停 chkdsk 进程(并监听所有硬盘噪音是否结束),只是为了让自己更加安心,然后
  • 打开了另一个具有提升权限的 cmd 窗口并执行“chkdsk /xe:”(使用您自己的驱动器号),因为我在其他地方看到了这个建议,并且/x:

如果必要,强制先卸载卷。驱动器的所有打开句柄均无效。

  • 最后按下进程资源管理器中的 Del 键来终止原始 chkdsk 进程。

随后没有发生大灾难,磁盘上有一些损坏,但总体上只是我预料到的比例,因为我已经有 1-1.5 年没有刷新大部分数据了。(但我还有第二份副本,在用 Beyond Compare 比较了所有内容后,我可以从中恢复任何内容。)

最好不要停止 chkdsk,甚至微软似乎也不太确定他们自己的答案,从他们选择的措辞可以看出:“不应该”让卷进一步损坏。但如果风险/收益分析迫使你这样做,我会说尽量不要太突然,尝试将过程分为几个阶段,如暂停/挂起/卸载/等。(例如,现在我在想,我应该在挂起进程后尝试关闭 Windows,而不是自己杀死它,也许这样会更谨慎地以文明的方式“停用更多的东西”,并以某种方式为最终杀死进程创造更好的条件,并让 HDD 自己的控制器在关闭电源之前自行进行一些清理)。

答案2

一旦进程开始,您就无法停止chkdsk它。安全的方法是等到它完成。在检查期间停止计算机可能会导致文件系统损坏。

答案3

编辑:正如评论中指出的那样,没有安全的选择(但您可以使用更多或更少的风险时刻)。

如果它在启动前运行,并且您已通过第 3 阶段,即第 4 阶段或第 5 阶段,那么您只需重新启动计算机即可。我已经在第 5 阶段(即检查可用空间的阶段)进行了此操作,并且它启动正常。如果您在第 1 至第 3 阶段重新启动计算机,则存在丢失数据的风险。

来源:诺曼·皮卡德

答案4

这是我的输出chkdsk

File record segment 36383 is unreadable.
 1 percent complete. (36384 of 247328 file records processed)
File record segment 36384 is unreadable.
 1 percent complete. (36385 of 247328 file records processed)
File record segment 36385 is unreadable.
 1 percent complete. (36386 of 247328 file records processed)
File record segment 36386 is unreadable.
 1 percent complete. (36387 of 247328 file records processed)
File record segment 36387 is unreadable.
 1 percent complete. (36388 of 247328 file records processed)
File record segment 36388 is unreadable.
 1 percent complete. (36389 of 247328 file records processed)
File record segment 36389 is unreadable.
 1 percent complete. (36390 of 247328 file records processed)

我认为就我而言,杀死 PID 是安全的;)

相关内容