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

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

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

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

Откройте окно Терминала, нажав CtrlAltT.

Create the directory in which you will place your restored files. This guide will use /tmp/restore:

    mkdir -p /tmp/restore

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

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

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

The first thing we’ll try is a simple restore of all your data. Assuming your files are on an external drive mounted as /media/backup and you chose to encrypt the backup, try this:

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

If you didn’t encrypt the backup, add --no-encryption to the command.

## Другое расположение резервной копии

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

Remember to add --no-encryption to any example commands if your backup is not encrypted.

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

### Amazon S3

Найдите ваш ID ключа доступа и секретный ключ доступа к Amazon S3 и замените строки ID и СЕКРЕТ в примере ниже на соответствующие значения.

Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку ПУТЬ на этот путь.

    export AWS_ACCESS_KEY_ID=ИДЕНТИФИКАТОР
    export AWS_SECRET_ACCESS_KEY=SECRET
    duplicity s3+http://deja-dup-auto-LOWERCASE_ID/ПАПКА /tmp/restore

### Облачные файлы Rackspace

Найдите ваши имя пользователя и ключ API для Rackspace и замените строки ИМЯ и КЛЮЧ в примере ниже на соответствующие значения.

Возможно, вы указывали контейнер, в который нужно помещать резервные копии. В примере ниже замените строку КОНТЕЙНЕР на имя этого контейнера.

    export CLOUDFILES_USERNAME=ИМЯ ПОЛЬЗОВАТЕЛЯ
    export CLOUDFILES_APIKEY=КЛАВИША
    duplicity cf+http://CONTAINER /tmp/restore

### FTP

Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки СЕРВЕР, ПОРТ, ИМЯ и ПАРОЛЬ в примере ниже на соответствующие значения.

Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку ПУТЬ на этот путь.

If you chose to not log in with a username, use anonymous as your USERNAME below.

    gvfs-mount ftp://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER:ПОРТ/ПАПКА
    duplicity --gio ftp://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER:ПОРТ/ПАПКА /tmp/restore

### SSH

Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки СЕРВЕР, ПОРТ, ИМЯ и ПАРОЛЬ в примере ниже на соответствующие значения.

Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку ПУТЬ на этот путь.

    gvfs-mount ssh://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER:ПОРТ/ПАПКА
    duplicity --gio ssh://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER:ПОРТ/ПАПКА /tmp/restore

### WebDAV

Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки СЕРВЕР, ПОРТ, ИМЯ и ПАРОЛЬ в примере ниже на соответствующие значения.

Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку ПУТЬ на этот путь.

If you chose to use a secure connection (HTTPS) when backing up, use davs:// instead of dav:// in the example below.

    gvfs-mount dav://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER:ПОРТ/ПАПКА
    duplicity --gio dav://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER:ПОРТ/ПАПКА /tmp/restore

### общие ресурсы Windows

Найдите ваш адрес сервера, имя пользователя и пароль и замените строки СЕРВЕР, ИМЯ и ПАРОЛЬ в примере ниже на соответствующие значения.

Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку ПУТЬ на этот путь.

Если вы указывали домен для вашего сервера Windows, добавьте его перед ИМЯ, разделяя их точкой с запятой. Например, домен;имя.

    gvfs-mount smb://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER/ПАПКА
    duplicity --gio smb://ИМЯ ПОЛЬЗОВАТЕЛЯ@SERVER/ПАПКА /tmp/restore

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

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

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

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

If you encrypted your backup, first you must decrypt the volume with gpg. Say you have 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

Now you have either a .difftar or a .difftar.gz volume (depending on whether you had to decrypt it or not). Use tar on whichever one you have to extract the individual patch files:

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

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

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

Now the patch files will be in multivolume_snapshot and snapshot folders. Each file that spanned multiple volumes will be in multivolume_snapshot. Let’s say you backed up /home/jane/essay.txt:

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

To recover data from incremental backups, use rdiff to stitch the files together. See man rdiff for usage.