我正在运行 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 通过终端恢复您的备份。
如果 Deja Dup 出现错误,打开终端并尝试
duplicity --gio file:///media/backup /tmp/restore
- 请务必使用,
file:///
因为 Duplicity 需要一个 URL。 - 这不起作用?检查表里不一从 Launchpad 运行测试脚本时遇到问题,该脚本位于此处:https://bugs.launchpad.net/duplicity/+bug/1252484。 直接链接:https://bugs.launchpad.net/duplicity/+bug/1252484/comments/10。
第2步:如果有必要,请升级到建议的版本,修复 Duplicity 错误:
- 在此启用建议的存储库:应用程序→Ubuntu 软件中心→编辑→软件源→更新。请勿立即更新您的系统,因为提议的 repo 是测试版!
仅使用这些命令升级 Duplicity(替换
/precise
为您的 Ubuntu 版本名称)。更多信息请访问https://wiki.ubuntu.com/Testing/EnableProposed:sudo apt-get update sudo apt-get install duplicity/precise-proposed
禁用建议的存储库!
重启并再次运行测试脚本。错误应该消失了!
步骤3:检查 Duplicity 中是否存在其他错误。
在详细模式下再次运行 Duplicity(您可能仍然会收到错误):
duplicity -v9 --gio file:///media/backup /tmp/restore
检查终端输出开始时是否存在以下错误:
Import of duplicity.backends.sshbackend Failed: No module named paramiko
如果发现该错误,请安装另一个包(在此处找到:http://www.rubenortiz.es/2012/12/11/ubuntu-no-module-named-paramiko/):
apt-get install python-paramiko
步骤4:查找并修复 Deja Dup 问题。
再次在终端中运行 duplicity:
duplicity -v9 --gio file:///media/backup /tmp/restore
- 您仍然会拥有
AssertionError
&日志告诉您备份的某些部分将被跳过,因为它们不被 duplicity 接受。 - 导航到您的备份文件夹。
- 找到与此类似命名的文件:
duplicity-full-signatures.20130523T142126Z.sigtar.gz
。 - 全部移动除了一个将这些文件从备份文件夹移到安全的地方。
- 再次尝试 Duplicity 命令。现在应该可以正常工作了。
- 如果还不起作用,请尝试使用不同的 sig 文件。
- 再次尝试 Deja Dup。现在应该可以正常工作了。
在未修复的版本中,Duplicity 会创建重复的签名文件,从而导致恢复失败。我不知道哪些签名文件必须保留,所以只能试错!信息在此处找到:https://bugs.launchpad.net/ubuntu/+source/duplicity/+bug/633101 和这里:https://bugs.launchpad.net/duplicity/+bug/703142。
旁注:我无法将 Deja Dup 升级到最近的稳定版本。它只是停留在 v22 上,所以可能也存在问题。