Windows 也有快照功能?

2022-08-10 15:34:24 +08:00
 oldshensheep

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/

4787 次点击
所在节点    Windows
10 条回复
cnbatch
2022-08-10 15:52:52 +08:00
卷影复制服务呀,我所在的公司一直在用,给 SMB 的文件夹做文件版本备份

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

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

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

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

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

https://docs.microsoft.com/zh-cn/windows/win32/vss/volume-shadow-copy-service-portal
kenvix
2022-08-11 12:10:05 +08:00
老早就有了,NTFS 的“卷影副本”特性,不过一直只有 server 可以直接用
justaname
2022-10-25 18:05:23 +08:00
@yaoyao1128 文件历史记录并不是卷影,那玩意儿是基于文件的,卷影是基于文件系统的。文件历史记录就是直接给你拷贝一个原始文件过去。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX