Backup tanpa restore yang teruji bukanlah backup. Episode ini mengajarkan cara mengembalikan data dengan borg extract, memilih file secara selektif lewat --path, menjelajah archive dengan borg mount (FUSE), serta praktik terbaik: restore ke direktori bersih, dry-run, dan verifikasi hasil.

Setelah backup pertama di episode 4, saatnya menghadapi pertanyaan yang sesungguhnya: apakah kalian bisa mengembalikan data itu? Banyak tim melakukan backup rutin bertahun-tahun, tetapi baru tahu backup mereka rusak saat bencana benar-benar terjadi. Episode ini memastikan kalian menguasai borg extract dan borg mount, plus kebiasaan uji restore yang menyelamatkan karier.
borg extract membaca archive dan menulis file ke direktori kerja saat ini (cwd). Kalian tidak bisa memilih direktori tujuan lewat argumen — jadi kontrol cwd adalah langkah pertama:
mkdir -p /tmp/restore
cd /tmp/restore
borg extract /backup/borg::"web-01-2026-08-13T10:30:00"Seluruh isi archive (/home, /etc) akan ditarik ke /tmp/restore, dengan struktur path aslinya.
Sebelum ekstraksi besar, pastikan dulu apa yang akan dikeluarkan:
borg extract --dry-run --list /backup/borg::"web-01-2026-08-13T10:30:00" --path home/arman--dry-run tidak menulis apa pun; --list menampilkan file yang akan dipulihkan.
Tidak semua bencana butuh restore penuh. Kehilangan satu file cukup diatasi dengan ekstraksi selektif:
cd /tmp/restore
borg extract /backup/borg::"web-01-2026-08-13T10:30:00" \
--path home/arman/dokumen--path bisa diulang untuk beberapa path sekaligus.--strip-components N menghilangkan N komponen path pertama — berguna jika kalian ingin memindahkan file ke lokasi baru tanpa struktur lengkap:cd /tmp/restore
borg extract /backup/borg::"web-01-2026-08-13T10:30:00" \
--path etc/nginx \
--strip-components 1Hasilnya, isi etc/nginx diletakkan langsung di /tmp/restore/nginx.
borg mount memetakan archive sebagai direktori biasa menggunakan FUSE. Kalian bisa browsing, menyalin file tertentu, bahkan menjalankan tool pencarian — tanpa restore penuh. Ini cara tercepat menjawab pertanyaan "file mana yang hilang?".
mkdir -p /mnt/borg
borg mount /backup/borg::"web-01-2026-08-13T10:30:00" /mnt/borg
ls /mnt/borgSemua archive juga bisa di-mount sekaligus dengan menghilangkan nama archive:
borg mount /backup/borg /mnt/borg
ls /mnt/borgSetiap archive muncul sebagai subdirektori. Lepas mount dengan:
borg umount /mnt/borgFUSE adalah mekanisme read-only — kalian tidak bisa menulis ke archive, yang merupakan properti yang justru kita inginkan (episode 2).
Untuk menyerahkan backup ke pihak lain dalam format universal, ekspor sebagai tarball:
borg export-tar /backup/borg::"web-01-2026-08-13T10:30:00" backup.tar.gztar.gz hasil ekspor bisa dipindah ke mana pun dan dibuka dengan tar biasa.
Jangan pernah mengekstrak archive ke direktori yang masih berisi file aktif — file yang dihapus dari sumber tidak akan dihapus dari cwd, dan file lama bisa tercampur dengan file baru. Selalu buat direktori kosong, seperti contoh /tmp/restore, lalu verifikasi.
Setelah extract, verifikasi bahwa hasil benar-benar bisa dipakai:
cd /tmp/restore
test -f etc/nginx/nginx.conf && echo "config OK"
ls -la home/arman/dokumen | headUntuk verifikasi menyeluruh, bandingkan checksum file penting antara sumber dan hasil restore — atau cukup buktikan aplikasi bisa dijalankan dari hasil restore tersebut.
Important
Jadikan uji restore ritual rutin, bukan acara sekali-sekali. Aturan industri: restore drill bulanan untuk data kritis. Kalian tidak ingin menguji kemampuan restore saat server produksi sudah mati dan pengguna sudah menunggu.
borg extract selalu menulis ke cwd. Pastikan cd dulu, baru ekstrak.borg extract mengembalikan data ke cwd; selalu cd ke direktori bersih dulu.--path dan --strip-components memberi kontrol selektif.borg mount (FUSE) membuka archive sebagai direktori read-only untuk browsing cepat.borg export-tar menghasilkan arsip universal untuk dipindahkan.Di episode 6 kita mengoptimalkan penyimpanan: kompresi zstd, lz4, dan zlib — memahami trade-off CPU vs ruang, memilih level kompresi, dan membaca rasio kompresi dari borg info.