如何在 Windows 10 上创建文件夹的写时复制副本?

如何在 Windows 10 上创建文件夹的写时复制副本?

关于 btrfs CoW、ZFS 重复数据删除等有很多文档,但理论上 NTFS 也具有 CoW 功能,Windows 可以使用该功能为您提供“以前的版本”功能等。

我想知道如何手动使用此功能:拿一个文件夹(里面装满了数 GB 的二进制文件),制作一个像副本一样的东西但创建时间很短,并且最初占用的额外空间可以忽略不计,然后修改/删除/重命名/等。原始文件夹中的文件而不影响其他文件的内容(但我完全预料到这将需要额外的存储空间),就像它是一个完整的副本一样,然后最终删除其中一个。

这并不能取代备份、版本控制或类似的东西,这些都是单独处理的,所以请不要建议这些。

答案1

卷影复制在 Windows 上,它按卷运行,因为它在磁盘/卷的块级别运行。它保存卷中更改的块,因此不区分文件夹、 主文件表 (其中定义了文件夹和文件),或者只是普通的文件数据。

这是在物理磁盘级别上工作的磁盘快照的强力解决方案。它与文件夹和文件所在的逻辑级别完全无关。因此,鉴于其物理级别的实现,让它在单个文件夹上工作的问题毫无意义。

卷影复制可以应用于单个文件夹的唯一方法是,该文件夹也是磁盘/卷。

Windows 允许 在文件夹中安装驱动器。这可以通过磁盘管理器完成,您可以在其中将磁盘分配给空文件夹,方法是右键单击带有文件夹的分区/卷,单击“更改驱动器号和路径”,然后单击“添加”,然后单击“在以下空 NTFS 文件夹中安装”。这也可以使用 diskpart。

可以使用挂载的 VHD/VHDX 文件来代替真实的磁盘/分区,其行为与物理磁盘完全相同。有关更多详细信息,请参阅文章 如何在 Windows 10 中挂载或卸载 VHD 和 VHDX 文件

答案2

卷影副本实际上并不按照您所希望的方式工作。

首先,VSS 快照是针对整个卷的。您无法真正“制作出像文件夹副本一样的东西”。快照也是只读的,因此您无法对文件夹进行更改。最后,您并不是唯一管理快照生命周期的人,因此可能会出现其他情况并删除您的快照。

尽管如此,如果你能找到一种方法来适应所有这些限制,你很可能就能找到一种方法来相当接近来自在 Windows Server 2008 中制作和安装 Vss 快照

要复制 (C:) 卷:

C:\> vssadmin create shadow /for=c:

要查看 (C:) 卷的副本:

C:\> vssadmin list shadows /for=c:

要将卷影副本安装为可浏览文件夹:

C:\>mklink /d <folder name> <shadow copy volume from list>
C:\>mklink /d C:\mycopy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6

vssadmin create shadow在我的 Windows 10(Pro 20H2)安装上不起作用,但你应该能够用它做类似的事情wmic shadowcopy

相关内容