为什么 Windows 每次启动时都会运行 CHKDSK?

为什么 Windows 每次启动时都会运行 CHKDSK?

每次打开电脑时,我都会收到以下消息:

Checking file system on E:
The type of the file systen is NTFS.
One of your disks need to be checked for consistency. You may cancel the disk check, but it is strongly recommended that you continue.
Windows will now check the disk.

CHKDSK is verifying files (stage 1 of 3)... 0 percent completed

我允许 CHKDSK 完成,但 Windows 未加载。每次启动计算机时都会出现此消息。

有人能解释一下为什么会出现这个消息以及我该怎么做才能让它消失吗?

答案1

当您安排检查磁盘时,注册表中会添加一个条目 - 但出于某种原因,该条目不会被清除。

  1. 运行注册表编辑器(单击“开始”、“运行”,regedit然后输入“确定”)。
  2. 定位HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  3. BootExecute将条目从:更改
    autocheck autochk * /r\DosDevice\C:
    为:
    autocheck autochk *

来源: http://support.microsoft.com/kb/158675

答案2

如果您没有要求执行 chkdsk,则在设置了磁盘“脏位”的情况下将执行自动检查。如果 Windows 未正确关闭、文件更改未完成或磁盘已损坏,则会设置此项。这可能表示磁盘即将发生故障。对于外部磁盘,这可能表示它是在未使用“安全删除硬件”功能的情况下被移除的。

文件系统工具命令可用于检查脏位的状态。使用管理员权限打开命令提示符并输入:

fsutil dirty query D:

(替换D:为您遇到问题的驱动器的字母。)

答案3

  1. 单击开始菜单并打开运行对话框。
  2. 键入cmd并返回
  3. 下一步fsutil dirty query D:(替换D:为您的驱动器号)

fsutil 脏查询

如果返回消息表明该卷很脏,则继续执行以下步骤:

  1. 下一类型chkdsk D: /f /x
  2. 完成后重复步骤 3 以确定脏位是否已被删除。
  3. 如果它不再脏,则重新启动,您应该注意到不再有 chkdisk。

信息来源

答案4

原因示例:
就我而言,检查磁盘(在启动时)是由“糟糕的”配置错误(重新)生成的自定义关机批次|命令,它(意外地)使系统认为关机是“意外的”(不是正常关闭)并设置磁盘检查。 - 如果“脏”磁盘是 Windows 磁盘(C:),则必须先卸载 - 但是,由于该磁盘正在被系统使用,因此在下次启动时设置自动 chkdsk。

引起更多解释:
我设置了一个“空闲时运行”的“计划任务”,该任务在(1 小时)指定的空闲时间到期后触发自定义HurryCleanNShutDown.bat|cmd 程序。因此,该程序(例如)启动“清理”,等待完成,然后关闭(强制)计算机。即使我尝试了许多关机开关(/d)组合(SHUTDOWN.exe /s /t 60 /f /d p:0:0 /c "PC shutting down... (in 1 minute)"甚至使用chkNTFS /x c:),计算机仍会出现相同的问题,只有当关机由此批处理|程序触发时才会出现。

请注意,如果任何第三方程序无法使用正确的关机命令语法,则可能导致此错误的 chkDSK 错误。

ShutDown 的使用:shutdown /?)
-Fshutdown没有伴随必需的/d带有‘原因代码’的‘开关’ p|u:xx:yy,则系统将此‘关机’ shutdown /s(或‘重启’ shutdown /r)视为“意外“(通常不关闭)。
- 如果发生上述情况,系统会将光盘标记为“肮脏的“(位)在注册表中并提示进行磁盘检查或者chkDSK C: /f ... /x(如果当前系统的驱动器 [C:] 正在使用中),则在下次启动时 设置自动 chkdsk( )(因为系统驱动器必须先卸载)。
- 成功“chkDSK”后,系统将恢复正常chkNTFS /d---> [RegEdit: BootExecute 值数据:“autocheck autochk *”]。

修复:

建议使用“命令提示符” (以管理员身份运行) 而不是“注册表编辑器”。
使用chkNTFS自动更改的命令更容易
---> “BootExecute REG_MULTI_SZ” 数据值。(下面是示例)

另外,如果计算机无法启动,
chkDSK 和 chkNTFS 命令也可以从恢复控制台运行。
/!\ 警告:从 Recovery 运行时,命令“switches”略有不同。
提示:chkntfs /?chkdsk /?要锯的用途。

  • 如何检查磁盘是否被指出“脏”:
    fsutil dirty query c: (“c:”是磁盘号)

  • 如何强制检查磁盘(E:):
    chkNTFS /c E: (“E:”是磁盘号)
    ---> [RegEdit: BootExecute 值数据: “autocheck autochk /m ??\E:”]
  • 如何取消下次启动时检查: (从默认启动时检查中排除驱动器。)
    chkNTFS /x c: (“c:”是磁盘号)
    ---> [RegEdit: BootExecute 值数据:“autocheck autochk /k:C”]
  • 如何恢复默认值: (将机器恢复为默认行为:
    在启动时检查所有驱动器,并对脏的驱动器运行 chkdsk。)

    chkNTFS /d---> [RegEdit: BootExecute 值数据:“自动检查 autochk *”]

    (i)注册表项地址:
    [ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute]
    BootExecute REG_MULTI_SZ (多字符串值)


以下几乎涵盖了以下内容: 作者:理查德·约翰·伊顿
https://social.msdn.microsoft.com/Forums/en-US/.../force-autochk-at-every-boot-up

相关内容