fsutil 是什么
fsutil 是面向文件系统底层的命令行工具,主要用来查询卷与 NTFS 的内部状态:脏位(dirty bit)、可用空间、USN 变更日志、簇与记录大小等。它属于「解释现象」的工具——比如为什么每次开机都自动跑磁盘检查、为什么增量备份突然变慢,答案常常就在这些参数里。它以只读查询为主,少数子命令会修改状态,用错会掩盖真实故障。
基本信息
| 适用平台 | Windows 全版本(NTFS 卷),所有子命令需要管理员权限 |
|---|---|
| 脏位查询 | fsutil dirty query C: 查看卷是否被标记为需要检查 |
| 空间信息 | fsutil volume diskfree C: 输出总量、可用与剩余空间 |
| NTFS 参数 | fsutil fsinfo ntfsinfo C: 显示扇区、簇、MFT 记录等底层参数 |
| USN 日志 | fsutil usn queryjournal C: 查看变更日志 ID、容量与下一个 USN |
| 相关子命令 | file(按安全标识查文件)、sparse(稀疏文件标记)、reparsepoint、volume |
典型使用场景
- 开机反复自检:确认脏位是否一直未清除,定位为什么每次都安排 chkdsk
- 空间对不上:用 diskfree 拿到底层可用字节数,与资源管理器显示对照
- 备份变慢:查看 USN 日志的容量与状态,判断是否被重建或溢出
- 性能调优前取证:读取簇大小与分区偏移等参数,确认对齐与配置
- 文件归属查询:在无法用资源管理器定位时按安全标识查文件所在位置
常用示例
常用示例
fsutil dirty query C: # 卷是否被标记为脏(需要检查)
fsutil volume diskfree C: # 总容量、可用与剩余字节数
fsutil volume info C: # 卷标、序列号与文件系统信息
fsutil fsinfo ntfsinfo C: # NTFS 底层参数:扇区、簇、MFT
fsutil fsinfo volumeinfo C: # 卷能力集(是否支持压缩、配额等)
fsutil usn queryjournal C: # USN 变更日志的 ID、最大容量与下一个 USN
fsutil fsinfo drivetype D: # 判断盘是固定盘、可移动盘还是网络盘
REM 谨慎使用:让下次开机强制执行检查
REM fsutil dirty set C:
REM 慎用:清除脏位标记(会掩盖真实问题)
REM fsutil dirty clear C:常用子命令读法
| 子命令 | 看什么 | 异常表现 |
|---|---|---|
| dirty query | 卷是否被标记为脏 | 长期为脏 → 每次开机都安排检查 |
| volume diskfree | 底层容量与可用字节 | 与资源管理器差异过大需查配额与影副本 |
| fsinfo ntfsinfo | 簇大小、MFT 记录大小 | 簇过大浪费空间,过小影响性能 |
| usn queryjournal | USN 日志 ID 与容量 | 日志被重建或容量异常影响增量备份 |
| fsinfo drivetype | 卷的类型属性 | 误把网络盘或可移动盘当本地盘处理 |
脏位表示「这个卷需要做一致性检查」,通常来自异常断电、强制关机或文件系统错误。正确处理是先让 chkdsk 真正跑完并成功,再看脏位是否仍存在;直接清位只是把提示关掉。
USN 变更日志被搜索索引、增量备份、杀毒软件等大量使用。查询日志本身完全安全,但重建或删除日志会破坏依赖它的增量备份基线,属于有后果的操作。
配合 chkdsk 的排查流程
配合 chkdsk 的排查流程
fsutil dirty query C: # 1. 确认是否标记为脏
REM 2. 安排一次真正的检查(只读模式先看结论)
REM chkdsk C: /scan
REM 3. 需要修复时安排在维护窗口
REM chkdsk C: /f
fsutil dirty query C: # 4. 检查完成后再次确认脏位已清除
Get-WinEvent -LogName System -MaxEvents 30 | Where-Object ProviderName -like '*Ntfs*' # 结合日志看文件系统报错不要用 fsutil dirty clear 来「解决开机自检」:清掉标记并不会修复文件系统,只是让问题延后暴露,数据损坏风险仍在。修完再清,顺序不能颠倒。