![在 7zip 中打开 DD 图像](https://linux22.com/image/1611510/%E5%9C%A8%207zip%20%E4%B8%AD%E6%89%93%E5%BC%80%20DD%20%E5%9B%BE%E5%83%8F.png)
一段时间以来,我在工作中使用 DD 映像来快速将 Linux 映像传输到新硬盘,以防旧硬盘损坏。它工作得很好,没有任何抱怨。
但是,几天前我需要从镜像中获取一个文件,正准备去拿一个驱动器并将其连接到我的电脑上,这样就可以获取它了。然而,我尝试用 7zip 将镜像文件作为存档打开,令我惊讶的是,它居然成功了!
现在我有点困惑了。我知道 Windows 10 无法安装 EXT3 格式的驱动器,那么 7zip 怎么可以呢?我试着四处寻找,然后偶然发现了这个回答,说 7zip 需要支持文件系统。那么,是因为它直接支持 EXT3,就像它支持 FAT 一样,还是 DD 图像的编写方式使得文件系统对于 7zip 在打开该图像时并不重要?
我质疑链接答案的原因是,据我所知,在 Windows 10 中没有稳定的程序来安装 EXT3 硬盘。我知道 Ex2Fsd 存在,但我在使用该软件时体验不好(主要是损坏),我读过评论的很多其他用户也是如此。
那么,总结一下:7zip 如何读取 EXT3 DD 映像?是因为此类映像中没有文件系统,还是 7zip 的编码比其他适用于 Windows 10 的 EXT3 兼容软件更巧妙?
答案1
是因为它直接支持EXT3吗?
是的。7zip 支持 Ext 系列。请参阅这张图表。
或者 DD 图像的编写方式是否使得打开该图像时文件系统对于 7zip 来说无关紧要?
[…]
是不是因为这些图像中没有文件系统?
否定。dd
创建二进制副本。它将是精确的二进制副本,除非
- 存在问题
- 或者副本不完整(
skip=
、seek=
、count=
、 中断) - 或者正在阅读的内容不断变化(摄影中的模拟:这里;这就是为什么你不应该使用
dd
读写挂载文件系统) - 或者您请求使用 进行一些转换
conv=
。
这些情况都无法可靠地将文件系统转换为与文件系统无关的存档(无论其含义如何)。我提到它们只是为了表明在某些情况下副本可能不准确。对于您的情况,我确信它是准确的。
我知道设备上有一个文件系统。映像中提供了完全相同的字节序列,因此文件系统就在那里。
没有稳定的程序可以在 Windows 10 中安装 EXT3 硬盘。[…]
7zip 是否比其他适用于 Windows 10 的 EXT3 兼容软件的编码更巧妙?
至少两个方面:
7zip 不会挂载任何东西。它访问数据。
挂载文件系统意味着让任何想要访问挂载点的程序都可以访问其中的文件和目录。此类程序可能对任何文件系统一无所知,它只需要以操作系统中可用的通用方式打开文件:通过指定其路径(例如
F:\directory\file
在 Windows 或/some/mountpoint/directory/file
*nix 中)。如果文件系统正确挂载,那么这将有效。您的 7zip 可以读取和解释该图像。如果您希望随机程序访问该图像中存在的任何文件,您可以要求 7zip 将副本(提取文件)保存到另一个(已安装!)文件系统。然后其他程序可以使用该副本。如果文件系统已安装,则不需要副本。
一般来说,可以通过用户空间程序挂载文件系统(例如保险丝在 *nix 中)或动态地将其内容投影到目录树中,因此它显示为已安装(例如项目财务报表在 Windows 中)。7zip 不以这种方式工作。
7zip 可以向您展示目录结构,提取整个文件或多个整个文件。负责已安装文件系统的程序(或操作系统组件)必须能够处理来自许多其他程序的并发访问请求。它们可能想要修改数据或元数据,以创建新文件。即使文件系统以只读方式安装,也存在比读取和保存整个文件更复杂的操作(例如访问大文件的随机片段)。
7zip 可以从 Ext 读取,但不能写入(并且它不能从头创建文件系统,请参阅图表再次)。您在使用其他软件时遇到的损坏意味着该软件进行了一些写入。如果它只进行了一些读取,则文件系统不会发生变化。
因此 7zip 的编码并不一定比其他软件更巧妙。与挂载文件系统的程序相比,它的任务相对简单。