单个文件内的压缩、读写文件系统?

单个文件内的压缩、读写文件系统?

是否有任何免费的 Windows 软件可以创建压缩档案,然后将它们透明地(具有写入功能)安装到另一个目录中?

到目前为止,我见过的唯一这样的程序是图像处理(WIM 格式),但我想知道是否还有其他替代方案(希望)支持更知名的存档格式(例如 ZIP、7z 等)。

答案1

是的,有,Pismo 文件挂载审计包 http://www.pismotechnic.com/pfm/ap/

您可以将 zip iso 等挂载为文件夹,并且它有一个可选的加密容器文件夹

免费软件,无烦扰

答案2

Pismo 文件挂载审计包有一个用于创建 .pfo 文件的工具,该文件可以进行内部压缩和/或加密……并以读/写模式挂载。

请注意,它并不完美,在 Windows 10 上某些应用程序无法很好地管理:

  • Adobe Acrobat 阅读器在打开已安装的 .pfo 文件夹内的 PDF 文件时出现错误(未找到路径或类似错误)
  • TreeSizeFree 不会进入此类路径
  • 磁盘管理器无法挂载 .pfo 中的 VHD/VHDX 文件

但是 Explorer、命令行以及 VirtualBox 也运行良好。

将 .vdi 放在压缩的 .pfo 中效果很好,并且大多数情况下具有很高的压缩率(远远高于 NTFS 本机压缩)。

现在,为什么您无法以写入模式挂载 z Zip / 7z:

  • 有些可以是“固体的”,这意味着要读取文件,它需要解压缩数据直到这样的文件数据...解压缩足够快,可以在读取模式下使用一些智能算法来完成......但压缩需要很多时间。
  • 只需使用其原生工具打开此类 zip / 7z 文件并尝试添加一些内容,看看需要花费多少时间

请对包含大量小文件、大文件等的 zip / 7z 文件进行此类测试...

实现这种写入模式并非不可能,但可能需要进行完全解压缩和压缩。

这就是为什么没有设计用于即时写入的格式无法以写入模式安装的主要原因……另一个原因是:

  • 专为即时写入而设计的文件不需要完全重新创建
  • 另一方面,当修改内部内容时,实体文件需要完全重写
  • 有些文件格式不支持有空洞,因此任何内部文件大小的改变都会导致压缩文件上所有其余部分的重新对齐

另一个原因是安全性......就不丢失所有数据而言......

  • 当需要更改文件时,需要进行写时复制才能安全操作……想象一下复制 4GiB 只是为了编辑文件名……时间会花几分钟

是的,不要想着将文件放在 SSD 超高速磁盘上...想象一下将这样的文件放在很慢、很慢的存储卡上...速度不到 10MiB/s...在 4GiB 文件中进行一次编辑将花费将近七分钟。

还有一个原因:

  • 您告诉 Windows 复制其中的一百个文件...Windows 将根据需要处理每一个文件(也许不会告诉应用程序它要复制该文件列表,也许它只告诉一个...实际上,它真的很可怕)
  • 挂载程序只看到一个新文件被写入,因此需要七分钟的时间来保存它,但之后 Windows 会放入下一个文件...再过七分钟...依此类推

但是等等,情况更糟糕...也许窗口(或某些应用程序)不会只用一个顺序/命令就写入整个文件...有些是在块上执行的...所以:

  • 安装器无法知道将写入多少这样的写入(块),并且每个块可能需要七分钟

某些应用程序会这样做来写入/复制文件(最坏的情况):

  1. 打开读取的文件
  2. 读取一个块(1Byte、512Bytes、4K、8MiB,无论它们被编程的大小)
  3. 关闭读取的文件
  4. 打开要写入或附加的文件
  5. 写入这样的块
  6. 关闭写入文件
  7. 转至步骤 1 继续,直至所有块都写入

因此没有安装程序能够知道此类写入需要“缓冲”多少。

由于我们正在讨论即时的和对系统透明的,所以唯一的选择是在读取模式下安装它们。

从技术上来说,没有理由不以写入模式进行此操作,只是这样做可能需要花费一周以上的时间来复制里面的几个文件……这比正常的完整解压缩、修改、完整重新压缩要少得多。

始终认为您将有足够的可用空间来同时保存最终状态和先前状态(以确保安全并确保不会丢失旧数据)。

另一方面,有一些专为写入模式设计的文件格式:

  • 他们知道如何删除(并且有空白)
  • 它们知道如何进行分片(向文件添加更多数据时,追加)或至少将整个文件移动到容器的末尾,并在之前的位置留出空隙
  • 有些人可能知道如何重新使用足够大的间隙(没有碎片)或充分利用间隙(碎片化)
  • 他们中很少有人知道如何缩小规模,或者根本就没有实现它

当然,收缩意味着碎片化或一个较长的双重移动过程(为了安全起见),首先到结束(如果不适合间隙),然后到真实位置。

有些作品具有固定的块大小,因此它们可以在后台任务中很好地缩小,它可以将一个块复制到较低的位置,使间隙移到文件末尾......并最终减少这种间隙大小的文件大小。

这是理论...我发现没有工具可以做到这一切...Pismo 不会缩小,但可以完成 CFS 和 PFO 格式的其余部分(读/写)以及一些其他格式(只读)。

我必须调查这种 WIM 格式...但如果我没记错的话,它是 M$ 格式...Linux 安装它怎么样?Pismo 有 Windows 和 Linux 版本...还有其他操作系统。

此外,Pismo 还有一个 SDK,因此您可以创建自己的容器和“驱动程序”……或者在您的应用程序中使用它。

此外,Pismo 只能为 PID 挂载这样的文件(因此只有您的应用程序可以挂载它,等等)......还有更多......但正如我所说......在 Windows 10 中有些东西不能很好地运行......它在 Windows 10 中并不完全透明。

如果有人找到“完美”的工具,请评论并分享,如果是开源的就更好了。

答案3

为了解决 Windows 10 问题,请以管理员权限并使用“针对所有用户”标志安装 pfo...然后此类应用程序将把 pfo 视为一个文件夹。

相关内容