Tyler N Asked: 2019-06-14 11:03:35 +0800 CST2019-06-14 11:03:35 +0800 CST 2019-06-14 11:03:35 +0800 CST 确切文件(复制)在同一驱动器的磁盘上有不同的大小? 772 最近我遇到了一些奇怪的事情。充满文件的文件夹的精确副本在磁盘上的大小与原始文件不同。我能理解这种情况如何发生在具有不同结构的驱动器之间,除了这些文件位于完全相同的驱动器上。 我已经运行了多个测试以确保每个文件都完全相同并且所有属性也完全相同。 对此有什么解释? 两个文件夹的属性截图: 磁盘管理截图: 注意事项 两个文件夹的压缩都没有打开。 驱动器上只有一个分区,因此两个文件夹将共享簇大小、文件系统 (NTFS) 等。 hard-drive ntfs 4 个回答 Voted Best Answer Tyler N 2019-06-19T07:06:45+08:002019-06-19T07:06:45+08:00 所以,这需要大量的挖掘,但我最终还是弄明白了。通过这个问题,我了解了很多关于我们服务器的知识。 文件夹的背景 首先,我们有两个有问题的文件夹。这些文件夹在数据方面 100% 相同,包括二进制文件。这些文件夹位于我们的一台服务器上。 该特定服务器最近脱机并从 Windows Server 2008 升级到 2012 到 2016。在服务器进行升级时,其中一个文件夹与该服务器上的所有其他文件一起保留在卷上。另一个文件夹实际上是从服务器 2008 年状态的快照复制而来,然后放置到当前的 2016 年服务器上。所以我们有原始文件夹和复制文件夹。差异在于复制的文件夹比原始文件夹占用更多的磁盘空间。 我试过的 我想找出这个问题的推理是深入到重复的文件夹,看看是否所有文件在磁盘上的大小都不匹配,或者是否只是某些文件。为了让我自己更轻松地完成这项任务,我使用了 Antibody Software 的 WizTree,它类似于WinDirStat,除了默认情况下它有一个列来显示每个文件在磁盘上的大小及其大小。我相信 WinDirStat 只显示大小。所以我深入研究发现并不是每个子文件夹或文件在磁盘上的大小都不匹配,只有一些。那些确实有一些对我来说非常特别的东西:磁盘上的文件大小为 0,即使它们的大小不为零。 一些 NTFS 背景 这一发现使我在另一个超级用户问题上找到了这个答案。在我的问题的背景下,这是我从那个答案中收集到的。 如果文件太小以至于文件数据和文件系统簿记小于 1KB,NTFS 会将数据存储在文件记录本身 (MFT) 中,而无需为其分配簇。磁盘上没有大小,因为除了文件记录之外什么都没有。这称为常驻文件。 在 Windows 8 之前,NTFS“磁盘上的大小”计算没有考虑驻留文件与非驻留文件,只是将每个文件的大小四舍五入为簇大小的下一个倍数。现在 NTFS 会将具有驻留数据的文件计为磁盘上的 0kb 大小;这意味着 Windows 8+ 中使用的计算比 Windows 7- 中使用的计算更智能。 一旦文件超过了从常驻文件到非常驻文件的阈值,该文件就无法返回。 我是如何得到完全相同但磁盘大小不同的文件的 通过服务器升级的原始文件夹将通过该过程重写其数据,因此 Windows 重新运行其 NTSF 计算,当它发现它现在知道可能成为驻留文件的文件时,它更新簿记以容纳它们,这意味着磁盘文件上的几百个 4kb(1x 簇大小)大小变成了磁盘文件上的 0kb 大小,从而将 245Mb 的文件减少到 244Mb。 我们IT部门在使用第三方复制软件时,不仅复制了数据,还复制了记账信息。此应用程序旨在复制所有内容,包括簿记。 2008 年的原始文件占用了 245mb,因为 NTFS 在计算时没有处理常驻文件。当数据被重写时,NTFS 运行最新的计算并使某些文件驻留。2008 年原件的副本也复制了其簿记信息,因此非居民文件保持非居民。 因此,无需了解发生这种情况所需的所有背景知识,一个简洁的答案就是: 一个文件夹包含常驻文件,而另一个文件夹不包含常驻文件。这是因为一个文件夹的数据被处理常驻文件的计算重写,而另一个文件夹的数据和簿记信息从不处理常驻文件的系统中复制而来。 值得注意的提及 我可以通过复制原始 (244mb) 或复制的 (245mb) 文件夹来重现此问题。新副本将始终为 244mb,并带有常驻文件。 如果我从 Windows 7 计算机查看 C: 驱动器的管理共享,由于 Windows 7 计算磁盘大小属性,因此两个文件夹都显示 245MB。如果我从 Windows 10 计算机上查看,它会同时显示 244mb 和 245mb,因为计算足够智能,可以查找常驻文件。 如果(从 Windows 8+ 机器上)我从复制的文件夹中复制一个非驻留文件,该文件是原始文件夹中的驻留文件,则由于数据被重写,因此副本会生成驻留文件。 Nihan J. Portman 2019-06-14T11:51:34+08:002019-06-14T11:51:34+08:00 Windows 会自动压缩不经常使用的文件。如果它已经被 Windows 压缩,你可以检查它: 右键单击文件夹>属性>高级属性 检查是否启用压缩内容以节省磁盘空间。 K7AAY 2019-06-14T12:32:33+08:002019-06-14T12:32:33+08:00 比较大小与磁盘上的大小:上图中文件的内容大小相同,但存储它们所占用的空间不同。 文件存储在块(“簇”)中,这些块根据用于准备驱动器的格式化系统和选择的簇大小(如果不使用默认簇大小)而有所不同。此Microsoft 文档显示了不同格式选择和驱动器大小的默认簇大小]。 您还可以将备用数据流 分支附加到根目录中的文件。 Tim Burnett - Bassist 2019-06-14T14:12:10+08:002019-06-14T14:12:10+08:00 额外的 1MB 空间可能是由于在索引节点或索引节点中添加了元数据...... inode(索引节点)是 Unix 风格的文件系统中的一种数据结构,它描述了一个文件系统对象,例如文件或目录。每个 inode 存储对象数据的属性和磁盘块位置。文件系统对象属性可能包括元数据(上次更改、访问、修改的时间)以及所有者和权限数据。 尽管它们是副本,但较大的一个位于不同的(嵌套)目录中,因此它具有一组不同的索引信息。
所以,这需要大量的挖掘,但我最终还是弄明白了。通过这个问题,我了解了很多关于我们服务器的知识。
文件夹的背景
首先,我们有两个有问题的文件夹。这些文件夹在数据方面 100% 相同,包括二进制文件。这些文件夹位于我们的一台服务器上。
该特定服务器最近脱机并从 Windows Server 2008 升级到 2012 到 2016。在服务器进行升级时,其中一个文件夹与该服务器上的所有其他文件一起保留在卷上。另一个文件夹实际上是从服务器 2008 年状态的快照复制而来,然后放置到当前的 2016 年服务器上。所以我们有原始文件夹和复制文件夹。差异在于复制的文件夹比原始文件夹占用更多的磁盘空间。
我试过的
我想找出这个问题的推理是深入到重复的文件夹,看看是否所有文件在磁盘上的大小都不匹配,或者是否只是某些文件。为了让我自己更轻松地完成这项任务,我使用了 Antibody Software 的 WizTree,它类似于WinDirStat,除了默认情况下它有一个列来显示每个文件在磁盘上的大小及其大小。我相信 WinDirStat 只显示大小。所以我深入研究发现并不是每个子文件夹或文件在磁盘上的大小都不匹配,只有一些。那些确实有一些对我来说非常特别的东西:磁盘上的文件大小为 0,即使它们的大小不为零。
一些 NTFS 背景
这一发现使我在另一个超级用户问题上找到了这个答案。在我的问题的背景下,这是我从那个答案中收集到的。
我是如何得到完全相同但磁盘大小不同的文件的
通过服务器升级的原始文件夹将通过该过程重写其数据,因此 Windows 重新运行其 NTSF 计算,当它发现它现在知道可能成为驻留文件的文件时,它更新簿记以容纳它们,这意味着磁盘文件上的几百个 4kb(1x 簇大小)大小变成了磁盘文件上的 0kb 大小,从而将 245Mb 的文件减少到 244Mb。
我们IT部门在使用第三方复制软件时,不仅复制了数据,还复制了记账信息。此应用程序旨在复制所有内容,包括簿记。
2008 年的原始文件占用了 245mb,因为 NTFS 在计算时没有处理常驻文件。当数据被重写时,NTFS 运行最新的计算并使某些文件驻留。2008 年原件的副本也复制了其簿记信息,因此非居民文件保持非居民。
因此,无需了解发生这种情况所需的所有背景知识,一个简洁的答案就是: 一个文件夹包含常驻文件,而另一个文件夹不包含常驻文件。这是因为一个文件夹的数据被处理常驻文件的计算重写,而另一个文件夹的数据和簿记信息从不处理常驻文件的系统中复制而来。
值得注意的提及
Windows 会自动压缩不经常使用的文件。如果它已经被 Windows 压缩,你可以检查它:
检查是否启用压缩内容以节省磁盘空间。
比较大小与磁盘上的大小:上图中文件的内容大小相同,但存储它们所占用的空间不同。
文件存储在块(“簇”)中,这些块根据用于准备驱动器的格式化系统和选择的簇大小(如果不使用默认簇大小)而有所不同。此Microsoft 文档显示了不同格式选择和驱动器大小的默认簇大小]。
您还可以将备用数据流 分支附加到根目录中的文件。
额外的 1MB 空间可能是由于在索引节点或索引节点中添加了元数据......
尽管它们是副本,但较大的一个位于不同的(嵌套)目录中,因此它具有一组不同的索引信息。