我使用 Ubuntu 14.04 的默认备份实用程序。连接后,备份文件存储在外部 USB3 磁盘中。
在这个 Ubuntu 系统上我安装了 VirtualBox,它运行一个旧的 Windows XP 虚拟机。
问题
今天的会话之后,该虚拟机的 .vdi 磁盘严重损坏(我不知道为什么,它看起来像是 Win 问题),我想从备份中将其完全恢复。
因此,我在备份 GUI 中寻找合适的功能,但似乎没有办法通过“点击”恢复单个文件
因此,我首先重命名了损坏的文件,然后尝试从命令行
$ cd ~/VirtualBox VMs/VirtXP
$ mv VirtXP.vdi VirtXP.vdi.corrupt
第一次尝试
$ deja-dup --restore VirtXP.dvi
这将打开 GUI 并显示一个可供选择的日期列表,其中至少包含多行。在我选择一个日期(倒数第二个日期)后,系统会花很长时间进行“准备...”操作,然后告诉我“无法恢复,因为在备份中找不到该文件”。
第二次尝试
$ deja-dup --restore-missing .
这样,它还显示了一个相当不同的列表,尽管花费了很长时间并且有消息(“分析七个月前的文件......”),但只包含一行。(顺便说一句, 这是同一个对话框我从鹦鹉螺 Restore Missing Files...
。
问题是,这个文件太新了。事实上,它是几个小时前才创建的:备份实用程序一定是在文件损坏后才备份的!所以我不需要这个文件。
问题
我肯定错过了什么。
我不敢相信,只需插入外部硬盘,就会触发新的备份,用新的(损坏的)文件覆盖旧的(好的)文件。对于三个月前备份的文件来说,这也许是正确的,但用今天的文件覆盖昨天的备份显然是错误的。
我如何才能可靠地找到该 .vdi 文件的倒数第二个备份版本?
我如何识别和/或修复最终的错误配置问题?
非常感谢
答案1
我必须承认部分问题是由于文件名输入错误造成的。
部分答案:
正如你在上面看到的,我把.dvi
扩展名输错了.vdi
。这就是第一次尝试不成功。
事实上,我可以使用以下命令找到足够旧的备份文件duplicity
:
$ duplicity list-current-files -t 3D file:///media/user/TOSHIBA\ EXT/backup_home_user | grep .vdi
成功找到文件:
Fri Dec 9 09:56:13 2016 home/lorenzo/VirtualBox VMs/VirtXP/VirtXP.vdi
基于此,我再次通过 duplicity 尝试:
$ duplicity restore --file-to-restore VirtualBox\ VMs/VirtXP/VirtXP.vdi -t 3D file:///media/user/TOSHIBA\ EXT/backup_home_user ./restoreDir
...不幸的是,这导致了对“GnuPG 密码”的请求,而我记不住。
因此我继续使用 deja-dup 并再次发出以下命令(这次使用正确的.vdi
扩展名):
deja-dup --restore VirtXP.vdi
...因此,选择 12 月 9 日日期后,恢复就成功完成了。
仍有两个问题:
为什么 deja-dup 可以在没有密码的情况下工作,以及我如何才能恢复它?
为什么第二次尝试()没有
--restore-missing
成功?(没有错误的文件名)