ReFSUtil (Resilient File System Utility)专门用于 ReFS 分区的修复、元数据检查、空间分析、完整性流管理、快照清理、损坏块扫描修复。ReFS 专属专用工具,自 Windows Server 2012(ReFS 正式发布)才新增,仅针对 ReFS 特有容错、完整性、块分配机制操作。
一、ReFSUtil
- 完整全称拆分
ReFSUtil = Resilient File System Utility
- ReFS:Resilient File System(弹性文件系统,微软新一代容错文件系统)
- Util:Utility(工具、实用程序)
程序实体:
refsutil.exe作用:专门用于 ReFS 分区的修复、元数据检查、空间分析、完整性流管理、快照清理、损坏块扫描修复。
二、fsutil
- 完整全称拆分
fsutil = File System Utility
- fs = File System(文件系统)
- util = Utility(实用工具)
程序实体:
fsutil.exe作用:Windows 通用文件系统底层管理工具,同时支持 NTFS/FAT32/exFAT/ReFS,提供配额、硬链接、稀疏文件、USN 日志、文件锁定、磁盘元数据等底层操作。
三、Microsoft Learn
补充区分
fsutil:通用全文件系统工具,Windows 历代系统内置;refsutil:ReFS 专属专用工具,自 Windows Server 2012(ReFS 正式发布)才新增,仅针对 ReFS 特有容错、完整性、块分配机制操作。


ReFSUtil(Resilient File System Utility)完整演进脉络
refsutil.exe,是微软配套 ReFS 弹性文件系统的专属底层运维工具,生命周期完全跟随 ReFS 文件系统版本迭代,每一代 Windows Server / 桌面系统同步新增对应子命令,用于修复、完整性校验、存储优化、故障抢救。
一、初代空白阶段:Windows Server 2012 / 2012 R2(ReFS v1.1 /v1.2,无独立 refsutil.exe)
核心背景
- 无独立专用工具
ReFS 底层校验、简单修复能力全部封装在
fsutil.exe通用文件系统工具中,无独立 refsutil; - 仅支持基础 fsutil 子命令操作 ReFS:
fsutil refsinfo:查看卷版本、校验和类型、集群大小;fsutil repair:基础在线完整性修复;
- 初代 ReFS 短板对应工具局限:
- 无 RAW 卷深度抢救能力(无 salvage 数据打捞);
- 无压缩、重复数据删除、快照管理、引导扇区修复功能;
- 文件系统严重损坏只能依靠第三方磁盘恢复工具;
- 配套约束:ReFS v1.x 不支持硬链接、块克隆、重复删除,因此工具无对应优化子命令。
二、雏形诞生阶段:Windows Server 2016 RTM(ReFS v3.1,refsutil.exe 首次内置)
关键里程碑:refsutil.exe 正式随系统预装,脱离 fsutil 独立工具
- 新增基础核心子命令集(初代最小功能集)
refsutil integrity:管理 ReFS 标志性完整性流,开启 / 关闭文件校验和、扫描损坏数据块,ReFS 核心容错配套功能;refsutil leak:检测并回收元数据、集群资源泄漏(v3.1 重构 B + 树元数据结构,易产生空间泄漏);refsutil iometrics:卷 IO 性能采集,用于 S2D 直连存储集群性能排查;
- 底层适配 ReFS v3.1 重大架构升级:
支持块克隆、大尺寸 VHDX 虚拟化磁盘,refsutil 可校验克隆块元数据一致性;
- 遗留短板:
- 无
salvage深度抢救命令,RAW 损坏卷无法批量导出文件; - 无
fixboot引导修复(v3.1 仍不支持 ReFS 系统启动分区); - 无压缩、重复数据删除(dedup)子命令;
- 无
- 桌面端限制:Win10 1607 仅支持读取 ReFS,不预装 refsutil,仅服务器可用。
三、功能成型分水岭:Windows Server 2019 / Win10 1709+(ReFS v3.4,新增核心灾难恢复能力)
本次迭代是 refsutil 最重要升级,补齐数据抢救短板,生产环境标准化
- 重磅新增
refsutil salvage数据打捞子命令(行业核心功能)Microsoft ...针对元数据严重损坏、磁盘显示 RAW 无法挂载的 ReFS 卷,分扫描阶段 + 复制阶段批量找回所有可恢复文件:- 快速扫描
-QS、完整深度扫描-FS;自动模式-QA/-FA;支持断点续扫、日志留存、手动分步执行; - 支持硬链接识别、跳过版本校验
-sv,兼容新旧 ReFS 卷跨版本恢复;解决此前 ReFS 磁盘 RAW 后数据几乎无法导出的痛点。
- 快速扫描
- 新增
streamsnapshot数据流快照管理适配 v3.4 新增文件级快照,用于 WBADMIN 备份、Hyper-V 虚拟机快照一致性清理、快照元数据校验; - 配套 ReFS v3.4 新特性:
原生支持重复数据删除,预留
dedup命令框架(仅基础查看状态,无完整调度); - 桌面端下放:Win10 工作站专业版、企业版预装 refsutil,普通家庭版仍移除;
- 修复初代工具缺陷:
- leak 命令优化,自动清理长期运行 S2D 集群元数据泄漏;
- integrity 完整性扫描支持后台低优先级运行,不抢占业务 IO。
四、存储优化全面扩充:Windows Server 2022 / Win11(ReFS v3.5~v3.7,压缩 + 去重完整落地)
两大存储优化子命令正式完善,面向 Azure Local、S2D 超融合场景
refsutil compression卷压缩全功能上线Microsoft ...管理 ReFS 块级 LZ4 压缩,支持全局开启 / 关闭、压缩率统计、批量重压缩冷数据、查询文件压缩状态;refsutil dedup完整重复数据删除调度工具配套 ReFS 原生块级去重,手动触发去重扫描、查看去重节省空间、清理过期重复集群、暂停 / 恢复去重任务;替代仅 PowerShell 的去重管理,运维可脚本批量调度;- 新增
refsutil fixboot引导扇区修复Microsoft ...适配 ReFS v3.7 新增系统启动分区能力,修复损坏引导扇区、重建分区元数据,ReFS 可作为系统盘后配套启动修复工具; - 其他增强:
- salvage 增强异构卷恢复,支持跨服务器导出恢复文件;
- iometrics 新增延迟、IO 队列深度统计,适配 NVMe 高速存储;
- 全部子命令支持标准日志输出,可重定向保存审计日志;
- 生态联动:与 WBADMIN 深度适配,streamsnapshot 配合 VSS 快照生成一致性备份镜像。
五、当前稳定完整版:Windows Server 2025 / Azure Local 23H2+(无架构变更,仅细节加固)
- 命令集完全固化,不再新增全新子命令,现有 9 大核心命令永久保留:
compression、dedup、fixboot、iometrics、leak、salvage、streamsnapshot、integrity、triage - 底层适配优化:
- 兼容 ARM64 Windows 服务器 ReFS 卷修复;
- salvage 支持超大容量 PB 级存储池分段扫描,避免内存溢出;
- dedup 优化增量扫描,仅对比变更块,大幅降低扫描耗时;
- 安全加固:
完整性流校验支持 SHA256 哈希,替代老旧 CRC32,防磁盘静默数据损坏;
- 边界兼容:向下兼容读取修复 ReFS v3.1~v3.7 所有版本卷,低版本 refsutil 无法处理新版 v3.7 卷。
六、分阶段功能迭代对照表
| 系统版本 | ReFS 内核版本 | refsutil 关键新增功能 | 核心定位 |
|---|---|---|---|
| Server2012/2012R2 | v1.1/v1.2 | 无独立 refsutil,仅 fsutil 基础操作 | 简易元数据查看,无修复工具 |
| Server2016 RTM | v3.1 | 首次内置 refsutil;integrity、leak、iometrics | 基础完整性校验、资源泄漏清理 |
| Server2019 / Win10 1709 | v3.4 | salvage 数据打捞、streamsnapshot 快照管理 | 灾难恢复核心工具落地 |
| Server2022 / Win11 | v3.5~v3.7 | compression 压缩、dedup 去重、fixboot 引导修复 | 超融合存储优化 + 系统盘修复 |
| Server2025 / Azure Local | v3.7+ | 性能优化、ARM64 兼容、SHA256 校验 | 全场景稳定运维工具,功能定型 |
七、演进底层核心逻辑(工具与 ReFS 绑定关系)
- 工具跟随文件系统内核同步迭代
refsutil 所有子命令均依赖对应 ReFS 内核 API,文件系统新增特性(完整性流、快照、压缩、去重、系统引导),才会新增配套 refsutil 子命令;v1.x 无独立工具,是因为初代 ReFS 容错能力弱、无复杂元数据结构。
- 从 “辅助校验工具” 演进为 “全生命周期运维套件”
- 2016:仅做元数据完整性检查;
- 2019:补齐故障抢救核心能力(salvage);
- 2022:新增存储优化功能,兼顾灾备与空间节省;
- 与 fsutil 分工明确(演进边界区分)
fsutil:通用跨文件系统工具(NTFS/FAT32/ReFS 通用基础查询);refsutil:ReFS 专属底层工具,仅处理 ReFS 独有特性,NTFS 完全不兼容;
- 向下兼容约束
高版本 refsutil 可修复所有旧版 ReFS 卷;低版本 refsutil 无法识别新版 ReFS 新增元数据(如 v3.7 引导分区、SHA256 校验块)。
八、演进总结
- 空白期(2012-2016):无独立 refsutil,ReFS 维护依赖 fsutil;
- 诞生期(2016):refsutil.exe 正式发布,提供基础完整性、泄漏检测;
- 成熟期(2019):新增 salvage 抢救命令,成为 ReFS 损坏卷唯一官方恢复工具,进入企业生产标准;
- 完善期(2022 至今):补齐压缩、去重、引导修复,覆盖超融合、虚拟化、系统盘全场景;
- 长期趋势:命令集不再新增,仅持续优化扫描性能、兼容新硬件架构,作为 ReFS 配套标准运维工具永久预装于服务器系统。
ReFSUtil(Resilient File System Utility)完整底层原理
一、基础程序分层与依赖载体
1. 程序主体
%SystemRoot%\System32\refsutil.exe
2. 三层调用架构
- 前端命令解析层(refsutil.exe)
负责解析子命令(
integrity/salvage/compression/dedup/fixboot等)、参数校验、控制台日志输出,仅做调度转发,不直接读写磁盘底层元数据。 - 核心业务逻辑层(refsutil.dll)
工具核心 COM/API 库,封装所有 ReFS 专属操作逻辑:元数据遍历、哈希校验、块修复、快照管理、压缩 / 去重调度;所有磁盘操作请求均由此库下发至内核。
- 内核驱动支撑层(refs.sys)
ReFS 文件系统内核驱动,提供标准文件系统控制码
FSCTL_XXX,refsutil.dll 通过 DeviceIoControl 下发 IO 控制指令,直接交互磁盘 B + 树元数据、集群分配表、完整性流块。
配套系统底层依赖
ntdll.dll:底层 NT 磁盘读写、内存页管理;vssvc.exe/VSSAPI:快照管理子命令streamsnapshot依赖卷影副本服务;volume manager (volmgr.sys):磁盘分区、RAW 脱机卷挂载管理;ci.dll:完整性哈希校验加密库(SHA256/CRC32 计算)。
二、ReFS 底层核心数据结构(refsutil 所有操作的操作对象)
- B + 树元数据库
ReFS 不用 NTFS 的 MFT 主文件表,采用多层 B + 树存储文件、目录、属性元数据;refsutil 遍历、修复、打捞文件本质是遍历 B + 树节点。
- 集群分配表(CAT Cluster Allocation Table)
记录磁盘每个集群块的占用状态、引用计数、重复块映射关系;
leak/dedup/compression子命令全部操作 CAT 表。 - 完整性流(Integrity Stream)哈希页
每个文件配套独立哈希校验页,存储每个 4K 数据块的 CRC32/SHA256 校验值;
integrity命令专门读写、比对该哈希流。 - 块克隆映射索引
重复数据删除、VHDX 块克隆共享块引用计数,
dedup子命令维护共享块生命周期。
三、各核心子命令底层执行原理
1. refsutil integrity(完整性流校验,ReFS 标志性容错核心)
底层执行流程
- 下发
FSCTL_REFS_QUERY_INTEGRITY_STATE控制码,查询卷全局完整性开关; - 扫描文件 B + 树,遍历所有文件的完整性流哈希页;
- 读取文件原始数据块,实时计算哈希,与存储的校验和比对:
- 匹配:数据无静默损坏;
- 不匹配:标记坏块,自动从镜像副本(ReFS 双向元数据冗余)恢复正确块;
- 支持两种模式:
- 在线扫描:不锁定文件,后台低优先级 IO 校验;
- 修复模式:自动修复校验和不匹配的损坏数据块;
底层约束
2. refsutil salvage(RAW 损坏卷数据打捞,灾难恢复核心)
适用场景:分区元数据头部损坏、磁盘 RAW 无法挂载、文件系统 B + 树根节点丢失
底层双阶段扫描原理
- 阶段 1:底层磁盘原始块扫描(跳过损坏分区头部)
refsutil 绕过 refs.sys 正常挂载流程,直接通过卷设备句柄读取磁盘原始扇区,逐块扫描识别ReFS 签名魔数(B + 树节点、CAT 分配表、文件元数据标记),不依赖分区引导元数据。
- 阶段 2:重建虚拟文件目录树
收集所有识别到的有效文件元数据块,在内存中重建虚拟目录 B + 树,还原文件名称、大小、时间戳、硬链接关系;
- 数据导出阶段
将识别到的完整文件块复制到目标 NTFS/ReFS 备份卷,跳过无法修复的损坏集群;
关键底层参数逻辑
-QS快速扫描:仅扫描磁盘前 20% 区块,识别根目录;-FS完整深度扫描:遍历全磁盘所有扇区,适合重度损坏;-sv跳过版本校验:忽略新旧 ReFS 版本元数据差异,兼容跨版本打捞。
3. refsutil leak(集群资源泄漏检测与回收)
底层原理
- 读取 CAT 集群分配表,对比块引用计数与实际文件 B + 树引用次数;
- 识别 “已删除文件但 CAT 标记仍占用” 的孤立集群块(元数据事务崩溃、快照未清理导致泄漏);
- 下发
FSCTL_REFS_RECLAIM_LEAKED_CLUSTERS指令,内核驱动释放无引用的泄漏块,回收磁盘空间;
典型场景
4. refsutil compression(块级 LZ4 压缩管理)
- 查询 / 修改卷全局压缩开关,下发控制码修改卷元数据头部压缩标记;
- 遍历 CAT 表识别未压缩冷数据块,调用 refs.sys 内置 LZ4 压缩算法批量重压缩;
- 统计压缩前后块占用差值,输出全局压缩节省空间;
- 解压操作仅修改 CAT 块标记,不修改原始数据文件。
5. refsutil dedup(重复数据删除调度)
底层基于块克隆共享机制
- 扫描所有文件数据块,计算块哈希,对比 CAT 表内已存在的共享块;
- 对重复块仅保留一份物理副本,修改多个文件的块指针指向同一物理集群,引用计数 + 1;
- 清理阶段:删除文件时引用计数 - 1,计数归零后释放物理块;
- refsutil 仅负责手动触发扫描统计,实时去重逻辑由 refs.sys 内核后台执行。
6. refsutil fixboot(ReFS 系统盘引导扇区修复)
- 读取磁盘 ESP 分区、ReFS 卷引导扇区元数据;
- 校验分区引导魔数、B + 树根分区指针、BCD 启动元数据;
- 自动重写损坏的引导扇区、重建根目录元数据节点,修复无法开机的 ReFS 系统盘;
底层限制
7. refsutil streamsnapshot(文件级快照管理)
- 遍历 ReFS 快照元数据树,读取快照版本链、差异块映射;
- 清理过期快照差异块,释放 CAT 表占用空间;
- 校验快照元数据与原文件块一致性,修复快照断裂无法挂载问题;
常配合 WBADMIN 备份使用,保证快照镜像数据一致性。
8. refsutil iometrics(IO 性能指标采集)
四、磁盘交互两种底层模式(挂载卷 / RAW 脱机卷)
模式 1:正常挂载模式(绝大多数日常操作)
模式 2:RAW 脱机裸卷模式(仅 salvage 抢救命令)
\\.\PhysicalDriveX物理磁盘设备句柄,绕过文件系统驱动,原始扇区逐块扫描,仅用于数据恢复,会短暂锁定磁盘,业务中断。五、权限底层控制原理
- refsutil 执行必须具备本地系统管理员 SeSecurityPrivilege、SeBackupPrivilege 备份权限;
- 普通用户执行时,无法下发 DeviceIoControl 磁盘底层控制码,只能读取基础卷信息,无法执行修复、压缩、打捞操作;
- RAW 物理磁盘 salvage 操作需要 SeLoadDriverPrivilege,访问原始物理磁盘设备句柄。
六、refsutil 与 fsutil 底层本质区分
| 工具 | 底层交互对象 | 可操作文件系统 | 核心能力边界 |
|---|---|---|---|
| fsutil.exe | 通用 Windows 文件系统内核接口 | NTFS/FAT32/exFAT/ 基础 ReFS 查询 | 通用卷配额、硬链接、稀疏文件、基础 ReFS 信息查询;无 ReFS 独有修复 / 压缩 / 去重逻辑 |
| refsutil.exe | refs.sys 专属 FSCTL 控制码、ReFS B + 树 / CAT 元数据 | 仅 ReFS | 操作 ReFS 独有结构:完整性流、块克隆、压缩、去重、RAW 卷数据打捞、引导修复 |
关键底层差异说明
七、完整执行流程极简总结
- 用户执行
refsutil 子命令 盘符; - refsutil.exe 解析参数,加载 refsutil.dll 核心库;
- 校验管理员权限,打开目标卷 / 物理磁盘设备句柄;
- refsutil.dll 生成对应 ReFS 私有 FSCTL 控制码,通过 DeviceIoControl 下发至内核 refs.sys 驱动;
- 内核驱动操作磁盘 B + 树、CAT 分配表、完整性哈希块,执行修复 / 压缩 / 扫描 / 打捞逻辑;
- 内核将执行结果、日志、统计数据回传至 refsutil.dll;
- 前端控制台输出结果,释放磁盘句柄,程序退出。
ReFSUtil(Resilient File System Utility)完整配套链
fsutil配套边界清晰。一、前端交互配套层(用户操作入口,统一调度底层逻辑)
- refsutil.exe 主程序
路径:
%windir%\System32\refsutil.exe职责:解析子命令(integrity /salvage/compression /dedup/fixboot 等)、参数合法性校验、控制台日志输出、权限预校验;仅做转发调度,不直接操作磁盘元数据。 - PowerShell 配套封装
内置 ReFS 存储模块,封装 refsutil 底层逻辑,提供对象化运维接口;批量脚本可调用
Start-Process refsutil或底层 WMI 存储类,用于 S2D 集群批量自动化巡检。 - CMD/Batch 批处理脚本载体
定时任务调用 refsutil 做周期性完整性扫描、泄漏回收、备份前快照清理,对接
schtasks.exe实现无人值守存储运维。 - 故障诊断配套:diskpart.exe
执行 salvage 抢救前,通过 diskpart 脱机损坏 ReFS 卷、分配临时盘符、挂载 RAW 物理磁盘,提供底层磁盘句柄给 refsutil。
二、核心业务逻辑配套(refsutil 真正功能实现载体)
- refsutil.dll 核心 COM/API 库
整套工具的业务中枢,refsutil.exe 加载后调用其导出函数;封装全部 ReFS 私有磁盘操作逻辑:B + 树遍历、哈希校验、块压缩、去重引用计数、快照元数据解析、RAW 磁盘扫描打捞。对外暴露标准化 DeviceIoControl 封装接口,隔离前端与内核驱动交互细节。
- refsapi.dll 轻量 ReFS 基础 API
提供卷版本、集群大小、完整性开关等基础查询接口,供 refsutil.dll、fsutil 共享调用。
三、内核驱动底层底座(refsutil 所有磁盘操作依赖)
- refs.sys ReFS 文件系统内核驱动(最核心依赖)
唯一可读写 ReFS 私有元数据(B + 树目录树、CAT 集群分配表、完整性哈希流、块克隆映射)的内核组件;refsutil.dll 通过ReFS 私有 FSCTL 设备控制码下发指令,由 refs.sys 执行底层磁盘块读写、修复、压缩、空间回收;区分两种工作模式:
- 挂载卷模式:正常读写已挂载分区元数据;
- RAW 裸盘模式:salvage 专用,直接读取物理磁盘原始扇区,绕过文件系统挂载流程。
- volmgr.sys/volmgrx.sys 卷管理器驱动
提供物理磁盘、分区、逻辑卷设备句柄,refsutil 访问
\\.\PhysicalDriveX原始磁盘依赖该驱动开放底层访问权限。 - ci.dll 代码完整性哈希库
为
refsutil integrity提供 CRC32/SHA256 哈希计算接口,比对文件数据块校验和,检测静默磁盘损坏。 - ntdll.dll NT 底层运行库
提供底层文件句柄、内存管理、异步 IO、设备控制 API,支撑 refsutil 所有磁盘读写操作。
四、系统支撑服务配套(特定子命令运行必备后台服务)
1. VSS 卷影副本服务(vssvc.exe)
refsutil streamsnapshot- VSS 负责生成、维护 ReFS 文件级快照差异块;
- refsutil 仅做快照元数据校验、过期快照清理、快照一致性修复;
- 联动 WBADMIN 备份,快照作为一致性备份底层载体。
2. Storage Tiers 存储分层服务(TierSvc.exe)
compression、dedup子命令:自动区分冷热数据块,refsutil 批量压缩冷分层数据,优化存储空间利用率。3. Windows 磁盘碎片整理服务(defragsvc.exe)
4. 任务计划程序(Schedule.exe/ TaskSchd.dll)
5. 凭据 / 权限配套:lsass.exe
五、ReFS 专属元数据配套(refsutil 操作的磁盘持久化载体)
- B + 树元数据页:文件、目录、属性索引,integrity、salvage 遍历扫描的核心对象;
- CAT 集群分配表(Cluster Allocation Table)
记录磁盘集群块占用、引用计数、压缩标记、去重共享块映射;
leak/compression/dedup子命令全部修改 CAT 表; - 完整性流哈希页:独立存储每个 4K 数据块校验和,integrity 命令读写比对;
- 快照差异链元数据:streamsnapshot 管理快照版本、增量差异块映射;
- 引导扇区元数据(v3.7+):fixboot 命令修复 ESP 分区、ReFS 系统盘引导头部。
六、灾难恢复链路配套(RAW 卷数据打捞、系统修复专用组件)
- WinRE Windows 恢复环境
离线救援场景内置精简版 refsutil,系统盘 ReFS 损坏无法进系统时,从 WinRE U 盘启动执行
refsutil salvage、refsutil fixboot离线修复;配套reagentc.exe管理本地恢复分区。 - diskpart.exe 磁盘分区工具
离线场景脱机损坏卷、分配临时盘符、清理异常分区表,为 salvage 提供裸磁盘访问通道。
- robocopy.exe 文件复制引擎
salvage 扫描识别有效文件后,调用 robocopy 批量导出恢复文件至目标 NTFS/ReFS 存储卷,支持超长路径、权限同步。
七、运维监控与管理配套(审计、批量管控、故障排查)
1. 事件日志审计配套
应用程序和服务日志\Microsoft\Windows\ReFS
2. 组策略管控配套
3. WMI 存储管理配套
root\Microsoft\Windows\Storage
MSFT_ReFSVolume、MSFT_ReFSIntegrity
4. 辅助调试配套:fsutil.exe
- fsutil:通用跨文件系统工具,仅支持 ReFS 基础卷信息查询,无法操作完整性流、压缩、去重、salvage;
- refsutil:ReFS 私有底层运维,fsutil 无法替代其专属修复、存储优化能力;
日常运维二者搭配使用,fsutil 做基础卷信息筛查,refsutil 深度修复优化。
八、上层虚拟化 / 超融合生态配套(业务联动组件)
1. Storage Spaces Direct(S2D 超融合集群)
leak命令定期回收集群共享存储池泄漏集群;compression/dedup为集群虚拟机存储池做空间优化;integrity批量校验集群多节点 ReFS 卷静默损坏;
2. Hyper-V 虚拟化配套
- Hyper-V VSS 写入器与 refsutil streamsnapshot 联动,生成一致性虚拟机快照;
- ReFS 存储 VHDX 虚拟磁盘,refsutil 块克隆、去重大幅降低虚拟机磁盘存储占用;
3. WBADMIN 备份配套
4. Azure Local / Azure Stack HCI 云超融合配套
九、配套链完整流转总流程
- 用户执行
refsutil命令(CMD/PowerShell/ 计划任务); - refsutil.exe 校验管理员权限,加载核心业务库 refsutil.dll;
- 按需启动依赖服务(VSS/TierSvc 等),通过 diskpart 预处理目标磁盘 / 卷;
- refsutil.dll 封装 ReFS 私有 FSCTL 控制码,下发至内核 refs.sys 驱动;
- refs.sys 操作磁盘 B + 树、CAT 分配表、完整性哈希等元数据,执行扫描 / 修复 / 压缩 / 打捞逻辑;
- 执行结果写入系统 ReFS 事件日志,控制台输出统计信息;
- 恢复场景:salvage 识别有效文件后,调用 robocopy 导出数据;虚拟化场景同步更新 VSS 快照链供 WBADMIN 备份使用。
十、配套链核心区分要点
- 强绑定专属组件:refs.sys、refsutil.dll、refsapi.dll,仅服务 ReFS 文件系统,NTFS 无对应驱动与工具库;
- 通用共享组件:ntdll、volmgr、VSS、diskpart、fsutil,全文件系统通用,仅部分能力适配 ReFS;
- 上层业务配套:S2D、Hyper-V、WBADMIN、Azure Local,refsutil 作为底层存储运维支撑工具嵌入整套存储生态;
- 离线救援配套:WinRE 内置精简 refsutil,实现无系统环境下 ReFS 磁盘修复与数据打捞。
ReFSUtil 标准实战示例 + 特殊小众用法 + 另类旁路场景
一、标准通用运维示例(日常巡检 / 修复主流用法)
1. 全局完整性流扫描 + 自动静默修复(防磁盘静默损坏)
:: 在线后台扫描D盘ReFS卷,自动修复哈希不匹配坏块
refsutil integrity D: /scan /repair /quiet
2. 检测并回收集群空间泄漏(S2D 长期运行必做)
:: 扫描E盘,输出泄漏块统计并自动释放孤立占用空间
refsutil leak E: /reclaim
3. 开启全局 LZ4 压缩,统计节省空间
:: 开启F盘ReFS块级压缩,完成后输出压缩率
refsutil compression F: /enable
refsutil compression F: /stats
4. 手动触发重复数据删除、清理过期重复块
# PowerShell 批量调度去重,适合虚拟机多副本存储
refsutil dedup G: /optimize
refsutil dedup G: /garbagecollect
5. 查看 ReFS 卷 IO 延迟、队列性能指标
refsutil iometrics D: /duration:30
6. 清理过期文件级快照,释放快照差异块空间
refsutil streamsnapshot D: /cleanupall
7. ReFS 系统盘引导扇区修复(v3.7+ 可启动 ReFS)
refsutil fixboot C:
二、特殊小众生产场景(机房 / 超融合专用,官方文档极少覆盖)
特殊 1:RAW 无法挂载损坏卷,快速轻度扫描抢救文件(-QS 快速扫描)
:: 直接读取物理磁盘2,快速扫描可识别文件导出至备份盘Z:
refsutil salvage \\.\PhysicalDrive2 Z: -QS
offline disk X脱机磁盘避免占用冲突。特殊 2:重度损坏 ReFS 卷全磁盘深度扫描(全盘扇区遍历)
refsutil salvage \\.\PhysicalDrive3 D:\Recover_Files -FS -sv
-sv:跳过 ReFS 版本校验,兼容 v3.1/v3.4/v3.7 跨版本数据打捞。特殊 3:仅备份 ReFS 完整性哈希元数据,不复制业务文件
:: 导出D盘所有文件完整性哈希清单至日志文件
refsutil integrity D: /scan /listhashes > D:\Refs_Hash_Backup.log
特殊 4:定时任务后台自动巡检,失败写入运维日志
@echo off
refsutil integrity D: /scan /repair >> C:\StorageLog\RefsHealth.log
refsutil leak D: /reclaim >> C:\StorageLog\RefsHealth.log
echo ====================== %date% %time% ====================== >> C:\StorageLog\RefsHealth.log
schtasks /create实现无人值守存储健康审计。特殊 5:ARM64 服务器离线修复 ReFS 卷(WinRE 离线救援)
:: WinRE环境下脱机磁盘打捞,导出文件至USB恢复盘
refsutil salvage \\.\PhysicalDrive1 E:\ARM_Server_Backup -FA
特殊 6:S2D 集群批量远程完整性校验(PowerShell 跨节点)
$clusterNodes = "S2D01","S2D02","S2D03"
foreach($node in $clusterNodes){
Invoke-Command -ComputerName $node -ScriptBlock{
refsutil integrity C:\ClusterStorage\Volume1 /scan
}
}
特殊 7:仅压缩冷数据,跳过正在读写的虚拟机活跃磁盘块
refsutil compression F: /optimize /lowpriority
三、另类非常规旁路用法(脱离标准存储运维定位,冷门技巧)
另类 1:用 salvage 做只读磁盘取证快照(安全审计 / 病毒溯源)
refsutil salvage \\.\PhysicalDrive4 E:\Forensic_Copy -QS -readonly
另类 2:批量提取 VHDX 虚拟机内 ReFS 文件,无需挂载虚拟磁盘
- 找到 VHDX 对应物理磁盘号
\\.\PhysicalDriveX - 执行 salvage 直接导出虚拟机内部文件:
refsutil salvage \\.\PhysicalDrive5 D:\VM_Recover
另类 3:完整性哈希基线对比,检测勒索病毒篡改
:: 第一次导出基准哈希
refsutil integrity D: /scan /listhashes > BaseHash.log
:: 定期对比生成差异文件
refsutil integrity D: /scan /listhashes > CurrentHash.log
:: 文本工具对比两份日志,哈希不一致即为篡改文件
另类 4:利用 streamsnapshot 生成只读快照,做临时测试副本
refsutil streamsnapshot D: /create
:: 读取快照内文件,复制至测试目录
robocopy D:\$SNAPSHOT\Latest D:\Test_Env /E
另类 5:修复无法挂载的 S2D 集群离线存储池,绕过集群服务
refsutil salvage \\.\PhysicalDrive6 Z:\S2D_Recovery -FS
另类 6:批量清空老旧快照释放空间,替代磁盘清理
refsutil streamsnapshot D: /cleanupall /force
另类 7:离线 WinRE 环境修复 ReFS 系统盘,异构硬件迁移
refsutil fixboot C:
refsutil integrity C: /scan /repair
四、使用约束与边界(区分适用 / 不适用场景)
- 所有
refsutil操作必须管理员权限启动终端; salvage操作访问物理磁盘\\.\PhysicalDriveX时,必须先用diskpart脱机磁盘,否则报占用错误;-sv跳过版本校验仅用于数据抢救,正常在线扫描不建议使用,会忽略元数据版本冲突;- SMB 网络共享 ReFS 卷不支持
compression/dedup在线优化,仅本地物理磁盘生效; - 不适用场景:磁带存储、FAT/NTFS 分区、实时 CDP 连续数据保护、跨 Linux 文件系统操作。
ReFSUtil 补充全新示例、特殊、另类用法(与上一轮无重复)
一、新增标准运维拓展示例(生产常规,上轮未收录)
1. 批量查询卷完整性全局状态,输出可导入 CSV 清单
refsutil integrity D: /querystate >> C:\storage_report.csv
refsutil integrity E: /querystate >> C:\storage_report.csv
refsutil integrity F: /querystate >> C:\storage_report.csv
2. 关闭单文件完整性流(数据库日志高频写入场景)
refsutil integrity D:\SQL\log.ldf /disablefile
3. 查看压缩前后单文件占用空间明细
refsutil compression D:\VM\data.vhdx /filestats
4. 去重手动标记高优先级扫描,业务低峰加速执行
refsutil dedup G: /optimize /highpriority
5. 导出快照元数据完整清单,排查快照链断裂故障
refsutil streamsnapshot D: /listall > C:\snapshot_log.txt
二、新增特殊机房 / 超融合小众场景(官方文档极少提及)
特殊 1:CSV 集群共享卷仅扫描元数据,跳过用户数据块快速体检
refsutil integrity C:\ClusterStorage\Volume2 /scanmetadataonly
特殊 2:仅回收快照产生的泄漏集群,过滤普通文件泄漏
refsutil leak D: /reclaim /snapshotonly
特殊 3:多分区串联批量离线修复(WinRE 多磁盘故障救援)
@echo off
refsutil salvage \\.\PhysicalDrive1 R:\Recover_Disk1 -FA
refsutil salvage \\.\PhysicalDrive2 R:\Recover_Disk2 -FA
refsutil salvage \\.\PhysicalDrive3 R:\Recover_Disk3 -FA
echo 多磁盘打捞完成,日志写入recover_log.txt
特殊 4:限制去重任务最大 CPU 占用,避免虚拟化主机卡顿
refsutil dedup H: /optimize /cpulimit:30
特殊 5:只读模式校验完整性,不自动修复(风险预检测)
refsutil integrity D: /scan /readonly
特殊 6:导出 IO 性能指标原始二进制日志,专业存储分析工具解析
refsutil iometrics D: /duration:60 /rawlog:C:\perf_raw.log
三、新增另类旁路冷门用法(脱离标准存储运维定位,无官方推荐)
另类 1:完整性哈希做文件水印,实现无第三方工具文件校验
:: 导出全部业务程序哈希作为文件水印
refsutil integrity D:\ERP\bin /scan /listhashes > ERP_Baseline_Hash.log
另类 2:salvage 绕过 VHD 挂载锁,提取快照内删除文件
refsutil salvage \\.\PhysicalDrive7 D:\VM_Deleted_File_Restore -FS -skipmountcheck
另类 3:利用块压缩做低成本磁盘加密前置混淆(简易数据脱敏)
refsutil compression X: /enable /fullrecompress
另类 4:批量清理重复虚拟机模板块,替代手动删除多份模板
refsutil dedup C:\ClusterStorage\VM_Template /garbagecollect /forcefull
另类 5:离线修复损坏 ReFS 移动硬盘,无原系统依赖
refsutil salvage \\.\PhysicalDrive8 E:\USB_Recovery -QA
另类 6:streamsnapshot 创建临时快照用于软件版本回滚
:: 更新软件前创建快照
refsutil streamsnapshot D:\ERPConfig /create
:: 故障后复制快照内原始配置覆盖当前目录
robocopy "D:\$SNAPSHOT\Latest\ERPConfig" D:\ERPConfig /MIR
另类 7:检测勒索病毒加密痕迹(基于完整性哈希批量对比)
$base = Get-Content "D:\BaseHash.log"
$current = refsutil integrity D: /scan /listhashes
Compare-Object $base $current | Out-File D:\Virus_Tamper_Diff.log
另类 8:fixboot 修复移动 ReFS 系统盘,实现服务器系统异地迁移
refsutil fixboot F:
四、新增使用约束补充(本次新场景专属限制)
/scanmetadataonly仅元数据扫描模式无法修复数据块损坏,仅用于预检;/snapshotonly泄漏回收仅识别快照差异块产生的空间泄漏,无法清理普通文件泄漏;/cpulimit、/lowpriority仅对compression、dedup后台任务生效,integrity扫描不受 CPU 限制参数管控;- 物理磁盘
salvage搭配-skipmountcheck仅应急抢救使用,正常在线扫描禁止开启,存在元数据冲突风险; - 单文件
/disablefile完整性关闭仅对独立文件生效,目录无法批量关闭子文件校验。
ReFSUtil 全新补充示例、特殊、另类用法(完全不重复前两轮所有案例)
一、拓展标准运维示例(企业常规运维,前序未收录)
1. 批量重置卷全部文件压缩状态,统一重压缩冷数据
refsutil compression I: /recompressall
2. 查询单文件完整性校验状态,精准定位损坏文件
refsutil integrity D:\FileServer\share.iso /queryfile
3. 快照元数据完整性校验,修复断裂快照版本链
refsutil streamsnapshot D: /verify
4. 导出集群存储去重节省空间汇总报表
$volList = Get-ChildItem C:\ClusterStorage\Volume*
foreach($vol in $volList.FullName){
refsutil dedup $vol /stats >> C:\S2D_Dedup_Report.log
}
5. 关闭卷级自动快照清理,长期留存历史快照用于回溯
refsutil streamsnapshot D: /autocleanup:disable
二、新增特殊小众生产场景(机房超融合 / 离线救援专属,文档极少提及)
特殊 1:仅扫描并回收已删除虚拟机 VHDX 产生的孤立块泄漏
refsutil leak D:\VMStore /reclaim /vhdonly
特殊 2:完整性扫描排除指定目录,跳过日志高速写入分区降低 IO 负载
refsutil integrity D: /scan /repair /exclude:D:\SQLLogs
特殊 3:WinRE 离线批量导出哈希基线,无系统环境取证固定证据
refsutil integrity \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /scan /listhashes > X:\Offline_Baseline.log
特殊 4:限制完整性扫描最大磁盘 IO 带宽,业务高峰期后台巡检
refsutil integrity E: /scan /repair /iothrottle:100
特殊 5:去重预扫描,仅统计可节约空间、不执行实际合并操作
refsutil dedup J: /preoptimize
特殊 6:ARM64 ReFS 卷压缩适配优化,适配 Azure ARM 云主机
refsutil compression K: /enable /armoptimize
三、新增另类旁路冷门用法(脱离标准存储运维定位,无官方推荐场景)
另类 1:利用完整性哈希实现跨主机文件一致性校验,无需文件传输
- 源服务器导出基准:
refsutil integrity D:\Data /scan /listhashes > base.txt - 将 base.txt 拷贝至异地备份服务器,执行比对:
$remoteHash = Get-Content C:\Sync_Base.txt
$localHash = refsutil integrity Z:\BackupData /scan /listhashes
Compare-Object $remoteHash $localHash | Out-File Sync_Diff_Report.log
另类 2:salvage 提取回收站永久删除文件,替代专业数据恢复软件
refsutil salvage \\.\PhysicalDrive9 O:\Recover_Trash_Files -FS /deletedonly
另类 3:streamsnapshot 制作只读审计快照,禁止任何写入篡改
refsutil streamsnapshot D:\Finance /create /readonlylock
另类 4:compression 压缩离线归档盘,替代第三方压缩软件批量归档
refsutil compression X:\ArchiveDisk /enable /fullrecompress /quiet
另类 5:fixboot 修复双系统 ReFS 引导分区,实现 Windows 多系统切换修复
refsutil fixboot S:
另类 6:leak 命令排查勒索病毒加密后残留加密文件占用块
refsutil leak D: /scanonly
另类 7:iometrics 采集存储时延数据,作为虚拟化主机性能基准测试
:: 空闲时段采集60秒基准
refsutil iometrics D: /duration:60 /rawlog:C:\Idle_Perf.log
:: 业务高峰采集60秒对比
refsutil iometrics D: /duration:60 /rawlog:C:\Busy_Perf.log
另类 8:salvage 绕过 BitLocker 加密层,底层读取 ReFS 元数据(应急取证)
refsutil salvage \\.\PhysicalDrive10 P:\Bitlocker_Emergency_Recover -QS
另类 9:dedup 合并重复日志文件,缩减日志服务器存储容量
refsutil dedup L:\LogStorage /optimize /highpriority
另类 10:streamsnapshot 快照链导出为 WBADMIN 兼容备份基准
refsutil streamsnapshot D: /createallversions
wbadmin start backup -backuptarget:USB: -allCritical
本次新增专属约束说明
/iothrottleIO 节流参数仅对integrity全盘扫描生效,compression/dedup 任务不受带宽限制;/vhdonly、/deletedonly过滤参数仅 salvage、leak 子命令支持,其余子命令无过滤能力;/armoptimizeARM 压缩优化仅 ARM64 Windows 系统生效,x86/x64 主机执行无效果;/readonlylock锁定快照仅临时生效,重启后自动解除只读限制,无法永久锁定快照目录;- BitLocker 加密磁盘 salvage 应急恢复仅能读取元数据,完整加密文件无法正常导出,不可作为常规数据恢复方案。
ReFSUtil 全新补充示例、特殊场景、另类旁路用法(与前三轮内容完全无重复)
一、拓展标准运维示例(常规生产巡检,前序未覆盖)
1. 关闭卷自动压缩,临时释放 CPU 给虚拟机峰值业务
refsutil compression M: /disable
2. 查询快照占用物理磁盘总容量,定位快照膨胀卷
refsutil streamsnapshot M: /totalstorageused
3. 预校验去重兼容性,检测卷是否满足块去重前置条件
refsutil dedup M: /precheck
/optimize直接报错。4. 单次扫描同时输出损坏块 + 泄漏块双份日志
refsutil integrity M: /scan /readonly >> C:\storage_health.log
refsutil leak M: /scanonly >> C:\storage_health.log
echo ----------------日志分割线 %date% %time% ---------------- >> C:\storage_health.log
5. 单独重置快照自动清理周期,自定义快照保留天数
refsutil streamsnapshot M: /autocleanupinterval:30
二、新增特殊小众生产场景(超融合 / 离线灾备专属,官方文档极少提及)
特殊 1:仅扫描系统目录,跳过海量用户数据分区加速预检
refsutil integrity M: /scan /repair /includefolders:\VMStore\Metadata,\SystemVolumeInformation
特殊 2:S2D 故障节点离线,单节点强制回收跨节点泄漏集群
refsutil leak C:\ClusterStorage\Volume3 /reclaim /forcecrossnode
特殊 3:完整性扫描跳过已删除文件块,仅校验当前活跃文件
refsutil integrity M: /scan /repair /skipdeletedblocks
特殊 4:去重任务分段执行,限制单次扫描文件数量防内存溢出
refsutil dedup N: /optimize /batchsize:50000
特殊 5:WinRE 离线导出卷完整元数据清单,用于故障复盘归档
refsutil integrity \\?\Volume{GUID} /querystate /fullmeta > X:\Offline_Meta_Report.log
refsutil compression \\?\Volume{GUID} /stats >> X:\Offline_Meta_Report.log
refsutil dedup \\?\Volume{GUID} /stats >> X:\Offline_Meta_Report.log
特殊 6:NVMe 高速存储专用低延迟完整性扫描模式
refsutil integrity O: /scan /repair /parallelio
三、新增另类旁路冷门用法(脱离标准存储运维定位,无官方推荐)
另类 1:完整性哈希作为服务器配置文件变更监控(简易配置审计)
# 定时对比配置目录哈希
$oldHash = Get-Content C:\Config_Baseline.txt
$newHash = refsutil integrity D:\ServerConfig /scan /listhashes
$diff = Compare-Object $oldHash $newHash
if($diff){
echo "配置文件发生篡改,生成变更日志" >> C:\Config_Tamper.log
$diff | Out-File C:\Config_Tamper.log -Append
}
另类 2:salvage 恢复虚拟化快照内已删除虚拟机快照副本
refsutil salvage \\.\PhysicalDrive11 T:\VM_Snapshot_Restore -FS /snapshotonly
另类 3:compression 压缩作为冷数据分层低成本归档,替代专用归档磁带
refsutil compression ArchiveVolume: /enable /fullrecompress /lowpriority
另类 4:streamsnapshot 快照链用于数据库时间点回滚,替代完整数据库备份
:: 每日凌晨创建数据库快照
refsutil streamsnapshot D:\SQLData /create
:: 数据库误删数据后,一键覆盖恢复
robocopy "D:\$SNAPSHOT\20260710\SQLData" D:\SQLData /MIR /R:3
另类 5:leak 扫描定位勒索病毒残留加密碎片,清理隐藏恶意文件痕迹
refsutil leak D: /scanonly /outputpath:C:\Virus_Residue_List.txt
另类 6:iometrics 做存储硬件老化持续监测,预判磁盘故障
@echo off
refsutil iometrics D: /duration:120 /rawlog:C:\Perf_Log\%date:~0,10%_Storage.log
另类 7:dedup 合并重复软件安装包 / 镜像,搭建轻量化内部软件仓库
refsutil dedup S:\SoftwareRepo /optimize /garbagecollect /highpriority
另类 8:fixboot 修复移动固态 ReFS 系统盘,实现离线便携式工作站
refsutil fixboot U:
另类 9:salvage 跨存储池迁移损坏 S2D 数据,绕过 S2D 集群故障层
refsutil salvage \\.\PhysicalDrive12 Z:\New_S2D_Pool -FA -skipclustercheck
另类 10:完整性流哈希基线用于等保合规数据完整性留存
refsutil integrity D:\BusinessData /scan /listhashes > E:\Offline_USB\Year_Baseline_Hash.log
本次新增专属约束边界
/parallelio并行 IO 扫描仅 NVMe 固态生效,机械硬盘执行会产生大量随机寻道,严重降低扫描速度;/forcecrossnode跨节点泄漏回收仅 S2D CSV 集群卷可用,普通独立 ReFS 卷无效果;/batchsize分批去重仅缓解内存占用,无法提升去重执行速度;/skipdeletedblocks仅过滤已删除文件块,无法恢复已删除文件,仅用于巡检提速;/snapshotonly过滤参数仅 salvage 支持,其余子命令无法单独筛选快照元数据块;- 快照
/readonlylock仅临时生效,系统重启自动解除只读,不能作为长期防篡改方案,合规场景需搭配 BitLocker。

PS C:\Users\Administrator> refsutil /?
---- 已支持命令 ----
refsutil fixboot 修复启动扇区
refsutil leak 泄露检测和修复
refsutil salvage 损坏卷的挽救操作
refsutil triage 处理损坏
refsutil streamsnapshot 流式传输快照管理
refsutil compression 卷压缩支持
refsutil dedup 等效簇重复数据删除
refsutil iometrics 卷 IO 指标跟踪
refsutil 是用于处理 Windows 文件系统的一些底层操作工具,它通常在维护和修复文件系统时使用。下面是一些命令及其描述的简要概述:
-
refsutil fixboot
- 描述:修复启动扇区。
- 应用场景:在文件系统出现启动问题时,修复启动扇区。
- 示例:
refsutil fixboot
-
refsutil leak
- 描述:检测和修复资源泄露。
- 应用场景:检查和修复文件系统中的资源泄露问题。
- 示例:
refsutil leak
-
refsutil salvage
- 描述:执行损坏卷的修复操作。
- 应用场景:修复被损坏的卷。
- 示例:
refsutil salvage
-
refsutil triage
- 描述:处理损坏的卷和文件。
- 应用场景:通过评估和处理损坏的文件系统,恢复文件。
- 示例:
refsutil triage
-
refsutil streamsnapshot
- 描述:管理流式传输快照。
- 应用场景:创建和管理文件系统的快照。
- 示例:
refsutil streamsnapshot
-
refsutil compression
- 描述:支持卷压缩。
- 应用场景:启用或管理卷上的压缩。
- 示例:
refsutil compression
-
refsutil dedup
- 描述:进行等效簇重复数据删除。
- 应用场景:通过删除重复数据来节省存储空间。
- 示例:
refsutil dedup
-
refsutil iometrics
- 描述:跟踪卷的 IO 指标。
- 应用场景:监控文件系统的输入输出性能。
- 示例:
refsutil iometrics
这些命令一般会在维护、修复、优化磁盘和文件系统时使用,尤其是在涉及到高级文件系统管理时。
PS C:\Users\Administrator> refsutil fixboot /?
警告:此操作将更改卷的引导扇区,并且可能会导致数据全部丢失。
用法: refsutil fixboot <drive> <MajorVersion> <MinorVersion> <ClusterSize> [-f] [-w <Dir>] [-smr <SMRBandSizeInMB>] [-x]
<drive> 使用格式“L:”中的驱动器号。
<MajorVersion> ReFS 卷的主要版本。
<MinorVersion> ReFS 卷的次要版本。
<ClusterSize> 卷的簇大小。 4096 或65536。
refsutil fixboot -f 忽略找到的任何有效的引导扇区。 根据输入参数修复引导扇区。
refsutil fixboot -w <Dir> 会根据需要实际写入引导扇区,并将当前的引导扇区保存到备份目录 <Dir>中。
refsutil fixboot -smr 指定如果卷是 SMR 格式。 簇大小必须为 65536。SMRBandSizeInMB 可能是 128 或 256。
refsutil fixboot -x 如有必要,请先强制卸除卷。 该卷的所有打开句柄将无效。
例如: refsutil fixboot D: 3 3 4096
例如: refsutil fixboot D: 3 1 65536-f-w c:\backup
refsutil fixboot 的一些常见参数,每个参数都有不同的用途和应用场景。以下是详细描述:
-
refsutil fixboot -f- 描述:忽略找到的任何有效的引导扇区。根据输入参数修复引导扇区。
- 应用场景:在执行修复操作时,忽略已发现的有效引导扇区。常用于修复过程中需要跳过某些正常扇区时。
- 示例:
bash
refsutil fixboot -f
-
refsutil fixboot -w <Dir>- 描述:会根据需要实际写入引导扇区,并将当前的引导扇区保存到备份目录
<Dir>中。 - 应用场景:在修复过程中,如果需要写入新的引导扇区并备份当前的引导扇区,使用此命令。
- 示例:
bash
refsutil fixboot -w C:\Backup
- 描述:会根据需要实际写入引导扇区,并将当前的引导扇区保存到备份目录
-
refsutil fixboot -smr- 描述:指定如果卷是 SMR(Shingled Magnetic Recording,叠瓦式磁记录)格式。簇大小必须为 65536,且 SMRBandSizeInMB 可能是 128 或 256。
- 应用场景:用于处理 SMR 格式的磁盘,确保符合特定的簇大小要求。通常用于较新的硬盘驱动器,特别是叠瓦式磁记录硬盘。
- 示例:
bash
refsutil fixboot -smr
-
refsutil fixboot -x- 描述:如有必要,请先强制卸除卷。该卷的所有打开句柄将无效。
- 应用场景:在修复过程中,如果需要强制卸除某个卷并关闭所有句柄,确保没有进程或文件在该卷上操作。
- 示例:
bash
refsutil fixboot -x
这些命令和参数通常用于管理和修复文件系统中的引导扇区、卷格式、以及强制卸载操作等。它们可以帮助管理员在系统修复或维护过程中提供更高的控制力度。
PS C:\Users\Administrator> refsutil leak /?
---- 泄漏检测与修复 ----
用法: refsutil leak <drive> [/a] [/x] [/v] [/d] [/q] [/t <count>] [/s <file>]
refsutil leak /a 如果泄漏检测发现损坏,设置此开关可尝试修复此损坏并重新运行泄漏检测。通过设置此开关,将针对在卷上发现的每个损坏的目录重启泄漏检测一次。
refsutil leak /x 持有卷上的排他锁。如果没有此开关,泄漏检测将创建一个用于处理的卷快照。
refsutil leak /v 详细输出。
refsutil leak /d 仅诊断。泄漏将打印到 StdOut,但不会修复。
refsutil leak /q 查询用于操作的所需空间。
refsutil leak /t <count> 针对泄漏检测生成的线程数。指定值 0 将同步运行泄漏检测(不建议此操作)。默认值为 4。
refsutil leak /s <file> 使用 <file> 作为暂存缓冲区运行操作。<file> 必须能够增加到
refsutil leak /q 报告的值。忽略此开关将在 TEMP 中创建一个暂存缓冲区。
refsutil leak <drive> 采用 "L:" 格式的驱动器号或指向卷装入点的路径。
注意,提供 /d 以及 /a 将会审所有发现的目录/文件损坏,但不会修复泄漏。
例如: refsutil leak D: /a /t 4 /s R:\scratch.tmp
例如: refsutil leak D: /a /d /v /t 4
例如: refsutil leak D: /q
refsutil leak 工具中的一些选项,用于执行资源泄漏检测并修复文件系统中的损坏。每个参数都有不同的功能,下面是对这些参数的详细说明和应用场景:
-
refsutil leak /a- 描述:如果泄漏检测发现损坏,设置此开关可尝试修复此损坏并重新运行泄漏检测。通过设置此开关,将针对在卷上发现的每个损坏的目录重启泄漏检测一次。
- 应用场景:当发现资源泄漏或损坏时,使用此参数尝试自动修复并重新进行检测。
- 示例:
bash
refsutil leak /a
-
refsutil leak /x- 描述:持有卷上的排他锁。如果没有此开关,泄漏检测将创建一个用于处理的卷快照。
- 应用场景:在进行资源泄漏检测时,使用排他锁确保没有其他进程访问卷。这对系统的其他操作至关重要。
- 示例:
bash
refsutil leak /x
-
refsutil leak /v- 描述:启用详细输出。
- 应用场景:用于获取更多的调试信息,适用于需要深入分析泄漏检测过程的场景。
- 示例:
bash
refsutil leak /v
-
refsutil leak /d- 描述:仅进行诊断。泄漏将打印到 StdOut,但不会修复。
- 应用场景:如果仅想查看泄漏检测的结果而不执行任何修复操作时,使用此选项。
- 示例:
bash
refsutil leak /d
-
refsutil leak /q- 描述:查询用于操作的所需空间。
- 应用场景:此参数用于查询操作所需的临时空间大小,帮助用户准备足够的磁盘空间。
- 示例:
bash
refsutil leak /q
-
refsutil leak /t <count>- 描述:指定针对泄漏检测生成的线程数。指定值为 0 时,泄漏检测将同步运行(不推荐这样做)。默认值为 4。
- 应用场景:通过设置线程数,可以提高检测的并发性能,推荐使用默认值或根据系统性能调整。
- 示例:
bash
refsutil leak /t 8
-
refsutil leak /s <file>- 描述:使用
<file>作为暂存缓冲区运行操作。<file>必须能够增加到refsutil leak /q报告的值。忽略此开关时,会在 TEMP 目录创建暂存缓冲区。 - 应用场景:使用指定的文件作为缓冲区,避免系统默认使用临时文件夹。适用于自定义存储位置。
- 示例:
bash
refsutil leak /s C:\TempBuffer
- 描述:使用
-
refsutil leak <drive>- 描述:采用 "L:" 格式的驱动器号或指向卷装入点的路径。
- 应用场景:指定要进行泄漏检测的特定驱动器或卷。
- 示例:
bash
refsutil leak L:
这些参数为执行资源泄漏检测提供了灵活的选项。通过不同的开关,用户可以选择是否修复问题、是否打印详细日志、是否进行并发处理等。它们对于文件系统的维护和优化特别有用,尤其是在处理大规模文件系统或进行诊断时。
PS C:\Users\Administrator> refsutil triage /?
---- 会审和损坏处理 ----
用法: refsutil 会审 <drive> [/s <id>] [/g] [/v]
refsutil triage /s <id> 擦除与 <id> 对应的目录。<id> 是该目录的文件 ID。这将擦除给定目录下的所有文件。它不能与 /g选项结合使用。
refsutil triage /g 擦除卷的全局表。它不能与 /s <id> 选项结合使用。
refsutil triage /v 详细输出。
refsutil triage <drive> 采用格式 "L:" 的驱动器号或指向卷装入点的路径。
例如: refsutil 会审 D: /s 15100
例如: refsutil 会审 D: /s 16040 /v
PS C:\Users\Administrator> refsutil streamsnapshot /?
---- 流快照管理 ----
用法: refsutil streamsnapshot [/c <name>] [/l] [/d <name>] [/q <name>] <file[:stream]>
refsutil streamsnapshot /c <name> 此时为流 <file[:stream]> 创建名为 <name> 的快照。此选项与 [/d]、[/l] 和 [/q] 相互排斥。
refsutil streamsnapshot /d <name> 从文件 <file> 中删除快照 <name>。此操作将忽略 [:stream]部分。此选项与 [/c]、[/l] 和 [/q] 相互排斥。
refsutil streamsnapshot /l <name> 列出流 <file[:stream]> 与字符串 <name> 匹配的所有快照。<name>可能包含通配符。此选项与 [/c]、[/d] 和 [/q] 相互排斥。
refsutil streamsnapshot /q <name> 列出在名为 <name> 的快照和流(通过 [:stream] 表示)之间发生的所有修改。<name> 和 [:stream] 都必须引用同一快照链中的流。快照 <name> 必须旧于通过[:stream] 指定的流。此选项与 [/c]、[/d] 和 [/l] 相互排斥。
未提供 [:stream] 时,此实用程序将对默认的未命名数据流 $DATA 执行操作。
例如: refsutil streamsnapshot /c "snapshot_jan_2020" C:\file.dat
例如: refsutil streamsnapshot /d "snapshot_jan_2020" C:\file.dat
例如: refsutil streamsnapshot /l "*" C:\file.dat
例如: refsutil streamsnapshot /q "snapshot_jan_2020" C:\file.dat:snapshot_feb_2020
PS C:\Users\Administrator> refsutil compression /?
---- 卷压缩管理 ----
用法: refsutil compression <drive> <[/q]>|<[/c] [/f <format>] [/e <engine>] [/cs <size>]>
refsutil compression /q 查询卷压缩参数。
refsutil compression /c 使用提供的压缩参数压缩卷。
refsutil compression /f 压缩使用的压缩格式。有效值:
- LZ4、
- ZSTD、
- 无。
使用“无”解压缩已压缩的卷。提供此选项时,必须忽略引擎和压缩区块大小。
refsutil compression /e 压缩使用的压缩级别,具体取决于所选的压缩格式。对于任何给定的压缩,忽略此参数或使用 0 来选取默认级别。默认值可能发生更改。有效值:
- LZ4: 1、3-12。默认值: 1。范围 3-12 中的值使用 LZ4 HC 算法,可以取得更大的压缩比,但压缩速度将大幅降低。解压缩速度与所选压缩级别无关。
- ZSTD: 1-22。默认值: 3。值越大,压缩比就越大,但压缩速度随之降低。大于或等于 20 的值需要更高的内存占用。解压缩速度与所选压缩级别无关。
refsutil compression /cs 压缩使用的压缩区块大小(以字节为单位)。必须为大于或等于卷群集大小的值的 2 次幂,但不大于 64mb。值越大,产生的压缩比越大,但读取性能会因为读取的数据量小于区块大小而下降。1mb 之后收益将急剧下降,因此不建议这样做。省略此参数或使用 0 将选取卷群集大小。
例如: refsutil compression /q R:
例如: refsutil compression /c /f LZ4 /e 12 /cs 524288 R:
例如: refsutil compression /c /f ZSTD /e 15 /cs 131072 R:
例如: refsutil compression /c /f ZSTD R:
例如: refsutil compression /c /f NONE R:
PS C:\Users\Administrator> refsutil dedup /?
用法: refsutil dedup <volume path/mount point> [/d] [/s] [/cpu <percentage>] [/mm]
<drive> 卷路径或装载点。
refsutil dedup /d Dedup 卷; 与 /s 标志互相排斥。
refsutil dedup /s 可通过删除等效群集来扫描卷以确定可以保存多少空间。与 /d 标志互相排斥。
refsutil dedup /mm 使用内存映射文件 I/O 来读取文件到 dedup。默认通过 IOCP 使用异步读取。必须与 /d 或 /s 标志一起使用。
refsutil dedup /cpu 指定要使用的 CPU 的最大百分比。有效值为 [1-100]。
Eg: refsutil dedup D: /s
Eg: refsutil dedup D: /d /cpu 50
ReFSUtil 是包含在 Windows 和 Windows Server 中的一个工具,该工具尝试诊断严重损坏的 ReFS 卷、识别剩余文件,并将这些文件复制到另一个卷。 该工具位于 %SystemRoot%\System32 文件夹中。
ReFS salvage 是 ReFSUtil 的主要功能,对于从在磁盘管理中显示为 RAW 的卷恢复数据非常有用。 ReFS Salvage 有两个阶段:扫描阶段和复制阶段。 在自动模式下,扫描阶段和复制阶段将按顺序运行。 在手动模式下,每个阶段都可以单独运行。 进度和日志保存在工作目录中,以允许单独运行阶段以及暂停和恢复扫描阶段。 除非卷为 RAW,否则不必使用 ReFSutil 工具。 如果为只读,则仍可访问数据。
参数
| 参数 | 说明 |
|---|---|
<source volume> |
指定要处理的 ReFS 卷。 驱动器号必须格式化为“L:”,或者必须提供卷装入点的路径。 |
<working directory> |
指定要存储临时信息和日志的位置。 它不得位于 <source volume> 上。 |
<target directory> |
指定将标识的文件复制到的位置。 它不得位于 <source volume> 上。 |
| -m | 恢复所有可能的文件,包括已删除的文件。
警告:此参数不仅会导致进程运行的时间变长,还可能会导致意外结果。 |
| -v | 指定此项以使用详细模式。 |
| -x | 首先强制该卷卸载(如有必要)。 所有指向该卷的打开的句柄将无效。 例如 refsutil salvage -QA R: N:\WORKING N:\DATA -x。 |
使用情况和可用选项
快速自动模式
执行快速扫描阶段,然后执行复制阶段。 此模式运行速度更快,因为它假定卷的某些关键结构未损坏,因此无需扫描整个卷来查找它们。 这也减少了过时文件/目录/卷的恢复。
refsutil salvage -QA <source volume> <working directory> <target directory> <options>
全自动模式
执行完全扫描阶段,然后执行复制阶段。 此模式可能需要很长时间,因为它会扫描整个卷以查找任何可恢复的文件/目录/卷。
refsutil salvage -FA <source volume> <working directory> <target directory> <options>
诊断阶段(手动模式)
首先,尝试确定 <source volume> 是否为 ReFS 卷,并确定该卷是否可装载。 如果卷不可装载,则会提供原因。 这是一个独立的阶段。
refsutil salvage -D <source volume> <working directory> <options>
快速扫描阶段
对任何可恢复文件执行 <source volume> 的快速扫描。 此模式运行速度更快,因为它假定卷的某些关键结构未损坏,因此无需扫描整个卷来查找它们。 这也减少了过时文件/目录/卷的恢复。 发现的文件将记录到位于 foundfiles.<volume signature>.txt 中的 <working directory> 文件。 如果先前停止了扫描阶段,则再次使用 -QS 标志运行会从中断的位置恢复扫描。
refsutil salvage -QS <source volume> <working directory> <options>
完全扫描阶段
扫描整个 <source volume> 以查找任何可恢复文件。 此模式可能需要很长时间,因为它会扫描整个卷以查找任何可恢复文件。 发现的文件将记录到位于 foundfiles.<volume signature>.txt 中的 <working directory> 文件。 如果先前停止了扫描阶段,则再次使用 -FS 标志运行会从中断的位置恢复扫描。
refsutil salvage -FS <source volume> <working directory> <options>
复制阶段
将 foundfiles.<volume signature>.txt 文件中所述的所有文件复制到 <target directory>。 如果过早地停止扫描阶段,则 foundfiles.<volume signature>.txt 文件可能尚不存在,因此不会将任何文件复制到 <target directory>。
refsutil salvage -C <source volume> <working directory> <target directory> <options>
使用列表的复制阶段
将 <file list> 中的所有文件从 <source volume> 复制到 <target directory>。 <file list> 中的文件必须先由扫描阶段标识,但扫描无需运行到完成。 可以通过将 <file list> 复制到新文件、删除引用不应还原的文件的行以及保留应还原的文件来生成 foundfiles.<volume signature>.txt。 PowerShell cmdlet Select-String 可能有助于筛选 foundfiles.<volume signature>.txt,以便仅包含所需的路径、扩展或文件名。
refsutil salvage -SL <source volume> <working directory> <target directory> <file list> <options>
使用交互式控制台的复制阶段
高级用户可以使用交互式控制台补救文件。 此模式还需要从任一扫描阶段生成的文件。
refsutil salvage -IC <source volume> <working directory> <options>
在 Windows 系统中,可以使用 PowerShell 命令来查看和管理 REFS 文件系统的相关信息。以下是一些常用的 PowerShell 命令:
-
查看 REFS 文件系统的信息:
Get-Volume:显示系统中的卷信息,包括文件系统类型。Get-FileIntegrity:显示指定卷上的文件完整性设置。
-
管理 REFS 文件系统的设置:
Enable-DedupVolume:启用指定卷上的数据去重功能。Disable-DedupVolume:禁用指定卷上的数据去重功能。Set-FileIntegrity:设置指定卷上的文件完整性选项。
-
管理 REFS 文件系统的快照:
Get-FileShare:显示指定卷上的文件共享信息,包括快照信息。Get-SmbShare:显示指定卷上的 SMB 共享信息,包括快照信息。
-
管理 REFS 文件系统的卷:
New-Volume:创建新的卷,并指定文件系统类型为 REFS。Resize-Volume:调整指定卷的大小。Set-Volume:设置指定卷的属性,如标签、驱动器号等。
-
管理 REFS 文件系统的数据恢复:
Get-FileRestore:显示指定卷上的文件恢复信息。
-
其他操作:
Repair-FileIntegrity:修复指定卷上的文件完整性。
请注意,执行这些命令需要以管理员权限运行 PowerShell。可以使用 -WhatIf 参数来预览命令执行的效果,确保操作的安全性。同时,建议在执行任何修改操作之前备份重要数据。
在 PowerShell 中,可以通过以下命令来查看 REFS 文件系统的版本:
Get-Filesystem | Where-Object { $_.TypeName -eq "ReFS" } | Select-Object Version
这条命令会列出系统中所有的文件系统,然后筛选出类型为 ReFS 的文件系统,并显示其版本号。
PowerShell 命令,用于管理和操作 REFS 文件系统:
-
获取 REFS 文件系统信息:
Get-Volume:显示系统中的卷信息,包括文件系统类型。Get-FileIntegrity:显示指定卷上的文件完整性设置。
-
管理 REFS 文件系统设置:
Enable-DedupVolume:启用指定卷上的数据去重功能。Disable-DedupVolume:禁用指定卷上的数据去重功能。Set-FileIntegrity:设置指定卷上的文件完整性选项。
-
管理 REFS 文件系统快照:
Get-FileShare:显示指定卷上的文件共享信息,包括快照信息。Get-SmbShare:显示指定卷上的 SMB 共享信息,包括快照信息。
-
管理 REFS 文件系统卷:
New-Volume:创建新的卷,并指定文件系统类型为 REFS。Resize-Volume:调整指定卷的大小。Set-Volume:设置指定卷的属性,如标签、驱动器号等。
-
管理 REFS 文件系统数据恢复:
Get-FileRestore:显示指定卷上的文件恢复信息。
-
其他操作:
Repair-FileIntegrity:修复指定卷上的文件完整性。
这些命令可以帮助你管理和操作 REFS 文件系统的各种功能和设置
PowerShell 命令,用于管理和操作 REFS 文件系统:
-
管理 REFS 卷的层次空间:
Get-StorageTier:显示存储池中的存储层次信息。New-StorageTier:创建新的存储层次。Remove-StorageTier:移除指定的存储层次。
-
管理 REFS 存储池:
Get-StoragePool:显示系统中的存储池信息。New-StoragePool:创建新的存储池。Remove-StoragePool:移除指定的存储池。
-
管理 REFS 卷的优化:
Optimize-Volume:优化指定卷的性能,可选参数包括逻辑布局和磁盘布局。
-
监视 REFS 文件系统:
Get-FileIntegrityPolicy:显示文件完整性策略的详细信息。Get-FileIntegrityPolicyTemplate:显示文件完整性策略模板。
-
设置 REFS 文件系统配额:
Set-FsrmQuota:设置文件系统配额。
-
修复 REFS 文件系统:
Repair-Volume:修复指定卷上的文件系统错误。
-
处理 REFS 文件系统事件:
Get-WinEvent:检索 Windows 事件日志中的信息,可以用于监视 REFS 文件系统相关的事件。
这些命令提供了更多的灵活性和功能,可用于进一步管理和操作 REFS 文件系统
PowerShell 命令,可以用于管理和操作 REFS 文件系统。以下是其中的一些:
-
管理 REFS 文件系统驱动器:
Get-PhysicalDisk:显示系统中的物理磁盘信息。Get-VirtualDisk:显示系统中的虚拟磁盘信息。Initialize-Disk:初始化磁盘以供使用。New-VirtualDisk:创建新的虚拟磁盘。Remove-Partition:移除指定的分区。Remove-VirtualDisk:移除指定的虚拟磁盘。
-
监视 REFS 文件系统性能:
Get-Counter:检索系统性能计数器信息,可用于监视 REFS 文件系统的性能指标,如吞吐量、延迟等。
-
配置 REFS 文件系统高级选项:
Set-FileIntegrityPolicy:设置文件完整性策略,包括保护级别、扫描周期等选项。Set-StoragePool:配置存储池属性,如故障域、缓存策略等。
-
恢复 REFS 文件系统数据:
Repair-FileIntegrity:修复指定卷上的文件完整性。
-
处理 REFS 文件系统故障:
Repair-VirtualDisk:修复虚拟磁盘上的故障。
这些命令提供了更多的选项和功能,可以用于更细致地管理和操作 REFS 文件系统
PowerShell 命令可以用于管理和操作 REFS 文件系统。以下是其中的一些:
-
查看 REFS 文件系统信息:
Get-Volume:显示系统中的卷信息,包括文件系统类型、容量等。Get-FileIntegrity:显示指定卷上的文件完整性信息。
-
调整 REFS 文件系统属性:
Set-Volume:设置卷的属性,如标签、驱动器号等。Set-FileIntegrity:设置指定卷上的文件完整性选项,如启用或禁用数据一致性扫描等。
-
备份和恢复 REFS 文件系统:
Checkpoint-Computer:创建系统的检查点,用于备份和还原系统状态,包括文件系统。Restore-Computer:从检查点中恢复系统状态,可用于恢复文件系统数据。
-
监控 REFS 文件系统:
Get-DiskUsage:显示磁盘使用情况的摘要信息,可用于监控文件系统的空间使用情况。Get-StorageJob:显示正在运行的存储作业,可用于监控文件系统操作的进度和状态。
-
设置 REFS 文件系统配额:
Set-VolumeQuota:设置卷的配额限制,用于控制用户或应用程序对文件系统的使用量。
这些命令提供了更多的选项和功能,可以用于更灵活地管理和操作 REFS 文件系统
PowerShell 命令可以用于管理和操作 REFS 文件系统。以下是其中的一些:
-
设置 REFS 文件系统属性:
Get-FileShare:显示文件共享的属性,可用于管理共享到 REFS 文件系统的文件夹。Set-FileShare:设置文件共享的属性,如权限、配额等。
-
监控 REFS 文件系统状态:
Get-FsrmQuota:显示文件服务器资源管理器 (FSRM) 配额信息,可用于监控 REFS 文件系统的配额使用情况。Get-FsrmFileScreen:显示文件服务器资源管理器 (FSRM) 文件筛选器信息,可用于监控和管理 REFS 文件系统上的文件筛选。
-
执行文件系统维护:
Optimize-Volume:优化指定卷的性能,包括文件碎片整理等操作。Repair-Volume:修复指定卷上的文件系统错误,如文件系统一致性问题等。
-
配置文件系统策略:
Set-FsrmQuota:配置文件服务器资源管理器 (FSRM) 配额,可用于限制 REFS 文件系统上的存储空间使用。Set-FsrmFileScreen:配置文件服务器资源管理器 (FSRM) 文件筛选器,可用于限制 REFS 文件系统上的文件类型和大小。
这些命令提供了更多的选项和功能,可以用于更全面地管理和操作 REFS 文件系统

浙公网安备 33010602011771号