**Pulih data** atau (*Data recovery*) adalah proses memulihkan atau mendapatkan kembali data daripada media storan utama apabila ia tidak dapat dicapai melalui cara biasa. In mungkin disebabkan oleh kerosakan fizikal atau kerosakan logikal kepada sistem fail yang menghalang ia dikesan oleh sistem operasi.

Kerosakan fizikal
-----------------

Pelbagai jenis kerosakan mampu mengakibatkan kerosakan fizikal kepada media storan. CD-ROM boleh tercalar pada lapisan (*substrate* ) logam atau pencelup (*dye*); cakera keras boleh mengalami pelbagai kegagalan mekanikal, seperti head crashes dan kerosakan motor; dan pemacu tape boleh rosak. Kerosakan fizikal selalunya mengakibatkan kehilangan data, dan dalam kebanyakan kes struktur logik fail sistem turut rosak. Ini mengakibatkan merosakan logik yang perlu diperbaiki sebelum sebarang fail boleh dipulihkan.

Kebanyakan kerosakan fizikal tidak boleh diperbaiki oleh pengguna. Sebagai contoh, membuka cakera keras dalam keadaan biasa akan mengakibatkan habuk pada permukaan cakera dan mengakibatkan kerosakan lebih teruk kepada cakera (*platters*). Tambahan lagi, pengguna biasanya tidak mempunyai perkakasan atau kemahiran teknikal yang diperlukan bagi membaiki kerosakan sebegitu; dengan itu, **syarikat pulih data** dipanggil. Firma ini menggunakan kemudahan bilik bersih bagi melindungi media sementara cakera diperbaiki, dan perkakasan seperti magnetometer untuk membaca secara manual bit dari media magnetik yang rosak. Bit yang terhasil boleh digunakan bagi membina semula imej cakera, yang boleh dibaca bagi memperbaiki kerosakan logikal. Apabila ia selesai, fail boleh dikeluarkan dari imej yang diperbaiki.

Kerosakan logical
-----------------

Lebih biasa berbanding kerosakan fizikal adalah kerosakan kepada sistem fail. Kerosakan logikal kebiasaannya disebabkan oleh gangguan kuasa yang mengakibatkan struktur sistem fail ditulis dengan lengkap kepada media storan, tetapi masalah dengan perkakasan (terutamanya pengatur (*controllers*)cakera murah sejajar berganda (*redundant array of inexpensive disks*) (RAID) dan pemandu, juga kegagalan sistem, mampu menyebabkan masalaah yang sama. Hasilnya sistem fail berada dalam keadaan tidak menentu. Ini boleh menyebabkan pelbagai masalah, seperti tingkah-laku pelik (contohnya. direktori *infinitely recursing directories*, pemandu melapurkan jumlah ruang kosong sebagai negetif), sistem gagal, atau kehilangan data. Pelbagai program tersedia bagi memperbaiki masalah ini, dan kebanyakan sistem operasi mempunyai perkakasan memperbaiki asas bagi sistem fail tempatan mereka. Linux, sebagai contoh, mempunyai kemudahan fsck, dan Microsoft Windows membekalkan chkdsk. Utiliti pihak ketiga juga ada, dan sesetengah mampu memberikan hasil lebih baikdengan memulih data walaupun cakera tidak dapat dibaca oleh utiliti pemulih sistem operasi.

Dua teknik utama digunakan bagi aturcara pembaiki ini. Yang pertama, memeriksa ketetapan *consistency checking*, membabitkan meninjau struktur logik cakera dan memeriksa bagi memastikan ia tepat dengan spesifikasinya. Sebagai contoh, dalam kebanyakan sistem fail, direktori harus mempunyai dua daftar: daftar titik (.) yang menunjukkan kepada diri sendiri, dan daftar titik-titik (..) yang menunjukkan direktori ibu. Aturcara pemulih sistem fail akan membaca setiap direktori dan memastikan bahawa setiap daftar wujud dan menunjukkan kepada direktori yang betul. Sekiranya tidak, perutusan ralat boleh dicetak dan masalah diperbaiki. Kedua-dua chkdsk dan fsck melakukan ini. Bagaimanapun, strategi ini mempunyai masalah utama; sekiranya sistem fail rosak teruk, pemeriksaan ketetapan akan gagal sepenuhnya. Dalam kes ini, aturcara pemulih akan gagal ketika cuba mengendalikan output yang rosak, atau ia langsung gagal mengenali pemacu yang memiliki sistem fail yang sah.

Teknik kedua untuk memulih sistem fail adalah untuk mengabaikan keadaan sistem fail yang diperiksa dan menggunakan sebarang petunjuk yang struktur fail yang tidak rosak, membina semula sistem fail dari awal. Strategi ini membabitkan meninjau keseluruhan cakera dan mengambil kira semua struktur fail dan kemungkinan sempadan fail, dan kemudiannya cuba memadankan apa yang ada pada spesifikasi sistem fail yang elok. Sesetengan pihak ketiga menggunakan teknik ini, yang lebih perlahan berbanding pemeriksaan ketetapan (*consistency checking*). Ia bagaimanapun mampu memulihkan data walaupun struktur logikal hampir rosak sepenuhnya. Teknik ini biasanya tidak memperbaiki sistem fail asas, tetapi sekadar membenarkan data dikeluarkan dan disalin kepada peranti storan lain.

Sementara kebanyakan kerosakan logikal boleh diperbaiki atau dielak dengan menggunakan dua teknik ini, aturcara pulih data tidak dapat menjamin tiada kehilangan data akan berlaku. Sebagai contoh, sekiranya *jadual pembahagian fail* rosak, apabila dua fail mendakwa berkongsi unit ditetapkan yang sama ("cross-linked"), kehilangan data bagi salah satu fail hampir pasti.

Penggunaan journaling file systems lebih meluas, seperti NTFS 5.0, ext3, dan xfs, berkemungkinan mengurangkan kejadian kerosakan logikal. Sistem fail ini hampir sentiasa boleh "golek belakang - rolled back" kepada keadaan tetap, yang bererti data yang hilang hanyalah yang ada dalam imbalan pemacu pada masa kegagalan sistem. Bagaimanapun, penyelenggaraan sistem secara tetap *regular system maintenance* masih memerlukan penggunaan *pemeriksa ketetapan* untuk kes jurnal sistem fail itu sendiri rosak.

Lihat juga
----------

Perlindungan Data Berterusan - (*Continuous Data Protection*)

Rujukan
-------

Tanenbaum, A. & Woodhull, A. S. (1997). *Operating Systems: Design And Implementation,* 2nd ed. New York: Prentice Hall.

Pautan luar
-----------

* Recovering Unrecoverable Data - A whitepaper on hard disk physical data recovery
* Data recovery di Curlie