V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oldshensheep
V2EX  ›  Windows

Windows 也有快照功能?

  •  3
     
  •   oldshensheep · 2022-08-10 15:34:24 +08:00 · 4788 次点击
    这是一个创建于 835 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Windows 也有快照?真的是文件系统的快照?还可以通过系统自带的文件历史还原?

    新建快照

    Windows 称之为 Volume Shadow Copy (VSS)

    Windows 的快照是通过 Copy On Write 实现的,众所周知对性能有一定影响。

    关闭系统还原点功能

    新建快照是不需要开启系统还原点功能的!
    开启还原点功能会导致老的快照更快的被删除,因为快照占用的空间是有限的,而还原点会占用大量的快照空间,快照空间不足就会删除旧的快照,所以最好把还原点功能关闭了。

    还原点功能

    新建一个快照

    新建一个文件测试一下快照 在 HOME 目录下新建一个内容为 100 的 test.txt 文件

    ❯ 100 > test.txt
    ❯ cat .\test.txt
    100
    

    创建一个 C 盘的快照,注意我这里用了 sudo 表明需要管理员权限。

    ❯ sudo wmic shadowcopy call create Volume=C:\
    Executing (Win32_ShadowCopy)->create()
    Method execution successful.
    Out Parameters:
    instance of __PARAMETERS
    {
            ReturnValue = 0;
            ShadowID = "{57587129-D224-4E21-BC36-4C3D9B1DFDC7}";
    };
    

    快照就成功建立了!
    看看效果是怎么样的,把之前新建得到 ~/test.txt 的内容修改为 101 试试。

    ❯ 101 > ~/test.txt
    ❯ cat ~/test.txt
    101
    

    恢复指定文件 /文件夹

    在文件管理器打开这个文件的属性,可以打开和恢复到之前的版本。 文件属性

    查看文件发现恢复到之前的状态了。

    ❯ cat ~/test.txt
    100
    

    删除快照

    vssadmin 可以操作快照,支持以下命令,注意把命令换成小写开头。
    vssadmin delete shadows而不是vssadmin Delete Shadows,输入命令会有帮助文档。

    ❯ vssadmin
    vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
    (C) Copyright 2001-2013 Microsoft Corp.
    
    Error: Invalid command.
    
    ---- Commands Supported ----
    
    Delete Shadows        - Delete volume shadow copies
    List Providers        - List registered volume shadow copy providers
    List Shadows          - List existing volume shadow copies
    List ShadowStorage    - List volume shadow copy storage associations
    List Volumes          - List volumes eligible for shadow copies
    List Writers          - List subscribed volume shadow copy writers
    Resize ShadowStorage  - Resize a volume shadow copy storage association
    

    删除 C 盘的所有快照

    ❯ sudo vssadmin  delete shadows /for=C:
    vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
    (C) Copyright 2001-2013 Microsoft Corp.
    
    Do you really want to delete 3 shadow copies (Y/N): [N]? Y
    
    Successfully deleted 3 shadow copies.
    

    方便的浏览快照

    https://www.nirsoft.net/utils/shadow_copy_view.html
    这个软件
    可以浏览任意一个快照的内容
    可以方便的在文件管理器打开当前快照
    可以……

    总结

    2 个命令wmic shadowcopy call create Volume=C:\vssadmin

    FAQ

    https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service#frequently-asked-questions

    参考文档

    https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service

    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/vssadmin-delete-shadows

    https://www.windowsphoneinfo.com/threads/schedule-shadow-copy-problem-wmic.529068/

    10 条回复    2022-10-25 18:05:23 +08:00
    cnbatch
        1
    cnbatch  
       2022-08-10 15:52:52 +08:00
    卷影复制服务呀,我所在的公司一直在用,给 SMB 的文件夹做文件版本备份

    对于 PC 版 Windows 而言,其实就是系统自带的文件历史还原,也就是
    [控制面板]→系统和安全→文件历史记录

    不同的是,控制面板的设置有限制,只对指定的文件夹开放,而命令行操作方式可以让其他文件夹也能用上
    oldshensheep
        2
    oldshensheep  
    OP
       2022-08-10 16:12:33 +08:00
    @cnbatch 不一样的这个是文件系统的快照不是备份。快照几秒钟就可以完成了。
    cnbatch
        3
    cnbatch  
       2022-08-10 16:27:45 +08:00
    当然快了,用命令行创建的是针对整个卷的快照历史(对于文件、文件夹层面而言,最后的效果在“以前的版本”当中相同)

    系统还原的基础其实就是卷影复制,所以启用了系统还原也会导致卷影复制的空间占用消耗变大
    chengyiqun
        4
    chengyiqun  
       2022-08-10 17:44:04 +08:00

    为啥我 c 盘 d 盘不显示??
    我是 ssd, 没开加密
    oldshensheep
        5
    oldshensheep  
    OP
       2022-08-10 18:04:26 +08:00
    @chengyiqun
    我这个介绍的不是文件历史记录功能,这个是快照不是备份,这个功能没有 GUI 的。如果要恢复备份,右键文件属性。

    文件历史记录功能要求使用外部驱动器进行备份,所以没有显示部分硬盘。
    oldshensheep
        6
    oldshensheep  
    OP
       2022-08-10 18:05:13 +08:00
    如果要浏览以前的快照可以用这个软件
    https://www.nirsoft.net/utils/shadow_copy_view.html
    cweijan
        7
    cweijan  
       2022-08-10 18:54:14 +08:00
    厉害了, 确实没见过呢
    yaoyao1128
        8
    yaoyao1128  
       2022-08-10 23:13:31 +08:00 via iPhone
    其实 vss 就是所谓的卷影
    文件历史记录也是基于卷影的
    这个功能理论上是卷影复制服务中卷影副本,而卷影源等于目的位置
    卷影的三种形式中 cow 和 redirect 都是不重建卷(复制)的
    这也是为什么 windows server 备份中的内容可以像时间机器一样挂载

    https://docs.microsoft.com/zh-cn/windows/win32/vss/volume-shadow-copy-service-portal
    kenvix
        9
    kenvix  
       2022-08-11 12:10:05 +08:00
    老早就有了,NTFS 的“卷影副本”特性,不过一直只有 server 可以直接用
    justaname
        10
    justaname  
       2022-10-25 18:05:23 +08:00
    @yaoyao1128 文件历史记录并不是卷影,那玩意儿是基于文件的,卷影是基于文件系统的。文件历史记录就是直接给你拷贝一个原始文件过去。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:42 · PVG 06:42 · LAX 14:42 · JFK 17:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.