Какво да направите, ако не можете да възстановите файловете си
Michael Terry

Creative Commons Attribution-Share Alike 4.0 Unported License

Atanas Kovachki
https://launchpad.net/~zdar
Valentin Laskov
https://launchpad.net/~laskov

# Когато всичко завършва зле

Déjà Dup may fail. Maybe it crashes or gives you an error when you try to restore. When you really need your data back, the last thing you want do deal with is a bug. Consider filing a help request but in the meantime, here are some approaches to workaround a misbehaving Déjà Dup and get your data back.

Тук вече е за техничари. Ако не разбирате нищо от това, не се притеснявайте да помолите за помощ.

Отворете прозорец с Terminal като натиснете 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, PORT, USERNAME и PASSWORD в примера по-долу.

Може да трябва да зададете папката, в която да се поставят архивните файлове. В примера по-долу, заменете навсякъде FOLDER с този път.

Ако изберете да не влизате с потребителско име, ползвайте anonymous като Ваше USERNAME по-долу.

    gvfs-mount ftp://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР:ПОРТ/ПАПКА
    duplicity --gio ftp://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР:ПОРТ/ПАПКА /tmp/restore

### SSH

Намерете адреса на Вашия сървър, порт, потребителско име и парола, и ги поставете на съответните места за SERVER, PORT, USERNAME и PASSWORD в примера по-долу.

Може да трябва да зададете папката, в която да се поставят архивните файлове. В примера по-долу, заменете навсякъде FOLDER с този път.

    gvfs-mount ssh://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР:ПОРТ/ПАПКА
    duplicity --gio ssh://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР:ПОРТ/ПАПКА /tmp/restore

### WebDAV

Намерете адреса на Вашия сървър, порт, потребителско име и парола, и ги поставете на съответните места за SERVER, PORT, USERNAME и PASSWORD в примера по-долу.

Може да трябва да зададете папката, в която да се поставят архивните файлове. В примера по-долу, заменете навсякъде FOLDER с този път.

Ако изберете да ползвате сигурна връзка (HTTPS), когато архивирате, ползвайте davs:// вместо dav:// в примера по-долу.

    gvfs-mount dav://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР:ПОРТ/ПАПКА
    duplicity --gio dav://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР:ПОРТ/ПАПКА /tmp/restore

### Споделено Windows устройство

Намерете Вашите адрес на сървър, потребителско име и парола и заменете съответно SERVER, USERNAME и PASSWORD, където се появяват в примера по-долу.

Може да трябва да зададете папката, в която да се поставят архивните файлове. В примера по-долу, заменете навсякъде FOLDER с този път.

Ако сте задали домейн за Вашия Windows сървър, добавете го пред USERNAME с двоеточие между тях. Например, domain;username.

    gvfs-mount smb://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР/ПАПКА
    duplicity --gio smb://ПОТРЕБИТЕЛСКО ИМЕ@СЪРВЪР/ПАПКА /tmp/restore

# Ръчно възстановяване

Ако и duplicity не Ви свърши работа, все още има някаква надежда. Форматът на архивните файлове е сложен и труден за обработка. Но ако сте на прага на отчаянието, струва си да опитате.

Ако сте използвали отдалечен сървър или облачна услуга за съхранение на резервните Ви копия, първо свалете всичките duplicity файлове и ги поставете в папка на Вашия компютър. След това в терминал, влезте в тази папка.

Duplicity записва данните Ви в малки парчета, наречени томове. Някои томове принадлежат към периодичните ‘пълни’ или свежи архиви, а други към ‘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 върху който имате за да извлечете отделните patch файлове:

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

Или отново, за да направите всичко наведнъж:

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

Сега patch файловете ще са в multivolume_snapshot и snapshot папки. Всеки файл, който обхваща няколко тома ще бъде в multivolume_snapshot. Да предположим, че сте архивирали /home/jane/essay.txt:

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

За да възстановите данни от последователни (incremental) архиви, използвайте rdiff да зашиете файловете заедно. Вижте man rdiff за начина на употреба.