Deja Dup 恢复错误请帮忙

Deja Dup 恢复错误请帮忙

我正在运行 Ubuntu 12.10

  • 英特尔 i5
  • 8GB
  • 1TB
  • 技嘉主板

我已将所有数据(仅限主文件夹)备份到外部硬盘。今天,在使用相同版本的 Ubuntu 全新安装操作系统后,我无法恢复数据。

每次我尝试命令行时都会出现以下错误:

duplicity --gio file:///media/backup /tmp/restore

同样的错误

raceback (most recent call last):
  File "/usr/bin/duplicity", line 1412, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1405, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1339, in main
    restore(col_stats)
  File "/usr/bin/duplicity", line 630, in restore
    restore_get_patched_rop_iter(col_stats)):
  File "/usr/lib/python2.7/dist-packages/duplicity/patchdir.py", line 522, in Write_ROPaths
    for ropath in rop_iter:
  File "/usr/lib/python2.7/dist-packages/duplicity/patchdir.py", line 495, in integrate_patch_iters
    final_ropath = patch_seq2ropath( normalize_ps( patch_seq ) )
  File "/usr/lib/python2.7/dist-packages/duplicity/patchdir.py", line 462, in patch_seq2ropath
    assert first.difftype != "diff", patch_seq
AssertionError: [(('home', 'harry', '.apport-ignore.xml') reg)]

请帮忙。

答案1

我使用的是 Ubuntu 12.04,使用 Deja-Dup 或 Duplicity 恢复备份时遇到了问题。经过两天的研究和反复试验,我建议采取以下步骤(如果您想要快速恢复解决方案,请跳至步骤 4,但请记住,如果没有步骤 1-3,问题将会再次出现)

步骤1: 尝试使用 Duplicity 通过终端恢复您的备份。

  1. 如果 Deja Dup 出现错误,打开终端并尝试

    duplicity --gio file:///media/backup /tmp/restore
    
  2. 请务必使用,file:///因为 Duplicity 需要一个 URL。
  3. 这不起作用?检查表里不一从 Launchpad 运行测试脚本时遇到问题,该脚本位于此处:https://bugs.launchpad.net/duplicity/+bug/1252484。 直接链接:https://bugs.launchpad.net/duplicity/+bug/1252484/comments/10

第2步:如果有必要,请升级到建议的版本,修复 Duplicity 错误:

  1. 在此启用建议的存储库:应用程序→Ubuntu 软件中心→编辑→软件源→更新请勿立即更新您的系统,因为提议的 repo 是测试版!
  2. 仅使用这些命令升级 Duplicity(替换/precise为您的 Ubuntu 版本名称)。更多信息请访问https://wiki.ubuntu.com/Testing/EnableProposed

    sudo apt-get update
    sudo apt-get install duplicity/precise-proposed
    
  3. 禁用建议的存储库!

  4. 重启并再次运行测试脚本。错误应该消失了!

步骤3:检查 Duplicity 中是否存在其他错误。

  1. 在详细模式下再次运行 Duplicity(您可能仍然会收到错误):

    duplicity -v9 --gio file:///media/backup /tmp/restore
    
  2. 检查终端输出开始时是否存在以下错误:

    Import of duplicity.backends.sshbackend Failed: No module named paramiko 
    
  3. 如果发现该错误,请安装另一个包(在此处找到:http://www.rubenortiz.es/2012/12/11/ubuntu-no-module-named-paramiko/):

    apt-get install  python-paramiko
    

步骤4:查找并修复 Deja Dup 问题。

  1. 再次在终端中运行 duplicity:

    duplicity -v9 --gio file:///media/backup /tmp/restore
    
  2. 您仍然会拥有AssertionError&日志告诉您备份的某些部分将被跳过,因为它们不被 duplicity 接受。
  3. 导航到您的备份文件夹。
  4. 找到与此类似命名的文件:duplicity-full-signatures.20130523T142126Z.sigtar.gz
  5. 全部移动除了一个将这些文件从备份文件夹移到安全的地方。
  6. 再次尝试 Duplicity 命令。现在应该可以正常工作了。
  7. 如果还不起作用,请尝试使用不同的 sig 文件。
  8. 再次尝试 Deja Dup。现在应该可以正常工作了。

在未修复的版本中,Duplicity 会创建重复的签名文件,从而导致恢复失败。我不知道哪些签名文件必须保留,所以只能试错!信息在此处找到:https://bugs.launchpad.net/ubuntu/+source/duplicity/+bug/633101 和这里:https://bugs.launchpad.net/duplicity/+bug/703142

旁注:我无法将 Deja Dup 升级到最近的稳定版本。它只是停留在 v22 上,所以可能也存在问题。

相关内容