<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: Michael Terry
-->
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0" type="topic" style="task" id="restore-worst-case" xml:lang="ru">
<info>
  <desc>Что предпринять, если вы не можете восстановить свои файлы</desc>
  <link type="guide" xref="index#restore"/>
  <credit type="author" its:translate="no">
    <name>Michael Terry</name>
  </credit>
  <license href="http://creativecommons.org/licenses/by-sa/4.0/"><p>Creative Commons Attribution-Share Alike 4.0 Unported License</p></license>

    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Alexander 'FONTER' Zinin</mal:name>
      <mal:email>https://launchpad.net/~spore-09</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Dmitriy Kulikov</mal:name>
      <mal:email>https://launchpad.net/~kulikoff</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Eugene Roskin</mal:name>
      <mal:email>https://launchpad.net/~lowrider</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Mihail Kravsun</mal:name>
      <mal:email>https://launchpad.net/~ozzymk</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Nikita Putko</mal:name>
      <mal:email>https://launchpad.net/~ktototam98</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Sergey Basalaev</mal:name>
      <mal:email>https://launchpad.net/~sbasalaev</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Sergey Sedov</mal:name>
      <mal:email>https://launchpad.net/~serg-sedov</mal:email>
      <mal:years/>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Michael Terry</mal:name>
      <mal:email>mike@mterry.name</mal:email>
      <mal:years>2019</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Ser82-png</mal:name>
      <mal:email>asvmail.as@gmail.com</mal:email>
      <mal:years>2022-2025</mal:years>
    </mal:credit>
  </info>

<title>Когда всё идёт не так</title>

<p><app>Déjà Dup</app> может завершиться неудачно. Может случиться, что она падает или выдаёт ошибку, когда вы пытаетесь сделать восстановление. Когда вам действительно нужно вернуть свои данные, ошибка это последнее чего вы хотите. Подумайте над составлением <link href="https://gitlab.gnome.org/World/deja-dup/-/issues/new">запроса о помощи</link>, но пока он обрабатывается, вот несколько подходов, чтобы обойти неправильное поведение <app>Déjà Dup</app> и вернуть ваши данные.</p>

<note><p>Это технические сведения. Если всё описанное не имеет для вас смысла, не стесняйтесь <link xref="support">просить о помощи</link>.</p></note>

<note><p>В этих инструкциях предполагается, что у вас есть доступ к командной строке. Сначала откройте окно приложения <app>Терминал</app>.</p></note>

<section id="which-backend">
<title>Restic или Duplicity?</title>

<p>На протяжении своего развития в приложении <app>Déjà Dup</app> использовались различные инструменты резервного копирования. В начале использовалось <app>Duplicity</app>, в настоящее время может использоваться <app>Restic</app>.</p>
<p>Ваша резервная копия может храниться в любом формате, в зависимости от того, когда вы её создали.</p>
<p>Загляните в папку, где хранится ваша резервная копия:</p>
<list>
  <item><p>Если все названия файлов начинаются с <cmd its:translate="no">duplicity-</cmd>, это резервная копия <app>Duplicity</app>. Ознакомьтесь с разделами по <app>Duplicity</app> ниже.</p></item>
  <item><p>Если вы видите файл <cmd its:translate="no">config</cmd> и несколько папок, похожих на <cmd its:translate="no">keys</cmd>, это резервная копия <app>Restic</app>. Ознакомьтесь с разделами <app>Restic</app> ниже.</p></item>
</list>
</section>

<section id="restic">
<title>Восстановление с Restic</title>

<p>Предположим, что <app>Déjà Dup</app> просто сейчас не работает. Давайте воспользуемся утилитой командной строки <app>Restic</app>, которая используется в <app>Déjà Dup</app> для резервного копирования и восстановления файлов.</p>

<note style="advanced"><p>Если вы хотите получить больше информации о <app>Restic</app>, чем представлено здесь, выполните команду <cmd its:translate="no">restic --help</cmd>.</p></note>

<p>Для начала мы попробуем сделать простое восстановление всех ваших данных. Предполагая, что все ваши данные находятся на внешнем диске смонтированном как <file its:translate="no">/media/backup</file> и вы использовали шифрование резервных копий, попробуйте сделать это:</p>
<screen its:translate="no">restic restore --repo=/media/backup --target=/tmp/restore latest</screen>

<p>Если вы не использовали шифрование резервных копий, то добавьте к команде: <cmd its:translate="no">--insecure-no-password</cmd>.</p>

<p>Если вам нужно выполнить более сложную диагностику, ознакомьтесь с их <link href="https://restic.readthedocs.io/en/stable/077_troubleshooting.html">руководством по устранению неполадок</link>.</p>
</section>

<section id="duplicity">
<title>Восстановление с Duplicity</title>

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

<note style="advanced"><p>Если вы хотите получить больше информации о <app>Duplicity</app>, чем представлено здесь, ознакомитесь с <link href="http://duplicity.gitlab.io/docs.html">он-лайн документацией</link>.</p></note>

<p>Для начала мы попробуем сделать простое восстановление всех ваших данных. Предполагая, что все ваши данные находятся на внешнем диске смонтированном как <file its:translate="no">/media/backup</file> и вы использовали шифрование резервных копий, попробуйте сделать это:</p>
<screen its:translate="no">duplicity restore file:///media/backup /tmp/restore</screen>

<p>Если вы не использовали шифрование резервных копий, то добавьте к команде: <cmd its:translate="no">--no-encryption</cmd>.</p>

<section id="duplicity-locations">
<title>Другие места хранения</title>
<p>Если вы создавали резервную копию на удалённом или облачном сервере, синтаксис, который нужно использовать в <app>Duplicity</app>, будет отличаться от приведенного выше примера с внешним диском.</p>
<p>Ознакомьтесь с документацией <app>Duplicity</app> как получить доступ к вашему серверу или попробуйте самостоятельно загрузить все файлы <app>Duplicity</app> в локальную папку и следовать более простому примеру, приведенному выше.</p>
</section>

<section id="duplicity-by-hand">
<title>Восстановление файлов с Duplicity вручную</title>

<p>Даже если <app>duplicity</app> у вас не работает, всё ещё есть немного надежды. Формат файлов резервных копий сложен и с ним не так легко работать. Но если вы в отчаянии, стоит попробовать.</p>

<p>Если вы использовали удалённый или облачный сервер для хранения ваших резервных копий, сначала скачайте все файлы <app>duplicity</app> и поместите их в папку на вашем компьютере. Затем войдите в эту папку из своего терминала.</p>

<p><app>Duplicity</app> хранит данные маленькими порциями, которые называются томами. Некоторые тома принадлежат периодическим ‘full’ или свежим резервным копиям, а другие принадлежат ‘inc’ или инкреметным резервным копиям. Начиная с полного набора резервных копий с номера 1, вам нужно восстановить файлы том за томом.</p>

<p>Если вы зашифровали свою резервную копию, сначала вы должны расшифровать её с помощью <cmd its:translate="no">gpg</cmd>. Предположим, у вас есть <file its:translate="no">duplicity-full.20110127T131352Z.vol1.difftar.gpg</file>:</p>
<screen its:translate="no">gpg --output duplicity-full.20110127T131352Z.vol1.difftar --decrypt duplicity-full.20110127T131352Z.vol1.difftar.gpg</screen>

<p>Или, чтобы обработать сразу все (убедитесь, что у вас достаточно свободного места!):</p>
<screen its:translate="no">gpg --multifile --decrypt duplicity-full.20110127T131352Z.*.difftar.gpg</screen>

<p>Теперь у вас есть либо <file its:translate="no">.difftar</file>, либо <file its:translate="no">.difftar.gz</file> том (в зависимости от того, пришлось вам его расшифровывать или нет). Используйте <cmd its:translate="no">tar</cmd> на любом из них, чтобы извлечь отдельные файлы исправлений:</p>
<screen its:translate="no">tar xf duplicity-full.20110127T131352Z.vol1.difftar</screen>

<p>Или, снова, чтобы обработать все сразу:</p>
<screen its:translate="no">for t in duplicity-full.20110127T131352Z.*.difftar; do tar xf $t; done</screen>

<p>Теперь файлы исправлений будут находиться в папках <file its:translate="no">multivolume_snapshot</file> и <file its:translate="no">snapshot</file>. Каждый файл, занимающий несколько томов, будет находиться в папке <file its:translate="no">multivolume_snapshot</file>. Допустим, вы создали резервную копию <file its:translate="no">/home/jane/essay.txt</file>:</p>
<screen its:translate="no">cd multivolume_snapshot/home/jane/essay.txt
cat * &gt; essay.txt</screen>

<p>Чтобы восстановить данные из инкрементных резервных копий, используйте <cmd its:translate="no">rdiff</cmd> (чтобы собрать файлы воедино). Смотрите <cmd its:translate="no">man rdiff</cmd> для подробных инструкций.</p>

</section>
</section>

</page>
