文件历史记录在 Windows 10 中如何工作?

文件历史记录在 Windows 10 中如何工作?

一台 Windows 10 计算机已打开文件历史记录备份。它占用了近 400GB 的空间,因此我将其更改为删除超过 3 个月的保存点。文件历史记录中究竟包含什么?例如,如果您下载了一部 2GB 的电影,它会被保存吗?如果预期文件将被修改,这样的系统如何跟踪文件?

例如,如果有一个 1MB 的文件a.exe,用户删除它,然后重新使用该名称,但生成一个 10MB 的文件,这会被视为新版本吗?

答案1

文件历史记录是一个非常基本的实用程序。文件历史记录仅备份文档、音乐、图片、视频和桌面文件夹中的文件副本以及您电脑上可离线使用的 OneDrive 文件。只要您提到的 2GB 电影保存在其中一个文件夹中,它就会被备份。

文件历史记录 会将这些文件夹中的文件副本保存到其他位置,该位置在其设置中配置。它会按照其设置中设置的频率执行此操作。一旦 Windows 检测到文件已更改,它就会复制该文件。Windows 会在您选择的驱动器上创建一个文件夹并创建文件的副本。它会使用文件名中的日期重命名它们,并创建一个小型数据库。

这些文件的恢复取决于所选的频率。如果您将其设置为每小时保存一次副本,而您每秒更改一次文件,则您一天只能对该文件进行 24 次备份。

回答你的最后一个问题,答案是肯定的,只要文件在更改之前备份过即可。同样,这完全取决于备份的频率。它不会跟踪文件更改的每个版本,因为这会占用大量存储空间。

文件历史记录实际上是为非技术用户设计的。这些用户不会备份他们的数据。微软一直在其操作系统中提供备份实用程序,但发现非技术人员并不使用它。整个差异、增量等措辞吓跑了非技术人员。文件历史记录使外行人备份文件变得容易得多。这是一种简单的设置后就忘掉的文件备份方式。但是,它远不如真正的备份程序那么强大。

答案2

您是否研究过卷影复制的工作原理?W10 文件历史记录就是基于此。但有一个很大的区别:与旧版 Windows 中的系统还原/VSC 文件恢复不同,文件历史记录将大多数备份保存在单独的硬盘上。

需要注意的重要事项:

  • 不要指望文件历史记录能覆盖您的所有文件夹或整个驱动器 - 它会备份您的所有默认和自定义库(包括公共文件夹),以及联系人、桌面和收藏夹文件夹。但您可以通过 Modern UI/Metro 用户界面手动将文件夹添加到文件历史记录。

  • 文件历史记录不会备份任何使用 EFS 的文件或文件夹

  • 除非您的 OneDrive(又名 SkyDrive)文件夹中的项目可离线使用,否则它不会备份它们。

  • 文件历史记录不需要管理员权限来设置,或者备份和恢复文件。

现在回答你的问题:

  • 是的,大文件也会被保存。系统设计为使用外部存储。缓存也存储在C:\Users\(username)\AppData\Local\Microsoft\Windows\FileHistory\Data.

  • 在文件历史记录中,有文件的完整副本,与存储文件更改的 VSC 不同。它实际上的工作原理是这样的:它利用 USN 日志来跟踪更改并将文件修订保存在备份位置。保存修订版本并附加日期/时间。示例:File1 (2016_10_01 01_11_11).tmp, File1 (2016_10_02 02_12_21).tmp.

  • 目前还不清楚,但是文件内容可能没有什么区别。在最初的技术测试中,系统能够通过类似于 DLL 版本控制的标准来区分文件。这意味着完全不同的 a.exe 不会被视为前一个版本的新版本。我还没有看到后续版本中实现此功能,所以它可能已被删除。

基本上,FH 只是一个使用简单文件复制粘贴的定期有限备份工具。

答案3

我认为这篇文章的标题包括“备份的结构是什么?它存储在哪里?”所以我做了一些探索。

当您选择一个驱动器进行备份时,文件内容将存储在一个文件夹中\FileHistory\userName\computerName,其中userName是设置文件历史记录的用户的名称,computerName是文件正在备份的计算机的名称。

在该文件夹下,有一个Configuration文件夹包含两个 xml 文件和一个 EBD 文件(数据库),但内容似乎不多,还有一个Data文件夹包含实际文件的副本。

文件夹下的Data第一级是原始系统的驱动器名称(例如,文件夹 D 用于存放从驱动器 D: 备份的文件)。在这些第一级文件夹中,文件的结构与原始驱动器上的完全相同,但有两点不同:

  1. 每个文件的名称都有一个日期(可能是备份开始的时间),编码为“ {yyyy_mm_dd hh_mm_ss UTC}”(注意前导空格)插入在文件扩展名之前。
  2. 在添加编码日期和在完整原始文件路径前加上 \FileHistory\Data 前缀之间,某些文件名可能会变得太长。这些文件被赋予编号名称,并放置在(显然)单级编号文件夹中,该文件夹位于$OFData 正下方的文件夹中(因此与驱动器名称同级)。

备份文件的修改日期与原始文件相同。创建日期表示该特定备份文件的创建时间。备份文件已设置 R(只读)属性。

我的实验是使用 USB 拇指驱动器上的 FAT/FAT32 文件系统完成的,所以我不知道备份文件上会设置什么样的权限。

举一个更具体的例子,我的系统上有 Microsoft 参考源,其中一些文件已备份到:

  • F:\FileHistory\kpmartin\TETRON\Data\D\Users\KPMartin\Documents\Reference Source\dotnet462RTM\Source\ndp\fx\src\winforms\Managed\System\WinForms\Printing\PrintDialog {2020_02_02 06_33_12 UTC}.cs,这是D:\Users\KPMartin\Documents\Reference Source\dotnet462RTM\Source\ndp\fx\src\winforms\Managed\System\WinForms\Printing\PrintDialog.cs
  • F:\FileHistory\kpmartin\TETRON\Data\$OF\7315\7318 {2020_02_02 06_33_12 UTC}.cs这是备份D:\Users\KPMartin\Documents\Reference Source\dotnet462RTM\Source\ndp\fx\src\winforms\Managed\System\WinForms\Printing\PrintControllerWithStatusDialog.cs

编号名称的映射似乎并未与文件本身一起存储在备份驱动器上的 FileHistory 文件夹中。相反,它存储在原始系统的用户文件夹中,AppData\Local\Microsoft\Windows\FileHistory\Configuration位于名为 的数据库文件中Catalog1.edb。除此之外,还有一个名为 的 XML 文件,Config1.xml该文件似乎包含实际的备份选项,包括文件夹包含和排除列表,以及目标驱动器信息。除了 和 之外Catalog1.edbConfig1.edb还有Catalog2.edbConfig2.edb,它们似乎是编号为 1 的对应项的精确副本。

EDB 文件是一种称为“ESE 数据库”的格式,在 Windows 中需要非关系数据库的地方随处可见。除了 FileHistory 之外,还有一些示例,例如 Active Directory 和 Windows 桌面搜索使用的索引。有关此文件格式及其使用位置的详细信息如下可在线获取。可以使用可能存在于更高级的 Windows 系统(我有 Windows 10 Enterprise)上的命令来探测此文件的元数据。esentutl.exe链接的文章提到了另外两个命令,它们也可能进行一些探测。从数据库中转储实际的表内容可能需要编写代码,但本机和托管(.NET)支持

相关内容