<?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-2023</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>

<steps>
  <item><p>Откройте окно <app>Терминала</app>, нажав <keyseq><key>Ctrl</key><key>Alt</key><key>T</key></keyseq>.</p></item>
  <item><p>Выберите папку, куда будут помещены файлы восстановления. Это руководство использует <file its:translate="no">/tmp/restore</file>:</p>
<screen its:translate="no">mkdir -p /tmp/restore</screen></item>
</steps>

<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>, чем представлено здесь, выполните команду <cmd>man duplicity</cmd>.</p></note>

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

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

<section id="locations">
<title>Другое расположение резервной копии</title>
<p>Если вы создавали резервную копию на удалённом или облачном сервере, синтаксис, который нужно использовать в <app>duplicity</app>, будет отличаться от примера с внешним диском выше. Смотрите ниже, как соединиться с выбранным местоположением резервной копии.</p>
<note><p>Не забывайте добавлять <cmd its:translate="no">--no-encryption</cmd> к любому из примеров команд, если резервная копия не зашифрована.</p></note>
<p>Если у <app>duplicity</app> проблемы при соединении с сервером, попробуйте скачать все файлы <app>duplicity</app> самостоятельно в локальную папку и сделать, как в простом примере выше.</p>
<terms>
  <item>
    <title>FTP</title>
    <p>Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки <var>SERVER</var>, <var>ПОРТ</var>, <var>ИМЯ_ПОЛЬЗОВАТЕЛЯ</var> и <var>ПАРОЛЬ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <p>Если вы решили не входить в систему под именем пользователя, используйте <var its:translate="no">anonymous</var> в качестве вашего <var>ИМЕНИ_ПОЛЬЗОВАТЕЛЯ</var> в следующих командах.</p>
    <screen its:translate="no">
gvfs-mount ftp://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio ftp://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>SSH</title>
    <p>Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки <var>SERVER</var>, <var>ПОРТ</var>, <var>ИМЯ_ПОЛЬЗОВАТЕЛЯ</var> и <var>ПАРОЛЬ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <screen its:translate="no">
gvfs-mount ssh://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio ssh://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>WebDAV</title>
    <p>Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки <var>SERVER</var>, <var>ПОРТ</var>, <var>ИМЯ_ПОЛЬЗОВАТЕЛЯ</var> и <var>ПАРОЛЬ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <p>Если Вы используете защищённое соединение (HTTPS) для резервного копирования, используйте <var its:translate="no">davs://</var> вместо <var its:translate="no">dav://</var> в нижеприведённых примерах.</p>
    <screen its:translate="no">
gvfs-mount dav://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio dav://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Общие ресурсы Windows</title>
    <p>Найдите ваш адрес сервера, имя пользователя и пароль и замените строки <var>SERVER</var>, <var>ИМЯ_ПОЛЬЗОВАТЕЛЯ</var> и <var>ПАРОЛЬ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <p>Если вы указывали домен для вашего сервера Windows, добавьте его перед <var>ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>, разделяя их точкой с запятой. Например, <var>домен;имя_пользователя</var>.</p>
    <screen its:translate="no">
gvfs-mount smb://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio smb://<var its:translate="yes">ИМЯ_ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">СЕРВЕР</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
</terms>
</section>

</section>

<section id="by-hand">
<title>Восстановление вручную</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>

</page>
