首页/系统/Windows 运维速查/场景:大目录迁移到新盘(安全流程)
磁盘与文件43 条

场景:大目录迁移到新盘(安全流程)

迁移五步:预演→复制→校验→切换→观察:robocopy /MIR /COPYALL 打底,校验通过再改配置,保留源目录一个备份周期。

Windows 运维速查系统更新于 2026-10-13

问题是什么

把大目录从旧盘迁到新盘,风险点不在复制本身,而在切换时刻的数据一致性与权限丢失。标准流程是预演、复制、校验、切换、观察五步:robocopy /MIR 保持目标与源镜像一致,/COPYALL 带上 ACL 与属主,预演阶段加 /L 只看不写,校验通过后再改配置,源目录保留一个备份周期。

基本信息

适用平台Windows Server 2012 及以后、Windows 10/11(robocopy 内置)
核心命令robocopy 源 目标 /MIR /COPYALL /R:2 /W:2 /MT:16 /LOG:日志 /TEE
预演参数/L 只列清单不复制;/TEE 同时输出到控制台
校验口径文件数、总字节数,关键目录抽样核对大小与权限

迁移五步

  • 1. 预演:/MIR /L 确认将复制与将删除的清单,重点检查目标侧会被删掉的条目
  • 2. 全量复制:/MIR /COPYALL 带权限与属主,/R:2 /W:2 避免被锁定文件拖死
  • 3. 校验两侧文件数与总大小,关键目录抽查权限是否正确
  • 4. 业务只读或停机后二次 /MIR 增量同步,压缩数据差异窗口
  • 5. 切换应用配置与盘符,观察稳定后再清理源目录

常用示例

常用示例
robocopy D:\App E:\App /MIR /L /TEE                                # 预演,只看不写
robocopy D:\App E:\App /MIR /COPYALL /R:2 /W:2 /MT:16 /LOG:E:\move.log /TEE   # 正式复制
(Get-ChildItem D:\App -Recurse -File).Count                        # 源侧文件数
(Get-ChildItem E:\App -Recurse -File).Count                        # 目标侧文件数
(Get-ChildItem D:\App -Recurse -File | Measure-Object Length -Sum).Sum   # 源侧总字节

参数逐项读法

参数作用注意
/MIR镜像目录树,含删除目标侧多余文件目标盘不能混放无关数据
/COPYALL复制数据、属性、时间戳、ACL、属主、审计跨域复制时部分安全信息可能保留失败
/R:2 /W:2重试次数与重试间隔避免个别占用文件拖死整轮
/MT:16多线程复制大文件多时提速明显,海量小文件收效有限
/LOG /TEE日志落盘并同步显示留证据便于事后复盘
/L仅列出不执行预演阶段的必备开关
边写边迁必然不一致:切换窗口内让业务只读或停机,二次增量后再切换。清理源目录前保留一个完整备份周期。
robocopy 退出码非 0 不等于失败:0-7 都属正常(有复制、有多余文件或两者兼有),8 及以上才是错误,脚本判断要按“大于等于 8”写。

易错点

  • 只比文件数不够,关键目录要抽查大小与权限,/COPYALL 部分失败时数量照样对得上
  • 应用配置里写死的旧路径要全部搜出来再切换,否则切换后功能静默失效
  • /MIR 会删除目标侧多余文件,目标盘若混放其他数据会被一并清掉
  • 把 robocopy 非 0 退出码一律当失败,会导致脚本误报并阻断后续步骤

数据来源与参考

  • Microsoft Learn:robocopy /MIR
  • Microsoft Learn:文件服务器数据迁移

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌