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

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

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

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

У 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

Визначте адресу, порт, ім'я користувача та пароль для вашого сервера і замініть фрагменти СЕРВЕР, ПОРТ, КОРИСТУВАЧ і ПАРОЛЬ у наведеному ничже прикладі на відповідні значення.

Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи ТЕКА на шлях до цієї теки.

Якщо вами було вибрано варіант без входу за допомогою імені користувача, скористайтеся записом anonymous замість запису КОРИСТУВАЧ у наведених нижче командах.

    gvfs-mount ftp://КОРИСТУВАЧ@СЕРВЕР:ПОРТ/ТЕКА
    duplicity --gio ftp://КОРИСТУВАЧ@СЕРВЕР:ПОРТ/ТЕКА /tmp/restore

### SSH

Визначте адресу, порт, ім'я користувача та пароль для вашого сервера і замініть фрагменти СЕРВЕР, ПОРТ, КОРИСТУВАЧ і ПАРОЛЬ у наведеному ничже прикладі на відповідні значення.

Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи ТЕКА на шлях до цієї теки.

    gvfs-mount ssh://КОРИСТУВАЧ@СЕРВЕР:ПОРТ/ТЕКА
    duplicity --gio ssh://КОРИСТУВАЧ@СЕРВЕР:ПОРТ/ТЕКА /tmp/restore

### WebDAV

Визначте адресу, порт, ім'я користувача та пароль для вашого сервера і замініть фрагменти СЕРВЕР, ПОРТ, КОРИСТУВАЧ і ПАРОЛЬ у наведеному ничже прикладі на відповідні значення.

Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи ТЕКА на шлях до цієї теки.

Якщо вами було вибрано захищене з'єднання (HTTPS) при створенні резервних копій, скористайтеся davs:// замість dav:// у наведеному нижче прикладі.

    gvfs-mount dav://КОРИСТУВАЧ@СЕРВЕР:ПОРТ/ТЕКА
    duplicity --gio dav://КОРИСТУВАЧ@СЕРВЕР:ПОРТ/ТЕКА /tmp/restore

### Спільні ресурси Windows

Визначте адресу, ім'я користувача та пароль для вашого сервера і замініть фрагменти СЕРВЕР, КОРИСТУВАЧ і ПАРОЛЬ у наведеному ничже прикладі на відповідні значення.

Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи ТЕКА на шлях до цієї теки.

Якщо вами було вказано домен для вашого сервера Windows, додайте його на початку запису КОРИСТУВАЧ разом із крапкою з комою. Приклад: домен;користувач.

    gvfs-mount smb://КОРИСТУВАЧ@СЕРВЕР/ТЕКА
    duplicity --gio smb://КОРИСТУВАЧ@СЕРВЕР/ТЕКА /tmp/restore

# Відновлення вручну

Якщо навіть 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, щоб дізнатися більше про користування програмою.