Що робити, якщо ви не можете відновити ваші файли
Michael Terry

ліцензії Creative Commons Attribution-Share Alike 4.0 Unported

Юрій Чорноіван
yurchor@ukr.net 2020

# Коли усе йде не так

У Déjà Dup можуть бути вади. Програма може завершити роботу в аварійному режимі або повідомити про помилку, коли ви намагатиметеся відновити дані. Якщо вам дуже потрібні дані з резервної копії, вада у програмі є дуже прикрою перепоною. Вам варто скласти звіт про ваду. Між тим, нижче наведено декілька підходів для того, щоб обійти проблеми у Déjà Dup і отримати ваші дані неушкодженими.

Наведені поради призначено для технічного грамотних користувачів. Якщо вам не вдається зрозуміти сенс вказаних дій, не вагайтеся і просіть про допомогу.

У цих настановах ми припускаємо, що ви маєте доступ до командного рядка. Спочатку відкрийте вікно Термінала.

# 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 зберігає ваші дані у малих фрагментах, які називаються томами. Деякі томи належать до періодичних «повних» або свіжих резервних копій, а інші є томами нарощувальних резервних копій. Починаючи з повного набору томів резервної копії у томі 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, щоб дізнатися більше про користування програмою.