我的笔记本电脑刚刚修好,我安装了全新、干净的 Ubuntu 18.04。我想使用 Deja-dup 备份工具,利用我在外部硬盘上制作的备份恢复主目录中的数据。但它根本不起作用,我遇到了严重的麻烦。我首先尝试使用图形用户界面,但错误消息没有提供任何信息。在查看了各种帖子后,我尝试了命令行:
duplicity restore --no-encryption file:///media/path/to/backups /home/me/restore
其中/home/me/restore
是我想要恢复数据的目录,/media/path/to/backups
是存储备份的地方,即包含许多名为 的文件的目录duplicity-full.*.vol*.difftar.gz
。
我收到的错误信息是:
Traceback (innermost last):
File "/usr/bin/duplicity", line 1555, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1541, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1393, in main
do_backup(action)
File "/usr/bin/duplicity", line 1472, in do_backup
restore(col_stats)
File "/usr/bin/duplicity", line 728, in restore
restore_get_patched_rop_iter(col_stats)):
File "/usr/bin/duplicity", line 750, in restore_get_patched_rop_iter
backup_chain = col_stats.get_backup_chain_at_time(time)
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 974, in get_backup_chain_at_time
raise CollectionsError("No backup chains found")
CollectionsError: No backup chains found
我也试过
duplicity list-current-files --no-encryption file:///media/path/to/backups/
产生相同(错误)的输出。
编辑:我已将 的内容复制/media/path/to/backups/
到我的新家中的目录中:/home/me/path/to/backups
。命令:
$ ls -l *
输出具有相同权限的文件列表,类似于:
-rwxr-xr-x 1 me me 240414720 avril 3 17:16 duplicity-full.20200318T095811Z.vol100.difftar
其中me
替换了我的真实用户名。命令:
$ sudo duplicity list-current-files --no-encryption file:///home/me/path/to/backups/
输出:
gpg: Attention : le propriétaire du répertoire personnel « /home/me/.gnupg »
n'est pas sûr
Les métadonnées locales et distantes sont déjà synchronisées. Aucune synchronisation nécessaire.
Avertissement, jeux de sauvegarde incomplets trouvés, probablement laissés par des sessions interrompues
Date de la dernière sauvegarde complète : aucune
Traceback (innermost last):
File "/usr/bin/duplicity", line 1555, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1541, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1393, in main
do_backup(action)
File "/usr/bin/duplicity", line 1476, in do_backup
list_current(col_stats)
File "/usr/bin/duplicity", line 702, in list_current
sig_chain = col_stats.get_signature_chain_at_time(time)
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 998, in get_signature_chain_at_time
raise CollectionsError("No signature chains found")
CollectionsError: No signature chains found
因此测试单个文件的恢复似乎毫无意义。
我在此处找不到名称中带有“签名”的文件。
不过,我使用[这篇文章]手动提取 duplicity 文件手动提取备份内容。对于 8.gz 文件,提取失败并显示错误:
gzip: duplicity-full.20200318T095811Z.vol57.difftar.gz: invalid compressed data--format violated
所以最后,我只恢复了一小部分数据,但对于剩下的数据我完全不抱希望了。
我可能做错了什么(现在很难追查),但至少,duplicity 没有警告我备份已损坏。