完整文件系统的 tar 和图像有什么区别?

Ale*_*lex 5 tar backup

我可以创建一个文件系统的映像,或者我可以创建一个包含所有这些的 tar 文件。因此,图像是否类似于 tar 存档?还是这两种类型在更多方面有所不同?

gol*_*cks 8

图像是文件系统的原始(文字,逐字节)副本。因为这包括所有 fs 元数据,所以您可以像安装物理设备一样安装它,该物理设备上的字节数据完全相同。

tar 文件(又名“tarchive”)是一种与文件系统无关的归档格式——尽管它包含诸如权限、所有权和维护目录结构等信息,但它并不进一步依赖于源文件系统。这意味着 tarchives 可以从一种类型的文件系统移植到另一种类型的文件系统;在任何有tar实用程序的地方,无论来源如何,您都应该能够使用 tarfile。

tarchive不是用于存储区域的字节副本的文字字节。它是一组由 tar 构建的文件,因此,与图像不同,它的内容可以在外部进行分析和操作(由tar实用程序本身)。这也意味着它确实依赖于一些现有的文件系统才能被解压和使用。

一个 tarchive 可以包含整个文件系统的内容,但这与包含实际文件系统的图像不同。为了重现原始 fs,您必须创建一个相同类型的 fs 分区(nb,tarchive 不包含该分区)并将其解压缩到其中。相反,如果您想将映像“解压缩”到现有文件系统的子目录中,则必须手动挂载并复制(尽管可能有工具可以帮助完成此操作)。

因此,这两种方法最适合略有不同的目的。关于备份,tar 是更好的选择,原因有很多:

  • 您只是复制实际文件,而不是空白空间。
  • 您没有带来底层文件系统及其伴随的缺陷(碎片、不一致)。
  • 您可以避免包含不应包含的内容(例如/proc,,/dev)。
  • Tar 文件更容易更新。

  • `/proc` 永远不会包含在文件系统映像中(好吧,空目录会),但是 `/proc` 是一个不同的文件系统,安装在那里。与 `/dev` 相同,至少与 udev 相同。和`/sys`。使用 tar 和 OTOH,除非您明确排除,否则它将包括它们。此外,文件系统映像不必包含可用空间,例如`partclone` 或`partimage`。Tar 还冒着丢失一些元数据的风险(它会做 acls 和 xattr 吗?不是默认情况下,它出现。它可以在具有该功能的 FS 上保留创建时间吗?不知道......)也就是说,我同意你的结论。 (2认同)