我想Robocopy
从 Windows 系统驱动器复制所有有用的数据,但出于某种原因,robocopy
不知道如何区分某些 OneDrive 文件(我猜 Google Drive 和 iCloud 可能有同样的问题);即使添加了/XA:O
,robocopy
仍然会尝试复制它们,从而导致失败(同样的,如果/XJ
用于排除符号链接)。
这些文件有什么问题?有什么办法可以Robocopy
忽略这些文件?
答案1
RoboCopy
在备份文件/分区时效率极低,不推荐用于任何用例,因为它缺乏压缩,也没有奇偶校验来确保文件在备份中不会损坏;相反,捕获维姆和Dism
建议:
- WIM/ESD 是智能压缩图像格式,因此存储效率高:
- 当新图像 [索引] 附加到
.esd
/时,仅会将更改的文件添加到其中;新附加的图像使用图像中已包含的未更改文件的相同副本.wim
(哈希已验证),允许图像相对于数据保持较小 - 如果映像命令是总是发行
/Verify
并/CheckIntegrity
(Windows ≤ 7/Check
:)
- 当新图像 [索引] 附加到
- Windows XP ≥ 10 始终原生支持分区/文件系统的映像:
- 系统 [OS] 分区只能从 WinPE/WinRE 进行映像
Dism
始终包含在 WinPE/WinRE 中(Win XP≤7ImageX
:):- 温控器: 赢道斯磷重新安装埃环境
(Windows 安装启动介质:SHIFT+F10访问终端) - 温瑞: 赢道斯R生态恢复埃环境
(WinRE 是包含额外WinPE 可选组件对恢复至关重要)
- 温控器: 赢道斯磷重新安装埃环境
影像
(命令映射)
通过创建WimScript.ini
配置文件,/ScratchDir
在 WinPE 中是必需的,因为它默认只有 32MB 的暂存 [临时] 空间:
- 任何一个捕获或者附加一个图像:
- 捕捉图像:
# Windows ≥8: DISM Dism /Capture-Image /ImageFile:"Z:\Base.wim" /CaptureDir:"C:" /Name:"Windows Backup" /Description:"Base Image 2022.01.30 @ 09:00" /Compress:Max /CheckIntegrity /Verify /ScratchDir:"Z:" # Windows XP ≤ 7: ImageX ImageX /Capture "C:" "Z:\Base.esd" "Windows Backup" "Base Image 2022.01.30 @ 09:00" /Compress:Recovery /Check /Verify /ScratchDir:"Z:\"
- 如果不将捕获的图像保存到 SSD,
/Compress:Max
则更改为/Compress:Fast
- 对于尺寸限制,
/Split-Image
将图像分割成多个只读.swm
文件
- 如果不将捕获的图像保存到 SSD,
- 附加图片:
# Windows ≥8: DISM Dism /Append-Image /ImageFile:"Z:\Base.wim" /CaptureDir:"C:" /Name:"Windows Backup" /Description:"Base Image 2022.01.30 @ 09:00" /CheckIntegrity /Verify /ScratchDir:"Z:" # Windows XP ≤ 7: ImageX ImageX /Append "C:" "Z:\Base.esd" "Windows Backup" "Base Image 2022.01.30 @ 09:00" /Compress:Recovery /Check /Verify /ScratchDir:"Z:\"
- 压缩率锁定为捕获基础图像时设置的值
- 可以删除索引[
/Delete-Image
] 或导出 [/Export-Image
] 自己的形象
- 捕捉图像:
- 应用图像:
# Windows ≥8: DISM Dism /Apply-Image /ImageFile:"Z:\Base.wim" /Index:1 /ApplyDir:"C:" /CheckIntegrity /Verify /ScratchDir:"Z:" # Windows XP ≤ 7: ImageX ImageX /Apply "Z:\Base.wim" 1 "C:" /Check /Verify /ScratchDir:"Z:\"
- 在申请之前,
/Get-ImageInfo
确保应用正确的索引[图像]:Dism /Get-ImageInfo /ImageFile:"Z:\Base.wim"
- 如果应用操作系统映像,则必须在退出 WinPE/WinRE 之前运行以下命令:
- BIOS:
BootRec /FixMBR && BootRec /FixBoot && BootRec /RebuildBCD
- UEFI:
::# With existing bootable EFI partition: BootRec /FixMBR && BootRec /RebuildBCD ::# Without existing bootable EFI partition: ::# Mount EFI partition on Y: DiskPart → lis vol → sel vol # → assign letter=Y → exit ::# Create EFI directories and enter: MkDir "Y:\EFI\Microsoft\Boot" Cd /d "Y:\EFI\Microsoft\Boot" ::# Create EFI boot structure: BootRec /Fixboot ::# If Access Denied error occurs (C: is applied image): BcdBoot C:\Windows /s C: /f UEFI ::# Resolve any other boot issues: BootRec /FixMBR && BootRec /RebuildBCD ::# Unmount EFI partition: DiskPart → sel vol Y → remove → exit
- BIOS:
- 在申请之前,
访问 ESD/WIM 内的数据:
只读:
- 挂载映像: (作为
/ReadOnly
)# Windows ≥8: DISM Dism /Mount-Image /ImageFile:"Z:\Base.wim" /Index:2 /MountDir:"C:\Mount" /Optimize /CheckIntegrity /ReadOnly # Windows XP ≤ 7: ImageX ImageX /Mount "Z:\Base.wim" 2 "C:\Mount" /Check
- 取而代之的是,我更喜欢
.wim
在.esd
7zip图形用户界面
- 取而代之的是,我更喜欢
- 卸载映像: (
/discard
变化)# Windows ≥8: DISM Dism /Unmount-Image /MountDir:"C:\Mount" /CheckIntegrity /Discard # Windows XP ≤ 7: ImageX ImageX /Unmount "C:\Mount"
- 挂载映像: (作为
对图像 [索引] 进行更改或添加数据:
- 安装映像:
# Windows ≥8: DISM Dism /Mount-Image /ImageFile:"Z:\Base.wim" /Index:2 /MountDir:"C:\Mount" /Optimize /CheckIntegrity # Windows XP ≤ 7: ImageX ImageX /MountRW "Z:\Base.wim" 2 "C:\Mount" /Check
- 卸载映像: (
/Commit
变化)# Windows ≥8: DISM Dism /Unmount-Image /MountDir:"C:\Mount" /CheckIntegrity /Commit # Windows XP ≤ 7: ImageX ImageX /Unmount "C:\Mount" /Commit
- 通过添加将更改保存为新的附加图像
/Append
- 通过添加将更改保存为新的附加图像
- 安装映像:
答案2
没有。这些文件使用 OneDrive 的“按需文件”功能。您看到的文件是引用云中文件的“存根”,因此它具有属性下显示的文件的正确大小,但在磁盘上占用零空间。如果您运行 Windows ATTRIB /? 命令,您将看到一些新的属性选项。参考:https://docs.microsoft.com/en-us/onedrive/files-on-demand-windows。Robocopy 尚未更新以了解这些属性,因此您无法排除它们。
“始终可用” - 固定 - 属性 +p “本地可用” - 清除固定 - 属性 -p “仅在线” - 取消固定 - 属性 +u
如果您经常通过运行脚本来执行此操作,则可以将任何文件同步应用程序的静默卸载添加到脚本的开头,因为它们无论如何都在云中备份。