每次重启时如何运行 chkdsk?

每次重启时如何运行 chkdsk?

不久前有一个问题,在登录屏幕出现之前运行程序,我以为他的意思是根据图片他想在启动时运行 chkdsk,但他实际上想运行另一个程序。

好吧,我专门针对 chkdsk 进行了回答,我认为有些人可能会对我的“如何在每次重启时运行 chkdsk?”的解决方案感兴趣。

答案1

基本上,如果您只是想在每次启动时运行 chkdsk /f 或 chkdsk /r,您可以将其设置为在关机时运行,而不是尝试让它在 中工作HKLM\SYSTEM\CurrentControlSet\Control\Session Manager

方法如下:

创建一个文件 C:\WINDOWS\system32\confirm.txt,y其中包含 JUST。

然后创建 C:\WINDOWS\system32\Chkdsk_Reboot.bat,其中包含以下代码:

echo y > confirm.txt
chkdsk c: /f /x < confirm.txt

现在,如果您拥有 XP Pro 或其他专业级操作系统,请打开 gpedit.msc>计算机配置>Windows 设置>脚本>关机,然后添加 Chkdsk_Reboot.bat 作为关机脚本。

下次重启后您将运行 chkdsk 命令。

我不确定这是否适用于 XP home,因为它没有 gpedit.msc。您可以创建此目录结构并在那里添加批处理文件,但我不确定它是否有效,因为 Home 不使用组策略:C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown

在此处输入图片描述

答案2

chkdsk已经设置为在每次启动时运行。

查看HKLM\SYSTEM\CurrentControlSet\Control\Session Manager并找到名为 的多字符串 ( REG_MULTI_SZ) 条目BootExecute。值“ autocheck autochk *”表示chkdsk将在启动时运行,但是您将看不到它,因为它在后台运行,搜索磁盘错误。

如果chkdsk检测到某些磁盘问题,那么您将看到带有全磁盘扫描的蓝屏。

编辑:

自动检查选项示例,根据这里(部分:“脏位与注册表“Autochk”条目”):

Sample command              Resulting registry entry 
==============              ========================
Chkdsk C: /F                Autocheck autochk /p \??\C: 
Chkdsk C:\mountpoint /F     Autocheck autochk /p \??\VOLUME{GUID} 
Chkntfs D: E: /X            Autocheck autochk /k:D /k:E * 
Chkntfs G: /C               Autocheck autochk /m \??\G: 

相关内容