令我惊讶和高兴的是,我能够做到这一点。我想我应该把它记录下来。它综合了我发现的几个其他答案来指导我,但重点关注一个我还没有看到直接解决的案例。
这是我的情况:几年前我更换了家用电脑。我的旧电脑运行的是 Ubuntu 14。我的新电脑运行的是 Ubuntu 16。在旧电脑上,我使用 backups/deja-dup/duplicity 定期将数据备份到外部驱动器。
几天前,我的旧电脑(Ubuntu 14 版)的硬盘坏了。我已将大部分重要内容复制到新电脑(Ubuntu 16)上。但是,有一个项目文件夹里还有一些我还没来得及复制的旧项目。所以我想看看能否从外部驱动器上的备份中恢复此文件夹。
这是我想要从旧电脑恢复的文件夹的路径:
/home/klenwell/projects
这是我的外部驱动器上保存备份的文件夹的路径(将外部驱动器插入新计算机后):
/media/klenwell/my-external-drive/u2014
我想将其恢复到新计算机上此路径的文件夹中:
/tmp/restored/u2014/projects
答案1
首先,快速回顾一下上面的问题,我将在这里使用的关键路径:
- 我想要恢复的旧死机计算机中的文件夹:
/home/klenwell/projects
- 外部驱动器上的旧计算机备份文件夹(插入新计算机时):
/media/klenwell/my-external-drive/u2014
- 我想要恢复文件夹的新计算机上的文件夹:
/tmp/restored/u2014/projects
命令行
从命令行,这是我运行的用于恢复备份的命令。请参阅下一节以获取带有说明的分步指南:
# backup new project directory (to be safe)
mkdir /tmp/new-projects-backup
cp -R ~/projects /tmp/new-projects-backup
# review list of backed up paths from old computer
sudo duplicity list-current-files file:///media/klenwell/my-external-drive/u2014 > /tmp/u2014-backup-list.txt
less /tmp/u2014-backup-list.txt
# make destination folder for restored directory
mkdir /tmp/restored/u2014/projects
# restore backup
sudo duplicity restore \
--file-to-restore home/klenwell/projects \
file:///media/klenwell/my-external-drive/u2014 \
/tmp/restored/u2014/projects
# confirm folder has been restored
ls -al /tmp/restored/u2014/projects
循序渐进指南
以下是以下命令的细分以及每个命令的解释:
将外部驱动器插入新计算机并确认其可访问:
ls -al /media/klenwell
笔记:
- 实际上,已安装的外部驱动器的目录名称是一个随机字符串,如
ksdfd987s-0sll1332-skd09233
。 - 为了简化本指南,我假设它已被命名
my-external-drive
并且备份位于文件夹中u2014
。
- 实际上,已安装的外部驱动器的目录名称是一个随机字符串,如
确认我可以看到旧电脑的备份文件:
sudo duplicity list-current-files file:///media/klenwell/my-external-drive/u2014 > /tmp/u2014-backup-list.txt less /tmp/u2014-backup-list.txt
笔记:
- 我需要用来
sudo
解决这个导入错误:https://lists.nongnu.org/archive/html/duplicity-talk/2013-10/msg00002.html - 我需要知道我在旧电脑上加密备份时使用的密码,这意味着我输入了 2 个密码:我的 sudo 密码和我的备份密码。
- 请注意
file://
我的备份文件夹路径的前缀。 - 生成输出文件需要几分钟。
- 我需要用来
为了安全起见,在新电脑上进行备份,
/home/klenwell/projects
以防 duplicity 由于某些奇怪的原因尝试将备份文件夹恢复到相同路径:mkdir /tmp/new-projects-backup cp -R ~/projects /tmp/new-projects-backup
这就是奇迹发生的地方(这是一个相当大的目录,因此在我的情况下花了几分钟):
sudo duplicity restore \ --file-to-restore home/klenwell/projects \ file:///media/klenwell/my-external-drive/u2014 \ /tmp/restored/u2014/projects
为了确认一切顺利,我现在应该看到我的旧项目目录已恢复:
ls -al /tmp/restored/u2014/projects