![如何在 Windows 启动时禁用所有驱动器的自动 chkdsk?](https://linux22.com/image/1293895/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E5%90%AF%E5%8A%A8%E6%97%B6%E7%A6%81%E7%94%A8%E6%89%80%E6%9C%89%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%9A%84%E8%87%AA%E5%8A%A8%20chkdsk%EF%BC%9F.png)
我有一个包含多个分区的系统,既有 Windows 分区,也有 Linux 分区。问题是,在启动过程中,Windows 会尝试运行在每个可能的分区上进行 autochk(包括 ext4 等,它将其视为 RAW)。
我知道,可以通过修改注册表值来从 autochk 中排除磁盘/分区BootExecute
,但我见过的所有解决方案都需要指定排除的分区字母。虽然这适用于 FAT 和 NTFS 分区,Linux 分区没有分配任何字母,这意味着,我无法将它们指定为 autochk 排除。
那么,问题是,如何才能完全禁用系统中所有驱动器的 autochk?或者,如果 autochk 无法完全关闭,请对没有驱动器号的分区禁用它。
更新:实际上,你可以直接将其autocheck autochk *
从 BootExecute 中删除,不会出现任何问题。如果有多个 Linux 分区,它将大大加快启动时间(尤其是当操作系统位于 SSD 上时)。但是,在这种情况下,应不时进行手动检查。
答案1
遇到了同样的问题,并且能够通过运行 Siva Charan 建议的命令来解决它,但不能使用驱动器号(因为不存在驱动器号并且无法分配),而必须使用启动时显示的 GUID(启动时的消息例如“扫描和修复驱动器(\\?\Volume{000012ab-0000-0000-005d-123456789012})”)。
因此,不要:
chkntfs /x c:
必须在提升的命令提示符或 Windows Powershell 中运行此命令:
chkntfs /x "\\?\Volume{000012ab-0000-0000-005d-123456789012}"
答案2
阻止 chkdsk 在启动时运行的正确方法是使用chkntfs
:
chkntfs /xc:
c:
您要从磁盘检查中排除的驱动器在哪里。您可以使用多个驱动器作为参数,如下所示:
chkntfs /xc: d:
各个开关的解释:
C:\Documents and Settings\Administrator>chkntfs /? 显示或修改启动时的磁盘检查。 CHKNTFS 卷 [...] CHKNTFS/D CHKNTFS /T[:时间] CHKNTFS /X 卷 [...] CHKNTFS /C 卷 [...] volume 指定驱动器号(后跟冒号), 挂载点或卷名。 /D 将机器恢复为默认行为;所有驱动器 在启动时检查,并对那些 肮脏的。 /T:time 将 AUTOCHK 启动倒计时时间更改为 以秒为单位指定时间量。如果时间未 指定时,显示当前设置。 /X 从默认启动时检查中排除驱动器。排除 驱动器不会在命令调用之间累积。 /C 安排在启动时检查驱动器;chkdsk 将运行 如果驱动器很脏。 如果没有指定开关,则 CHKNTFS 将显示指定驱动器是否 脏了或者计划在下次重启时进行检查。
请参阅此处:-