我怎样才能轻松地将大型备份文件分割到多个磁盘上?

我怎样才能轻松地将大型备份文件分割到多个磁盘上?

背景:我主要备份/存档照片。我正在尝试使用 Bup,它是专为备份到硬盘而设计的。基本上,它会创建 Git 存储库,其中包含最大 1GB 的包文件。但我仍然需要最后的备份以保持离线状态并移至异地(将它们保存在只读媒体上也很好!)。

有哪些方法可以将大型文件存档并分割到多个光盘(如 CD)上(并读取它们!)?我更喜欢以下方法

  • 将来仍将保持可读性。
  • 可移植至例如 Windows。
  • 已经知道简单的实现,因此如果有必要我可以自己重新实现它们。

(使用 Bup 包将扩大我的稳健性预算。因此,我希望对系统其他部分的行为有信心)。

我听说 ZIP 和 7-Zip 都可以拆分存档。是这样的吗?

答案1

  • Linux 上的 Info-ZIP 可以创建文档格式的分割 ZIP 文件。选项是例如zip -s 600m ...。这些文件可以通过 WinZIP 提取,但是...

    不幸的是大多数其他解压软件会卡住。Windows 内置解压软件声称不支持它们。甚至 Info-ZIP 也无法直接解压它们 :(。您必须提前使用zip -F(或) 将它们合并。zip -s0

  • Linux 上的 7-Zip(可能还有 Windows)可以创建任何类型的分割档案。选项为例如7z a -tzip -v600m ...(针对 ZIP 文件)。

    7-Zip 的分割档案只是普通的分割文件,不是记录的 ZIP 分割格式。其他解压软件无法正确处理它们,包括unzip、WinZIP,当然还有 Windows 的内置解压功能。

    这意味着个别文件将没有标头(不会被识别file)。第一个文件将有标头,但对其他软件来说却显示为已损坏。ZIP 格式可能会进一步加剧这种情况,因为“标头”在某种程度上是可选的;即使没有标头,读取软件也应该识别文件末尾的“中央目录”。因此,按照标准,序列中的最后一个文件将是有效的 ZIP 文件,这会让其他软件感到困惑。

    混淆对于备份来说并不好!至少在 Windows 上,您可以希望额外的数字文件扩展名能够提供一些保护。7-Zip 生成的文件名序列与您使用 Info-ZIP 获得的文件名序列非常不同。

    而积极的一面是,7-Zip 是开源的,并且被广泛使用。除了上述注意事项之外,这种拆分“格式”是众所周知的,并且可以在任何操作系统上重新组合:

    $ cat split.zip.* > split.zip
    
    C:> copy /b split.zip.* split.zip
    
  • 也可以使用 生成 7-Zip 使用的简单分割文件split -b 600m split.zip split.zip.。默认情况下,它将使用不同的文件名序列,因此 7-Zip 不会直接提取它们。

我建议使用像 7-Zip 那样的简单通用分割文件,并使用 ZIP 作为可移植存档格式。因此,您可以使用上面的 7-Zip 命令创建它们。

相关内容