如何将运行 Ubuntu 的旧计算机上备份的文件夹恢复到新计算机上?

如何将运行 Ubuntu 的旧计算机上备份的文件夹恢复到新计算机上?

令我惊讶和高兴的是,我能够做到这一点。我想我应该把它记录下来。它综合了我发现的几个其他答案来指导我,但重点关注一个我还没有看到直接解决的案例。

这是我的情况:几年前我更换了家用电脑。我的旧电脑运行的是 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

循序渐进指南

以下是以下命令的细分以及每个命令的解释:

  1. 将外部驱动器插入新计算机并确认其可访问:

    ls -al /media/klenwell
    

    笔记:

    • 实际上,已安装的外部驱动器的目录名称是一个随机字符串,如ksdfd987s-0sll1332-skd09233
    • 为了简化本指南,我假设它已被命名my-external-drive并且备份位于文件夹中u2014
  2. 确认我可以看到旧电脑的备份文件:

    sudo duplicity list-current-files file:///media/klenwell/my-external-drive/u2014 > /tmp/u2014-backup-list.txt
    less /tmp/u2014-backup-list.txt
    

    笔记:

  3. 为了安全起见,在新电脑上进行备份,/home/klenwell/projects以防 duplicity 由于某些奇怪的原因尝试将备份文件夹恢复到相同路径:

    mkdir /tmp/new-projects-backup
    cp -R ~/projects /tmp/new-projects-backup
    
  4. 这就是奇迹发生的地方(这是一个相当大的目录,因此在我的情况下花了几分钟):

    sudo duplicity restore \
      --file-to-restore home/klenwell/projects  \
      file:///media/klenwell/my-external-drive/u2014 \
      /tmp/restored/u2014/projects
    
  5. 为了确认一切顺利,我现在应该看到我的旧项目目录已恢复:

    ls -al /tmp/restored/u2014/projects
    

参考

相关内容