Robocopy 云文件问题

Robocopy 云文件问题

我想Robocopy从 Windows 系统驱动器复制所有有用的数据,但出于某种原因,robocopy不知道如何区分某些 OneDrive 文件(我猜 Google Drive 和 iCloud 可能有同样的问题);即使添加了/XA:Orobocopy仍然会尝试复制它们,从而导致失败(同样的,如果/XJ用于排除符号链接)

这些文件有什么问题?有什么办法可以Robocopy忽略这些文件?

  • 这些文件的属性在资源管理器中显示实际大小,但磁盘大小:0字节
  • 我猜测排除这些文件的唯一(低效的)方法是排除完整文件夹 [ /XD:%UserProfile%\OneDrive],这有点麻烦,因为系统驱动器可能包含各种离线应用程序和数据(例如每个用户配置文件中的 iCloud、onedrive 和 google drive 文件夹):
    onedrive 文件

答案1

RoboCopy在备份文件/分区时效率极低,不推荐用于任何用例,因为它缺乏压缩,也没有奇偶校验来确保文件在备份中不会损坏;相反,捕获维姆Dism建议:

  • WIM/ESD 是智能压缩图像格式,因此存储效率高:
    • 当新图像 [索引] 附加到.esd/时,仅会将更改的文件添加到其中;新附加的图像使用图像中已包含的未更改文件的相同副本.wim哈希已验证,允许图像相对于数据保持较小
    • 如果映像命令是总是发行/Verify/CheckIntegrity (Windows ≤ 7 /Check:)

  • Windows XP ≥ 10 始终原生支持分区/文件系统的映像:
    • 系统 [OS] 分区只能从 WinPE/WinRE 进行映像
      • 维姆秒 [西窗口我是age] 可以捕获整个分区或单个文件夹/文件
      • ESD [电子年代软件istribution] 只能捕获系统分区,并且必须使用 /Compress:Recovery (算法比 效率高~33% /Compress:Max
        • Windows ≥10:仅可用于出口光生物反应器[呼呼厄顿Reset] 映像
          Windows ≤8.1:只有可启动的 Windows 安装才能被捕获为 ESD

    • Dism始终包含在 WinPE/WinRE 中(Win XP≤7 ImageX:)
      • 温控器: 道斯重新安装环境
        (Windows 安装启动介质:SHIFT+F10访问终端)
      • 温瑞: 道斯R生态恢复环境
        (WinRE 是包含额外WinPE 可选组件对恢复至关重要)


影像

命令映射
通过创建WimScript.ini配置文件,/ScratchDir在 WinPE 中是必需的,因为它默认只有 32MB 的暂存 [临时] 空间:

  1. 任何一个捕获或者附加一个图像:
    • 捕捉图像
      # 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文件
    • 附加图片
      # 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:\"
      
  2. 应用图像
    # 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
        


访问 ESD/WIM 内的数据:

  1. 只读:

    1. 挂载映像 (作为/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.esd7zip图形用户界面
    2. 卸载映像 /discard变化)
      # Windows ≥8: DISM
        Dism /Unmount-Image /MountDir:"C:\Mount" /CheckIntegrity /Discard
      
      # Windows XP ≤ 7: ImageX
        ImageX /Unmount "C:\Mount"
      

  2. 对图像 [索引] 进行更改或添加数据:

    1. 安装映像:
      # 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
      
    2. 卸载映像: /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

如果您经常通过运行脚本来执行此操作,则可以将任何文件同步应用程序的静默卸载添加到脚本的开头,因为它们无论如何都在云中备份。

相关内容