Что предпринять, если вы не можете восстановить свои файлы
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-2025

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

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

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

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

# Restic или Duplicity?

На протяжении своего развития в приложении Déjà Dup использовались различные инструменты резервного копирования. В начале использовалось Duplicity, в настоящее время может использоваться Restic.

Ваша резервная копия может храниться в любом формате, в зависимости от того, когда вы её создали.

Загляните в папку, где хранится ваша резервная копия:

Если все названия файлов начинаются с duplicity-, это резервная копия Duplicity. Ознакомьтесь с разделами по Duplicity ниже.

Если вы видите файл config и несколько папок, похожих на keys, это резервная копия Restic. Ознакомьтесь с разделами Restic ниже.

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

Предположим, что Déjà Dup просто сейчас не работает. Давайте воспользуемся утилитой командной строки Restic, которая используется в Déjà Dup для резервного копирования и восстановления файлов.

Если вы хотите получить больше информации о Restic, чем представлено здесь, выполните команду restic --help.

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

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

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

Если вам нужно выполнить более сложную диагностику, ознакомьтесь с их руководством по устранению неполадок.

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

Предположим, что Déjà Dup просто не работает у вас в данный момент. Тогда вам нужно использовать утилиту командной строки duplicity, которая используется в Déjà Dup для резервного копирования и восстановления файлов.

Если вы хотите получить больше информации о Duplicity, чем представлено здесь, ознакомитесь с он-лайн документацией.

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

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

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

## Другие места хранения

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

Ознакомьтесь с документацией Duplicity как получить доступ к вашему серверу или попробуйте самостоятельно загрузить все файлы Duplicity в локальную папку и следовать более простому примеру, приведенному выше.

## Восстановление файлов с Duplicity вручную

Даже если 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 для подробных инструкций.