Windows autochk和chkdsk有什么区别

2024-04-24 11:12:29 浏览数 (1)

Windows autochk和chkdsk有什么区别

主要分是否磁盘检测维度

一、磁盘检测维度

autochkchkdsk 都是 Windows 系统中用于检查和修复磁盘错误的实用程序,但它们在使用场景和执行方式上有所不同。以下是它们之间的主要区别:

1、使用场景:

  • autochk(自动检查)是在 Windows 启动过程中自动运行的实用程序。当系统检测到某个磁盘卷可能存在问题时,autochk 会自动运行,检查并修复问题。通常,用户无需手动运行 autochk
  • chkdsk(检查磁盘)是一个手动运行的实用程序,用户可以在命令提示符或 Windows 资源管理器中运行它。chkdsk 允许用户指定要检查的磁盘卷,以及要执行的检查和修复操作。

2、执行方式:

  • autochk 在 Windows 启动过程中运行,此时文件系统尚未加载。因此,autochk 可以在未加载文件系统的情况下对磁盘进行全面检查和修复。
  • chkdsk 在 Windows 运行时运行,此时文件系统已加载。如果 chkdsk 需要对磁盘进行独占访问(例如,修复系统卷),则可能需要在下次启动时进行检查。

总之,autochkchkdsk 都是用于检查和修复磁盘错误的实用程序,但它们在使用场景和执行方式上有所不同。autochk 在系统启动时自动运行,而 chkdsk 通常由用户手动运行。

二、其他维度

autochk 是一个多功能实用程序,它在 Windows 启动时运行,以确保操作系统的正常运行。除了检查和修复磁盘错误之外,autochk 还会执行以下任务:

  1. 检查注册表:autochk 会在启动时检查 Windows 注册表,以确保注册表的一致性和完整性。如果发现问题,autochk 可能会尝试修复损坏的注册表项。
  2. 检查卷脏标志:autochk 会检查文件系统上的卷脏标志(Dirty Bit),以确定是否需要运行磁盘检查。如果卷脏标志被设置,表明文件系统可能存在问题,autochk 将运行 chkdsk 以检查和修复磁盘错误。
  3. 其他启动时的逻辑检查:autochk 还可能执行其他一些与系统完整性和稳定性相关的启动时逻辑检查。

总之,autochk 不仅用于检查和修复磁盘错误,还负责执行其他一些启动时任务(非taskschd.msc计划任务),以确保操作系统的正常运行。

曾经遇到个奇葩案例,一个server2019自定义镜像啥都没变过,开同样的机型,2024.1.9之前创建的机器首次开机速度一样快,2024.1.9之后创建的机器首次开机速度比之前的慢了不下一倍。针对这个问题,做了如下研究:

注册表路径:C:WindowsSystem32config

1、导出原始.raw镜像,不改configsystem和configsoftware内容,只把时间改到1月10日后,转为vmdk,在VMware虚拟机里首次开机耗时长

2、导出原始.raw镜像,改configsystem和configsoftware(集成wpt到注册表,注册表文件时间自动更新了)已经验证过首次开机耗时短,且在集成wpt后再把2个注册表的时间改到1月9日之前,转为vmdk,在VMware虚拟机里首次开机耗时也短。规律就是只要动了configsystem和configsoftware注册表内容,就失去开机耗时长的现场了。

综上,跟注册表文件的时间戳关系不大,跟注册表文件内容的变化有关。百思不得其解,最后想到时间因子是关键,毕竟云平台侧啥都没变,镜像放了几个月突然到某个时间点就开机耗时变长了。我能想到的就是Server2019的生命周期,正好Mainstream End Date就是2024.1.9

而我最后一次测试开机耗时正常就是2024.1.9,过了1周,2024.1.16发现开机耗时变长

不清楚2024.1.9-2024.1.16期间发生了什么,云平台侧查了好几圈都没发现问题

经过十几次测试,发现原镜像的注册表改动一下,现场就丢失了

联想到微软的多个操作系统的end date都在1.10附近,猜测跟这个关系很大,记得上大学时做了一个小软件,当时给这个软件设置了过期时间,到了未来那个时间后就会自动出现一种强制交互机制,如果微软有这种类似机制,完全有可能在Mainstream End Date后触发autochk重新校验硬件、文件系统、注册表,这点通过过滤系统日志EventID 4688能看到,可参考我这篇文档https://cloud.tencent.com/developer/article/2322936

0 人点赞