我正在尝试使用compact
文件服务器上的实用程序透明地压缩一些文件。这些文件基本上是文本备份,并且可以轻松以 10:1 或更高的比率压缩。
它们很少被读取,也从不被写入,因此我想为此使用更好的优化XPRESS4K
或压缩。但是,我收到以下错误:LZX
compact /c /exe:XPRESS4K .\BigFile.dat
Compressing files in D:\Exports\
BigFile.dat [ERR]
BigFile.dat: The file system does not support compression.
然而,它在其他方面可以正常工作:
- 正常
compact /c D:\Exports\BigFile.dat
成功完成(但速度极慢)。 - 我也可以将同一个文件复制到
C:
驱动器,然后/exe:XPRESS4k
正常使用。
我已经检查过簇大小是否正确,但我认为不再需要它们了:
chkdsk D: /I /C
返回4096 bytes in each allocation unit
,- 和
The type of the file system is NTFS
,均受支持。
- 和
- 操作系统是 Windows Server 2016,并且是最新版本。
fsutil fsinfo ntfsinfo O:
返回与C:
我知道文件系统出了问题,但据我所知应该没有其他要求?
答案1
请注意compact.exe
支持两种不同的方法:
经典的 NTFS 压缩也存在于旧版本的 Windows 中,可以通过“压缩内容以节省磁盘空间”从文件资源管理器中启用/禁用。这是在未设置 /EXE 参数时使用的压缩。
Windows Overlay Filter (Wof) 或 DeviceIOControl,控制代码为 FSCTL_SET_EXTERNAL_BACKING。
/EXE:*algorithm*
当您在 Windows 2016 中的 C: 卷中使用 Wof 压缩时,它可以正常工作,但在附加的数据卷中,它可能会失败并显示“文件系统不支持压缩。”。我不知道原因或是否是错误,但 Windows 2016 与 LZX 和 XPRESS 算法完全兼容,因为它能够WofCompressedData
在系统根卷中读取和写入相关的备用数据流。
作为一种解决方法,您可以按照以下步骤在 Windows 2016 的数据卷中将 compact.exe 与 Wof 一起使用:
- 将数据卷附加到 Windows 10/11 系统。
- 使用 /EXE 参数压缩附加数据卷中的任何文件。
- 分离数据卷并将其附加到Windows 2016系统
从此时起,您将能够压缩数据卷中的任何文件或文件夹,甚至可以从任何 Windows 2016 中压缩。