<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" its:version="1.0" type="topic" style="task" id="restore-worst-case" xml:lang="ru">
<info>
  <desc>Что предпринять, если вы не можете восстановить ваши файлы</desc>
  <link type="guide" xref="index#restore"/>
</info>

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

<p><app>Déjà Dup</app> может завершиться неудачно. Может случиться, она падает или даёт ошибку, когда вы пытаетесь сделать восстановление. Когда вам действительно нужно вернуть свои данные, ошибка это последнее чего вы хотите. Подумайте над составлением <link href="https://launchpad.net/deja-dup/+filebug">отчёта об ошибке</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>Amazon S3</title>
    <p>Найдите ваш ID ключа доступа и секретный ключ доступа к Amazon S3 и замените строки <var>ID</var> и <var>СЕКРЕТ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <screen its:translate="no">
export AWS_ACCESS_KEY_ID=<var its:translate="yes">ИДЕНТИФИКАТОР</var>
export AWS_SECRET_ACCESS_KEY=<var its:translate="yes">SECRET</var>
duplicity s3+http://deja-dup-auto-<var its:translate="yes">LOWERCASE_ID</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Облачные файлы Rackspace</title>
    <p>Найдите ваши имя пользователя и ключ API для Rackspace и замените строки <var>ИМЯ</var> и <var>КЛЮЧ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы указывали контейнер, в который нужно помещать резервные копии. В примере ниже замените строку <var>КОНТЕЙНЕР</var> на имя этого контейнера.</p>
    <screen its:translate="no">
export CLOUDFILES_USERNAME=<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>
export CLOUDFILES_APIKEY=<var its:translate="yes">КЛАВИША</var>
duplicity cf+http://<var its:translate="yes">CONTAINER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>FTP</title>
    <p>Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки <var>СЕРВЕР</var>, <var>ПОРТ</var>, <var>ИМЯ</var> и <var>ПАРОЛЬ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <p>If you chose to not log in with a username, use <var its:translate="no">anonymous</var> as your <var>USERNAME</var> below.</p>
    <screen its:translate="no">
gvfs-mount ftp://<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio ftp://<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>SSH</title>
    <p>Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки <var>СЕРВЕР</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">SERVER</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio ssh://<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>WebDAV</title>
    <p>Найдите необходимый адрес сервера, порт, имя пользователя, и пароль и замените строки <var>СЕРВЕР</var>, <var>ПОРТ</var>, <var>ИМЯ</var> и <var>ПАРОЛЬ</var> в примере ниже на соответствующие значения.</p>
    <p>Возможно, вы задавали папку, в которую необходимо помещать резервные копии файлов. В примере ниже замените строку <var>ПУТЬ</var> на этот путь.</p>
    <p>If you chose to use a secure connection (HTTPS) when backing up, use <var its:translate="no">davs://</var> instead of <var its:translate="no">dav://</var> in the example below.</p>
    <screen its:translate="no">
gvfs-mount dav://<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio dav://<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ПАПКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>общие ресурсы Windows</title>
    <p>Найдите ваш адрес сервера, имя пользователя и пароль и замените строки <var>СЕРВЕР</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">SERVER</var>/<var its:translate="yes">ПАПКА</var>
duplicity --gio smb://<var its:translate="yes">ИМЯ ПОЛЬЗОВАТЕЛЯ</var>@<var its:translate="yes">SERVER</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>If you encrypted your backup, first you must decrypt the volume with <cmd its:translate="no">gpg</cmd>.  Say you have <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>Now you have either a <file its:translate="no">.difftar</file> or a <file its:translate="no">.difftar.gz</file> volume (depending on whether you had to decrypt it or not).  Use <cmd its:translate="no">tar</cmd> on whichever one you have to extract the individual patch files:</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>Now the patch files will be in <file its:translate="no">multivolume_snapshot</file> and <file its:translate="no">snapshot</file> folders.  Each file that spanned multiple volumes will be in <file its:translate="no">multivolume_snapshot</file>. Let’s say you backed up <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>To recover data from incremental backups, use <cmd its:translate="no">rdiff</cmd> to stitch the files together. See <cmd its:translate="no">man rdiff</cmd> for usage.</p>

</section>

</page>
