Что предпринять, если вы не можете восстановить свои файлы
Michael Terry

Creative Commons Attribution-Share Alike 4.0 Unported License

Alexander 'FONTER' Zinin
https://launchpad.net/~spore-09
Dmitriy Kulikov
https://launchpad.net/~kulikoff
Eugene Roskin
https://launchpad.net/~lowrider
Mihail Kravsun
https://launchpad.net/~ozzymk
Nikita Putko
https://launchpad.net/~ktototam98
Sergey Basalaev
https://launchpad.net/~sbasalaev
Sergey Sedov
https://launchpad.net/~serg-sedov
Michael Terry
mike@mterry.name 2019
Ser82-png
asvmail.as@gmail.com 2022-2023

# Когда всё идёт не так

Déjà Dup может завершиться неудачно. Может случиться, что она падает или выдаёт ошибку, когда вы пытаетесь сделать восстановление. Когда вам действительно нужно вернуть свои данные, ошибка это последнее чего вы хотите. Подумайте над составлением запроса о помощи, но пока он обрабатывается, вот несколько подходов, чтобы обойти неправильное поведение Déjà Dup и вернуть ваши данные.

Это технические сведения. Если всё описанное не имеет для вас смысла, не стесняйтесь просить о помощи.

These instructions assume you are have a command line available. Open a Terminal window first.

# Restic or Duplicity?

Over time, Déjà Dup has used different backup tools under the covers. Originally, it used Duplicity. Nowadays, it uses Restic.

Your backup might be in either format, depending on when you created it.

Look in the folder where your backup is kept:

If the filenames all start with duplicity-, then it's a Duplicity backup. Read the Duplicity sections below.

If you see a config file and a few folders like keys, then it's a Restic backup. Read the Restic sections below.

# Restoring with Restic

On the assumption that Déjà Dup is just not working for you right now, let’s use the command line tool Restic that is used by Déjà Dup behind the scenes to back up and restore your files.

If you want more information about Restic than presented here, run restic --help.

Для начала мы попробуем сделать простое восстановление всех ваших данных. Предполагая, что все ваши данные находятся на внешнем диске смонтированном как /media/backup и вы использовали шифрование резервных копий, попробуйте сделать это:

    restic restore --repo=/media/backup --target=/tmp/restore latest

Если вы не использовали шифрование резервных копий, то добавьте к команде: --insecure-no-password.

If you need to do more advanced debugging, read their troubleshooting guide.

# Восстановление с Duplicity

On the assumption that Déjà Dup is just not working for you right now, let’s use the command line tool duplicity that is used by Déjà Dup behind the scenes to back up and restore your files.

If you want more information about Duplicity than presented here, read its online documentation.

Для начала мы попробуем сделать простое восстановление всех ваших данных. Предполагая, что все ваши данные находятся на внешнем диске смонтированном как /media/backup и вы использовали шифрование резервных копий, попробуйте сделать это:

    duplicity restore file:///media/backup /tmp/restore

Если вы не использовали шифрование резервных копий, то добавьте к команде: --no-encryption.

## Other Storage Locations

If you backed up to a remote or cloud server, the syntax you use with Duplicity will be different than the external drive example above.

Read the Duplicity documentation for instructions on how to connect to your server, or try downloading all the Duplicity files yourself to a local folder and following the simpler example above.

## Restoring Duplicity Files by Hand

Даже если duplicity у вас не работает, всё ещё есть немного надежды. Формат файлов резервных копий сложен и с ним не так легко работать. Но если вы в отчаянии, стоит попробовать.

Если вы использовали удалённый или облачный сервер для хранения ваших резервных копий, сначала скачайте все файлы duplicity и поместите их в папку на вашем компьютере. Затем войдите в эту папку из своего терминала.

Duplicity хранит данные маленькими порциями, которые называются томами. Некоторые тома принадлежат периодическим ‘full’ или свежим резервным копиям, а другие принадлежат ‘inc’ или инкреметным резервным копиям. Начиная с полного набора резервных копий с номера 1, вам нужно восстановить файлы том за томом.

Если вы зашифровали свою резервную копию, сначала вы должны расшифровать её с помощью gpg. Предположим, у вас есть duplicity-full.20110127T131352Z.vol1.difftar.gpg:

    gpg --output duplicity-full.20110127T131352Z.vol1.difftar --decrypt duplicity-full.20110127T131352Z.vol1.difftar.gpg

Или, чтобы обработать сразу все (убедитесь, что у вас достаточно свободного места!):

    gpg --multifile --decrypt duplicity-full.20110127T131352Z.*.difftar.gpg

Теперь у вас есть либо .difftar, либо .difftar.gz том (в зависимости от того, пришлось вам его расшифровывать или нет). Используйте tar на любом из них, чтобы извлечь отдельные файлы исправлений:

    tar xf duplicity-full.20110127T131352Z.vol1.difftar

Или, снова, чтобы обработать все сразу:

    for t in duplicity-full.20110127T131352Z.*.difftar; do tar xf $t; done

Теперь файлы исправлений будут находиться в папках multivolume_snapshot и snapshot. Каждый файл, занимающий несколько томов, будет находиться в папке multivolume_snapshot. Допустим, вы создали резервную копию /home/jane/essay.txt:

    cd multivolume_snapshot/home/jane/essay.txt
    cat * > essay.txt

Чтобы восстановить данные из инкрементных резервных копий, используйте rdiff (чтобы собрать файлы воедино). Смотрите man rdiff для подробных инструкций.