<?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="id">
<info>
  <desc>Apa yang perlu dilakukan jika tidak dapat memulihkan file anda</desc>
  <link type="guide" xref="index#restore"/>
</info>

<title>Jika Semuanya Kacau</title>

<p><app>Déjà Dup</app> dapat saja gagal. Ada kemungkinan gagal saat memulihkan file. Saat sangat membutuhkan data, pasti tidak menarik untuk mengurus kekutu pada program. Bantu kirimkan <link href="https://launchpad.net/deja-dup/+filebug">laporan kesalahan program</link>. Coba tips berikut pada <app>Déjà Dup</app> untuk mendapatkan data anda kembali.</p>

<note><p>Pembahasan berikut bersifat teknis. Jika anda tidak paham, jangan malu untuk <link xref="support">mita bantuan</link>.</p></note>

<steps>
  <item><p>Buka <app>Terminal</app> dengan menekan kombinasi tombol <keyseq><key>Ctrl</key><key>Alt</key><key>T</key></keyseq>.</p></item>
  <item><p>Buat direktori baru untuk penempatan file yang dipulihkan. Panduan ini akan menggunakn <file its:translate="no">/tmp/restore</file>:</p>
<screen its:translate="no">mkdir -p /tmp/restore</screen></item>
</steps>

<section id="duplicity">
<title>Memulihkan dengan Duplicity</title>

<p>Dengan asumsi bahwa <app>Déjà Dup</app> tidak berfungsi, anda perlu menjalankan program <app>duplicity</app> langsung dari terminal, yaitu aplikasi yang digunakan <app>Déjà Dup</app> dibelakang layar untuk membackup dan memulihkan file anda.</p>

<note style="advanced"><p>Jika ingin mengetahui lebih banyak tentang <app>duplicity</app> daripada yang terlihat disini, ketik <cmd>man duplicity</cmd> pada terminal.</p></note>

<p>Hal pertama yang perlu dicoba adalah melakukan pemulihan data sederhana. Dengan asumsi bahwa file anda di mount pada drive ekternal <file its:translate="no">/media/backup</file> dan ingin mengenkripsi hasil backup, ketik perintah berikut:</p>
<screen its:translate="no">duplicity --gio file:///media/backup /tmp/restore</screen>

<p>Jika anda tidak mengenkripsi backup, tambahkan <cmd its:translate="no">--no-encryption</cmd> pada perintahnya.</p>

<section id="locations">
<title>Lokasi Lain Backup</title>
<p>Jika anda membackup ke server lain atau komputasi awan, perintah <app>duplicity</app> berbeda dari contoh di atas. Lihat contoh selanjutnya untuk pemilihan lokasi backup.</p>
<note><p>Ingat untuk menambahkan <cmd its:translate="no">--no-encryption</cmd> terhadap contoh perintah, jika backup anda tidak terenkripsi.</p></note>
<p>If <app>duplicity</app> appears to be having trouble connecting to your server, try downloading all the <app>duplicity</app> files yourself to a local folder and following the simpler example above.</p>
<terms>
  <item>
    <title>Amazon S3</title>
    <p>Look up your Amazon S3 access key ID and secret access key and replace instances of <var>ID</var> and <var>SECRET</var> in the example below with those respective values.</p>
    <p>You may have specified a folder in which to put the backup files.  In the example below, replace any instance of <var>FOLDER</var> with that path.</p>
    <screen its:translate="no">
export AWS_ACCESS_KEY_ID=<var its:translate="yes">ID</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">FOLDER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Rackspace Cloud Files</title>
    <p>Look up your Rackspace username and API key and replace instances of <var>USERNAME</var> and <var>KEY</var> in the example below with those respective values.</p>
    <p>You may have specified a container in which to put the backup files.  In the example below, replace any instance of <var>CONTAINER</var> with that name.</p>
    <screen its:translate="no">
export CLOUDFILES_USERNAME=<var its:translate="yes">USERNAME</var>
export CLOUDFILES_APIKEY=<var its:translate="yes">KEY</var>
duplicity cf+http://<var its:translate="yes">CONTAINER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>FTP</title>
    <p>Look up your server address, port, username, and password and replace instances of <var>SERVER</var>, <var>PORT</var>, <var>USERNAME</var>, and <var>PASSWORD</var> in the example below with those respective values.</p>
    <p>You may have specified a folder in which to put the backup files.  In the example below, replace any instance of <var>FOLDER</var> with that path.</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">USERNAME</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORT</var>/<var its:translate="yes">FOLDER</var>
duplicity --gio ftp://<var its:translate="yes">USERNAME</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORT</var>/<var its:translate="yes">FOLDER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>SSH</title>
    <p>Look up your server address, port, username, and password and replace instances of <var>SERVER</var>, <var>PORT</var>, <var>USERNAME</var>, and <var>PASSWORD</var> in the example below with those respective values.</p>
    <p>You may have specified a folder in which to put the backup files.  In the example below, replace any instance of <var>FOLDER</var> with that path.</p>
    <screen its:translate="no">
gvfs-mount ssh://<var its:translate="yes">USERNAME</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORT</var>/<var its:translate="yes">FOLDER</var>
duplicity --gio ssh://<var its:translate="yes">USERNAME</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORT</var>/<var its:translate="yes">FOLDER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>WebDAV</title>
    <p>Look up your server address, port, username, and password and replace instances of <var>SERVER</var>, <var>PORT</var>, <var>USERNAME</var>, and <var>PASSWORD</var> in the example below with those respective values.</p>
    <p>You may have specified a folder in which to put the backup files.  In the example below, replace any instance of <var>FOLDER</var> with that path.</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">USERNAME</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORT</var>/<var its:translate="yes">FOLDER</var>
duplicity --gio dav://<var its:translate="yes">USERNAME</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORT</var>/<var its:translate="yes">FOLDER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Windows Share</title>
    <p>Look up your server address, username, and password and replace instances of <var>SERVER</var>, <var>USERNAME</var>, and <var>PASSWORD</var> in the example below with those respective values.</p>
    <p>You may have specified a folder in which to put the backup files.  In the example below, replace any instance of <var>FOLDER</var> with that path.</p>
    <p>If you specified a domain for your Windows server, add it to the beginning of <var>USERNAME</var> with a semicolon between them.  For example, <var>domain;username</var>.</p>
    <screen its:translate="no">
gvfs-mount smb://<var its:translate="yes">USERNAME</var>@<var its:translate="yes">SERVER</var>/<var its:translate="yes">FOLDER</var>
duplicity --gio smb://<var its:translate="yes">USERNAME</var>@<var its:translate="yes">SERVER</var>/<var its:translate="yes">FOLDER</var> /tmp/restore</screen>
  </item>
</terms>
</section>

</section>

<section id="by-hand">
<title>Restoring by Hand</title>

<p>If even <app>duplicity</app> isn’t working for you, there may be little hope.  The backup file format is complicated and not easily manipulated.  But if you’re desperate, it’s worth a try.</p>

<p>If you used a remote or cloud server to store your backup, first download all the <app>duplicity</app> files and place them in a folder on your computer.  Then enter that folder in your terminal.</p>

<p><app>Duplicity</app> stores your data in small chunks called volumes.  Some volumes belong to the periodic ‘full’ or fresh backups and others to the ‘inc’ or incremental backups.  Starting with a full backup set of volumes at volume 1, you’ll need to restore files volume by volume.</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>Or to do all at once (make sure you have plenty of space!):</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>Or again, to do all at once:</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>
