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

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

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

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

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

Выберите папку, куда будут помещены файлы восстановления. Это руководство использует /tmp/restore:

    mkdir -p /tmp/restore

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

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

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

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

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

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

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

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

Не забывайте добавлять --no-encryption к любому из примеров команд, если резервная копия не зашифрована.

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

### FTP

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

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

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

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

### SSH

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

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

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

### WebDAV

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

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

Если Вы используете защищённое соединение (HTTPS) для резервного копирования, используйте davs:// вместо dav:// в нижеприведённых примерах.

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

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

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

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

Если вы указывали домен для вашего сервера Windows, добавьте его перед ИМЯ_ПОЛЬЗОВАТЕЛЯ, разделяя их точкой с запятой. Например, домен;имя_пользователя.

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

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

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