Linux:如何仅创建使用过的文件的图像?

Linux:如何仅创建使用过的文件的图像?

我想在运行 Linux 的同时创建 Windows 文件系统的映像。文件系统已加密,但为了备份需要解密。

我如何创建仅包含我的文件的映像?因此,如果我有一个 4GB USB,里面有 1 个 .txt 文件,则映像将仅包含 1 个 .txt 文件,并且不会占用 4GB 的空间。

从小范围来看这似乎不是什么大问题,但我将按照以下步骤备份由 Linux 加密的 Windows: https://veracrypt.codeplex.com/wikipage?title=How%20to%20Back%20Up%20Securely

因此,我只希望我的映像占用 Windows 占用的空间量。而不是 250GB。所有或大多数搜索结果(如果我遗漏了一些)都说要使用 dd。dd 会创建完整的映像。当有人之前要求他们的映像只占用必要的空间时,人们说要用 0 覆盖备用空间。这 1) 不能解决问题,2) 由于磨损均衡,对于 SSD 来说是不可能的。

答案1

用零填充空闲空间的建议确实有帮助,无论是对于原始图像(然后可以有效地进行 gzip 压缩)还是对于 qcow/vmdk/vhd 等专用格式(具有对“稀疏”区域的内置支持)。

它实际上不应该损害 SSD——我认为所有最近的磁盘都足够智能,可以识别全零块并悄悄地将所有此类块映射到同一个闪存单元。(此外,每个块仍然只有一次写入,之后您可以对其进行 TRIM 以将其标记为未使用。)

否则,你需要一个能够理解的工具您的特定文件系统以便知道哪些区域实际上未使用 – 对于 Windows NTFS,ntfsclone可以执行此操作。默认情况下,它会创建原始图像,但会跳过未使用的区域(告诉操作系统将它们标记为“稀疏”),因此即使生成的 .img 看起来有 4 GB,但它只占用磁盘上的几 MB。

您稍后可以使用 将 .img 文件转换为动态大小的 .vhd 或 .vmdk qemu-img

或者,ntfsclone --save-image将直接输出其自己的稀疏图像格式(仅供 ntfsclone 本身使用)。

另一个成像工具是 Clonezilla。

虽然我个人经常只是使用磁盘2vhd通过 Windows 本身 - 它通过卷影复制创建稀疏 VHD 格式的图像。

相关内容