Ketika Btrfs Crash – oh god why

B-tree filesystem, atau dikenal sebagai btrfs, merupakan tipe filesystem terbaru di Linux yang menggunakan sistem binary tree. Lebih lengkap dan detail mengenai btrfs bisa dilihat di https://btrfs.wiki.kernel.org/index.php/Main_Page. Secara ringkas btrfs ini menawarkan fitur yang lebih canggih dalam hal penanganan error, administrasi, dan performa operasi standar.

Namun isi dari postingan ini bukan ingin membahas mengenai btrfs, tapi pengalaman terkait btrfs itu sendiri. Tepatnya ketika btrfs crash.

Jadi, sudah seharusnya filesystem yang stabil selain mampu berfungsi dengan baik, juga memiliki kemampuan untuk memperbaiki dirinya ketika terjadi kerusakan (error, corrupt, dll). Kalau untuk filesystem ext3, atau ext4, biasanya tersedia fsck sebagai alat untuk mendeteksi sekaligus memperbaiki kerusakan.

Tapi btrfs belum memiliki alat yang semumpuni ext3 atau ext4 untuk fsck. Memang sudah tersedia btrfsck, namun btrfsck hanya mampu mendeteksi kerusakan saja tanpa mampu memperbaikinya.

Oke, jadi pilihannya ketika btrfs rusak : menyerah atau berjuang. Yah mengingat kejadian btrfs rusak ini bakal mempengaruhi kemaslahatan orang banyak, pilihan yang ada mau g mau berjuang :D

Beruntung, di pelosok internet di sana ada seseorang yang membangun sebuah alat deteksi error sekaligus recovery btrfs yang rusak (bagi pengguna Debian. Jika tersedia untuk non-Debian bisa mencantumkan sumbernya sebagai komentar :D, itung-itung membantu pengguna non-Debian). Perlu diingat bahwa alat ini tidak termasuk ke dalam package resmi btrfs, jadi bisa dianggap penggunaannya keberhasilannya 50:50.

Alat ini tersedia di dalam package btrfs-tools, yang membungkus dua aplikasi, btrfs-restore dan find-root.

Package btrfs-tools tersedia di dalam ppa:yofel/btrfs. Sesuai namanya, package ini dikelolal secara personal.

Cara mendapatkannya :

  1. sudo apt-get install python-software-properties. Ini untuk menginstall aplikasi add-apt-repository.
  2. setelah #1 selesai, lanjutkan dengan sudo add-apt-repository ppa:yofel/btrfs.
  3. sudo apt-get update
  4. sudo apt-get install btrfs-tools

Langkah 1 dan 2 bisa diganti dengan metode penambahan source package lain.

Setelah diinstal, mulai dulu dengan btrfs-restore. Langkah-langkah di bawah sudah tercantum lebih rinci di dalam https://btrfs.wiki.kernel.org/index.php/Restore.

  1. Misal hard disk yang berisi btrfs berada di /dev/sdb3 dan ingin kita mount ke /home/test/data. Panggil btrfs-restore seperti berikut : btrfs-restore /dev/sdb3 /home/test/data/.
  2. Jika proses pemanggilan berhasil, btrfs-restore akan mendapatkan root objectid dari filesystem kita dan mulai meng-scan filesystem ke bawah.
  3. Dalam prosesnya, akan muncul beberapa pesan, seperti :
  • btrfs-restore sudah looping terlalu lama di /some/path/blabla. Apakah ingin dilanjutkan? Jika pertanyaan ini keluar, kemungkinan karena sebuah directory memiliki terlalu banyak node. Di kasus yang penulis alami, beberapa directory dilewat untuk menghemat waktu, yang lainnya dibiarkan untuk looping terus karena datanya krusial.
  • btrfs-restore gagal memperbaiki directory karena sudah terlalu lama looping. Ini bagaikan vonis mati :p relakan saja dan fokus di data-data yang berhasil diselamatkan.

Ketika proses perbaikan selesai, seharusnya muncul folder @ dan @home (atau sejenisnya) di dalam /home/test/data/. Pada umumnya folder @ berisi seluruh data di filesystem. Kalau sudah muncul, ambil minum dan nikmatilah udara segar, karena data-data Anda tidak 100% hilang :)

Bagaimana jika btrfs-restore gagal? Untuk ini penulis belum berpengalaman, namun petunjuk berada di 2 link di atas sebagai titik start.

Beberapa link yang bisa menjadi petunjuk juga :

  1. http://permalink.gmane.org/gmane.comp.file-systems.btrfs/16408
  2. http://unix.stackexchange.com/questions/32440/how-do-i-fix-btrfs
  3. http://askubuntu.com/questions/157917/how-do-i-recover-a-btrfs-partition-that-will-not-mount
  4. http://ubuntuforums.org/showthread.php?t=1931910
  5. http://askubuntu.com/questions/158793/how-do-i-install-the-btrfs-restore-utility-on-12-04

Moral cerita : selalu punya strategi darurat ketika ‘things get worse’. Dalam kasus ini, selau punya mekanisme darurat untuk setiap tipe filesystem yang dipilih.

Semoga membantu, jika ada yang salah dengan senang hati menerima masukan :)

 

About these ads

2 thoughts on “Ketika Btrfs Crash – oh god why

    • kemaren itu pertimbangannnya karena btrfs lebih durable kalo error. Fitur2nya bagus gw liat, tapi ternyata masih dalam development dan belum stabil. Itu aja sih yang bikin minus nya gede :p

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s