Co zrobić, jeśli nie można przywrócić plików
Michael Terry

Creative Commons Attribution-Share Alike 4.0 Unported

Piotr Drąg
piotrdrag@gmail.com 2017-2020
Aviary.pl
community-poland@mozilla.org 2020

# Kiedy wszystko idzie źle

Déjà Dup może nie zadziałać poprawnie. Być może ulega awarii lub informuje o problemie podczas przywracania. Błąd to ostatnia rzecz, jaką chcesz się zajmować, kiedy potrzebujesz swoich danych. Prosimy o zgłoszenie go, ale w międzyczasie można skorzystać z kilku sposobów obejścia niewłaściwego działania programu Déjà Dup i przywrócenia danych.

To będzie wymagało wiedzy technicznej. Jeśli nic z tego nie ma dla Ciebie sensu, nie bój się poprosić o pomoc.

Otwórz Terminal naciskając klawisze Ctrl Alt T.

Utwórz katalog do umieszczenia przywróconych plików. W tym podręczniku to /tmp/restore:

    mkdir -p /tmp/restore

# Przywracanie za pomocą programu Duplicity

Jeśli Déjà Dup po prostu nie działa w tej chwili poprawnie, to należy użyć narzędzia wiersza poleceń duplicity, wykorzystywanego przez Déjà Dup do wykonywania kopii zapasowych i przywracania plików.

Polecenie man duplicity wyświetli więcej informacji o duplicity, niż jest podanych tutaj.

Najpierw spróbujemy po prostu przywrócić wszystkie dane. Jeśli pliki są na zewnętrznym dysku zamontowanym jako /media/backup i zostały zaszyfrowane, wykonaj:

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

Jeśli kopia zapasowa nie jest zaszyfrowana, dodaj --no-encryption do polecenia.

## Inne położenia kopii zapasowej

Jeśli kopia zapasowa jest na zdalnym serwerze lub w chmurze, to składnia polecenia duplicity będzie inna, niż w przypadku dysku zewnętrznego. Poniżej znajdują się instrukcje łączenia z wybranym położeniem kopii zapasowej.

Pamiętaj o dodaniu --no-encryption do każdego przykładowego polecenia, jeśli kopia zapasowa nie jest zaszyfrowana.

Jeśli duplicity ma trudności podczas łączenia z serwerem, ręcznie pobierz wszystkie pliki duplicity do lokalnego katalogu i postępuj zgodnie z przykładem podanym powyżej.

### FTP

Znajdź swój adres, port, nazwę użytkownika i hasło serwera, a następnie zastąp wystąpienia SERWER, PORT, NAZWA-UŻYTKOWNIKA i HASŁO w poniższym przykładzie tymi wartościami.

Jeśli podano katalog do umieszczenia plików kopii zapasowej, to w poniższym przykładzie zastąp wszystkie wystąpienia KATALOG tą ścieżką.

Jeśli wybrano logowanie bez nazwy użytkownika, to użyj anonymous jako NAZWA-UŻYTKOWNIKA.

    gvfs-mount ftp://NAZWA-UŻYTKOWNIKA@SERWER:PORT/KATALOG
    duplicity --gio ftp://NAZWA-UŻYTKOWNIKA@SERWER:PORT/KATALOG /tmp/restore

### SSH

Znajdź swój adres, port, nazwę użytkownika i hasło serwera, a następnie zastąp wystąpienia SERWER, PORT, NAZWA-UŻYTKOWNIKA i HASŁO w poniższym przykładzie tymi wartościami.

Jeśli podano katalog do umieszczenia plików kopii zapasowej, to w poniższym przykładzie zastąp wszystkie wystąpienia KATALOG tą ścieżką.

    gvfs-mount ssh://NAZWA-UŻYTKOWNIKA@SERWER:PORT/KATALOG
    duplicity --gio ssh://NAZWA-UŻYTKOWNIKA@SERWER:PORT/KATALOG /tmp/restore

### WebDAV

Znajdź swój adres, port, nazwę użytkownika i hasło serwera, a następnie zastąp wystąpienia SERWER, PORT, NAZWA-UŻYTKOWNIKA i HASŁO w poniższym przykładzie tymi wartościami.

Jeśli podano katalog do umieszczenia plików kopii zapasowej, to w poniższym przykładzie zastąp wszystkie wystąpienia KATALOG tą ścieżką.

Jeśli podczas wykonywania kopii zapasowej wybrano zabezpieczone połączenie (HTTPS), to użyj davs:// zamiast dav:// w poniższym przykładzie.

    gvfs-mount dav://NAZWA-UŻYTKOWNIKA@SERWER:PORT/KATALOG
    duplicity --gio dav://NAZWA-UŻYTKOWNIKA@SERWER:PORT/KATALOG /tmp/restore

### Zasób Windows

Znajdź swój adres, nazwę użytkownika i hasło serwera, a następnie zastąp wystąpienia SERWER, NAZWA-UŻYTKOWNIKA i HASŁO w poniższym przykładzie tymi wartościami.

Jeśli podano katalog do umieszczenia plików kopii zapasowej, to w poniższym przykładzie zastąp wszystkie wystąpienia KATALOG tą ścieżką.

Jeśli podano domenę dla serwera Windows, to dodaj ją na początku wartości NAZWA-UŻYTKOWNIKA ze średnikiem między nimi. Na przykład: domena;nazwa-użytkownika.

    gvfs-mount smb://NAZWA-UŻYTKOWNIKA@SERWER/KATALOG
    duplicity --gio smb://NAZWA-UŻYTKOWNIKA@SERWER/KATALOG /tmp/restore

# Ręczne przywracanie

Jeśli nawet duplicity nie pomaga, to nie należy się poddawać. Format plików kopii zapasowej jest skomplikowany i niełatwy w modyfikacji, ale w trudnej sytuacji warto spróbować.

Jeśli kopia zapasowa jest na zdalnym serwerze lub w chmurze, to najpierw pobierz wszystkie pliki duplicity i umieść je w katalogu na komputerze. Następnie przejdź do tego katalogu w terminalu.

Duplicity przechowuje dane w małych fragmentach, zwanych woluminami. Niektóre woluminy należą do okresowych pełnych kopii zapasowych, a inne do kopii przyrostowych. Zaczynając od zestawu woluminów pełnej kopii zapasowej na 1. woluminie, będzie trzeba przywracać pliki wolumin po woluminie.

Jeśli kopia zapasowa jest zaszyfrowana, najpierw należy odszyfrować wolumin za pomocą polecenia gpg. Jeśli nazywa się on duplicity-full.20110127T131352Z.vol1.difftar.gpg:

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

Albo zrób wszystko naraz (upewnij się, że jest wystarczająco miejsca!):

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

Wynikiem jest wolumin .difftar lub .difftar.gz (w zależności od tego, czy musiał zostać odszyfrowany). Wykonaj polecenie tar na woluminie, aby wypakować poszczególne pliki łat:

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

Albo znowu zrób wszystko naraz:

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

Pliki łat będą w katalogach multivolume_snapshot i snapshot. Wszystkie pliki rozciągnięte na kilka woluminów będą w multivolume_snapshot. Jeśli plik w kopii zapasowej nazywa się /home/jane/essay.txt:

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

Aby przywrócić dane z kopii przyrostowej, wykonaj polecenie rdiff w celu połączenia plików w całość. man rdiff zawiera więcej informacji o tym poleceniu.