Pulihkan Data pada Linux menggunakan ddrescue

Pulihkan Data Pada Linux Menggunakan Ddrescue



ddrescue ialah alat yang digunakan untuk memulihkan data daripada fail atau peranti blok seperti cakera keras, SSD, cakera RAM, CD, DVD dan peranti storan USB. Ia menyalin data dari satu peranti blok ke peranti lain, meninggalkan blok data yang rosak dan hanya memindahkan yang baik. ddrescue ialah alat pemulihan yang kuat yang automatik sepenuhnya kerana ia tidak memerlukan sebarang gangguan semasa operasi pemulihan. Selain itu, ia boleh dihentikan dan disambung semula pada bila-bila masa terima kasih kepada fail peta ddrescue . Ciri utama lain ddrescue disenaraikan di bawah:
  • Ia tidak menimpa data yang dipulihkan tetapi mengisi jurang dalam kes pemulihan berulang. Walau bagaimanapun, ia boleh dipotong jika alat itu diarahkan untuk melakukannya secara eksplisit.
  • Pulihkan data kepada satu fail daripada berbilang fail atau blok.
  • Menyokong pelbagai jenis antara muka peranti seperti SATA, ATA, SCSI, pemacu MFM, cakera liut dan kad SD.

Dalam panduan ini, saya akan meneroka alat pemulihan data yang sangat berguna ini. Saya juga akan membincangkan proses pemasangannya, dan cara menggunakannya untuk memulihkan peranti blok atau partition.

Catatan: Saya menggunakan pengedaran Linux (Ubuntu 22.04) untuk arahan dalam panduan ini. Proses pemasangan utiliti ddrescue mungkin berbeza, tetapi arahannya akan sama di semua pengedaran Linux.







Memasang ddrescue

Untuk memasang ddrescue pada Linux, terutamanya Ubuntu dan perisanya atau berasaskan Debian distro, gunakan:



sudo apt pasang gddrescue

Untuk memasangnya REHL , Fedora , dan CentOS , mula-mula dayakan SUAM (Pakej Tambahan untuk Enterprise Linux).



sudo sedap pasang pelepasan hangat

Perintah di atas adalah untuk versi yang lebih baharu bagi pengedaran masing-masing.





Kemudian laksanakan arahan berikut untuk memasang ddrescue:

sudo sedap pasang ddrescue

Untuk pengedaran Linux berasaskan Arch seperti Arch-Linux dan Manjaro , gunakan arahan yang diberikan di bawah untuk memasang utiliti pemulihan ddrescue.



sudo pacman -S ddrescue

Memandangkan saya menggunakan Ubuntu 22.04, saya akan menggunakan pengurus pakej APT untuk memasangnya.

Memahami Asas

Sebelum menggunakan alat ddrescue untuk memulihkan data, saya akan mengesyorkan pengguna yang baru dalam proses pemulihan memahami beberapa konvensyen penamaan Linux.

Linux mengiktiraf blok (peranti) sebagai fail dan meletakkannya dalam /dev direktori. Untuk menyenaraikan fail dalam direktori /dev, gunakan ls /dev perintah.

The cakera keras (blok storan) diwakili dengan sd diikuti dengan abjad; dalam kes berbilang peranti storan, fail akan diwakili sebagai /dev/sd a, /dev/sd b, dan sebagainya.

Jika peranti storan mempunyai sekatan , maka mereka akan diwakili oleh nombor dengan nama fail pemacu masing-masing, seperti /dev/sda 1 , /dev/sda 2 , dan sebagainya.

Untuk menyenaraikan semua blok dan peranti lain yang disambungkan dengan sistem, gunakan blok senarai lsblk perintah:

lsblk

Perintah ddrescue boleh memulihkan keseluruhan blok (mengandungi MBR & partition) atau partition juga. Sebaliknya, jika anda perlu memulihkan hanya fail tertentu dari partition tertentu, maka lebih baik untuk memulihkan partition dan bukannya keseluruhan blok.

Pertimbangan Penting

Sebelum menggunakan utiliti ddrescue, beberapa perkara penting harus dipertimbangkan:

  • Jangan cuba memulihkan blok yang dipasang, blok itu tidak sepatutnya berada dalam mod baca sahaja.
  • Jangan cuba membaiki blok dengan ralat I/O.
  • Sistem boleh menukar nama peranti input dan output semasa but semula. Pastikan nama peranti adalah betul sebelum memulakan proses penyalinan.
  • Jika anda menggunakan blok berasingan sebagai peranti output, maka sebarang data pada peranti akan ditimpa.

Menggunakan ddrescue

Selepas memasang utiliti ddrescue dan memahami konvensyen penamaan, langkah seterusnya ialah mengenal pasti cakera yang gagal dan memulihkannya menggunakan alat ddrescue.

Memulihkan Blok yang rosak

Contoh pertama akan merangkumi proses memulihkan keseluruhan blok. Pertama, senaraikan blok menggunakan lsblk perintah:

lsblk -O NAMA,SAIZ,FSTYPE

The -O flag digunakan untuk menentukan jenis maklumat (medan) yang harus dikeluarkan oleh arahan. Saya telah menyebut tentang NAMA , SAIZ , dan FSTYPE atau jenis sistem fail.

Kini, anda boleh mengenal pasti blok sasaran, partition dan lokasi untuk menyimpan fail imej yang diselamatkan.

Satu lagi perkara penting yang perlu diperhatikan ialah pada Linux, nama blok ditetapkan secara dinamik semasa but dan selepas but semula, nama blok mungkin berubah. Jadi, berhati-hati semasa mencatat nama blok.

Sekarang, gunakan sintaks berikut untuk menyelamatkan blok sebagai fail imej dengan fail log dalam direktori akar.

sudo ddrescue -d -rX / dev / [ blok ] [ laluan / nama ] .img [ nama_fail log ] .log

Catatan: Gantikan [blok] , [jalan/nama] daripada fail imej, dan [nama_fail log] dengan nama pilihan sewajarnya.

Dalam contoh ini, saya sedang memulihkan /dev/sda dalam direktori akar dengan nama fail imej pemulihan.img . Fail log yang juga dikenali sebagai fail peta adalah penting jika anda ingin menyambung semula pemulihan pada bila-bila masa.

sudo ddrescue -d -r2 / dev / sda2 recovery.img recovery.log

Dua bendera penting digunakan dalam arahan di atas.

d –tidak langsung Digunakan untuk memberitahu alat untuk mengakses terus cakera tanpa menghiraukan cache kernel
rX –laluan cuba semula Digunakan untuk memberitahu alat untuk mencuba semula sektor buruk X beberapa kali

Semasa melaksanakan arahan di atas, anda akan melihat dua fail muncul dalam pelayar fail dengan nama pemulihan.img dan pemulihan.log .

Masa pemulihan bergantung pada saiz blok input dan kerosakan. Jika anda memulihkan blok yang besar, saya syorkan anda mempunyai fail log kerana ia boleh mengambil masa beberapa jam atau bahkan beberapa hari untuk menyelesaikan proses tersebut.

Output arahan di atas diberikan di bawah:

Dalam imej keluaran, ipos ialah kedudukan input fail input dari mana salinan dimulakan dan ulser ialah kedudukan output pada fail output di mana data sedang ditulis.

The tidak dicuba adakah saiz blok tidak menunggu untuk dicuba. The diselamatkan menunjukkan saiz blok yang berjaya dipulihkan. The pct diselamatkan menunjukkan kejayaan pemulihan data dalam peratusan. Terma, tidak dipangkas , tidak tercalar , sektor buruk , dan kawasan buruk adalah jelas. Walau bagaimanapun kesilapan membaca istilah menunjukkan percubaan baca yang gagal dalam nombor.

The masa berjalan menunjukkan masa yang diambil oleh alat untuk menyelesaikan proses, manakala masa yang tinggal adalah masa yang tinggal untuk menyelesaikan proses pemulihan. Output di atas menunjukkan baki masa 0 kerana proses telah selesai, baca output dalam imej berikut bagi proses yang belum selesai.

Mari lihat apa yang kita dapat dalam fail log; untuk membuka fail log yang dijana, gunakan pemulihan vim.log perintah.

The status semasa ialah + yang bermaksud proses telah selesai, manakala semasa_pos ialah kedudukan pada blok.

Senarai status semasa diberikan dalam jadual berikut:

? Menyalin
* Pemangkasan
/ Mengikis
Mencuba semula
F Mengisi blok yang ditentukan
G Menjana fail log
+ Proses selesai

Di bawah ini, fail log mempunyai tanda status bagi blok yang diselamatkan sebelum ini dalam bentuk aksara yang disenaraikan di bawah:

? Blok tidak dicuba
* Blok gagal yang tidak dipangkas
/ Blok gagal yang tidak dikikis
Sektor buruk gagal disekat
+ Blok siap

Memulihkan Fail Imej kepada Blok baharu

Sebaik sahaja anda selesai dengan proses pemulihan dan mempunyai fail imej. Anda kini mungkin mahu ia beralih ke pemacu baharu daripada pemacu yang rosak. Untuk mengalihkan fail imej ke blok baharu, mula-mula, sambungkan blok itu kepada sistem dan kemudian kenal pasti nama blok menggunakan lsblk perintah.

Mari kita anggap ia adalah /dev/sdb , gunakan arahan berikut untuk menyalin imej ke blok baharu.

sudo ddrescue -f pemulihan.img / dev / sdb logfile.log

The -f flag digunakan untuk menulis ganti blok baharu jika terdapat sebarang data. Perlu diingat bahawa nama fail log mestilah berbeza untuk memastikan ia berasingan daripada fail log yang disimpan sebelum ini.

Operasi di atas juga boleh dilakukan menggunakan dd , satu lagi perintah berkuasa yang digunakan untuk menyalin fail.

sudo dd jika =pemulihan.img daripada = / dev / sdb

Sebelum membuat pemulihan, perlu diingat bahawa blok baharu mestilah cukup besar untuk mengekalkan keseluruhan blok yang dipulihkan; sebagai contoh, jika blok pemulihan ialah 5GB, blok baharu hendaklah lebih besar daripada 5GB.

Jika fail imej yang dipulihkan menyebabkan banyak ralat, maka ia boleh dibaiki menggunakan fail fsck arahan pada Linux sedikit sebanyak. Semasa menggunakan Windows, anda boleh menggunakan CHKDSK atau SFC perintah untuk melakukan ini. Walau bagaimanapun, pemulihan bergantung pada bilangan ralat yang dihasilkan oleh fail rosak.

Kini, proses pemulihan dan pemulihan dilakukan. Satu lagi perkara penting yang perlu diberi perhatian ialah anda boleh memulihkan blok yang rosak terus pada blok lain, bukannya mencipta fail imej dan kemudian menyalinnya ke blok baharu. Nah, dalam bahagian seterusnya, saya membincangkan proses ini secara terperinci.

Memulihkan Blok ke Blok Lain

Untuk memulihkan blok terus ke blok baharu, mula-mula sambungkan blok itu kepada sistem dan gunakan sekali lagi lsblk arahan untuk mengenal pasti nama blok. Nama blok yang salah boleh mengacaukan keseluruhan proses dan anda mungkin kehilangan data.

Selepas mengenal pasti blok sumber dan blok destinasi, gunakan arahan berikut untuk memulihkan blok:

sudo ddrescue -d -f -r2 / dev / [ sumber ] / dev / [ destinasi ] sandaran.log

Mari kita andaikan /dev/sdb ialah blok destinasi, jadi untuk menyalin /dev/sda direktori kepada penggunaan blok baharu:

sudo ddrescue -d -f -r2 / dev / sda / dev / sdb backup.log

Sekali lagi, lihat pertimbangan kritikal yang disebutkan dalam bahagian awal sebelum mencuba proses ini.

Memulihkan Data Tertentu Daripada Fail Imej Dipulihkan

Dalam kebanyakan kes, tujuan pemulihan data adalah untuk mencari fail tertentu daripada pemacu yang rosak. Untuk mengakses fail tertentu anda perlu melekapkan fail imej. Di Linux, fail imej yang dipulihkan boleh diterokai dengan menggunakan lekapkan perintah.

Sebelum memasang fail imej, buat folder atau direktori di mana anda ingin mengekstrak kandungan fail imej.

mkdir RecoveryMount

Seterusnya, lekapkan fail imej menggunakan:

sudo lekapkan -O pemulihan gelung.img ~ / RecoveryMount

Bendera -o menunjukkan pilihan, manakala pilihan gelung digunakan untuk merawat fail imej sebagai peranti blok.

Anda kini mempunyai akses kepada kandungan fail imej, seperti yang dipaparkan dalam tangkapan skrin berikut.

Untuk menyahlekap blok, gunakan umount perintah.

sudo umount ~ / RecoveryMount

Ciri Lanjutan

Untuk memulakan pemulihan dari titik tertentu, gunakan -i bendera atau –kedudukan-input . Ia sepatutnya dalam bait, secara lalai ia adalah 0 bait. Ini penting untuk menyambung semula penyalinan dari titik tertentu. Contohnya, jika anda ingin memulakan proses penyalinan dari titik 10 GB, gunakan perintah berikut.

sudo ddrescue -i10GiB / dev / sda imagefile.img logfile.log

Untuk menentukan saiz maksimum peranti input, -s bendera akan digunakan. The -s menandakan saiz dan juga boleh digunakan sebagai –saiz dalam bait. Jika alat gagal mengenali saiz fail input, gunakan pilihan ini untuk menentukannya.

sudo ddrescue -s10GiB / dev / sda imagefile.img logfile.log

The –bertanya pilihan boleh menjadi agak berguna, kerana ia meminta pengesahan blok input dan output sebelum memulakan proses penyalinan. Seperti yang dibincangkan sebelum ini, sistem secara dinamik memberikan nama kepada blok, dan ia berubah semasa but semula. Jadi, dalam kes itu, pilihan ini boleh berguna.

sudo ddrescue --bertanya / dev / sda imagefile.img logfile.log

Selain itu, senarai beberapa pilihan lain disebutkan di bawah:

-R –terbalik Untuk membalikkan arah penyalinan
-q –agak Untuk menyekat semua mesej output
-dalam –berkata-kata Untuk menghuraikan, semua mesej output
-hlm –peruntukkan dahulu Untuk pra-peruntukkan storan untuk fail output
-P –pratonton-data Baris paparan bagi data terkini yang dibaca lalai ialah 3 baris

Bagaimana ddrescue Berfungsi

ddrescue menggunakan algoritma pemulihan yang berkuasa yang dibahagikan kepada empat fasa:

1. Menyalin

2. Pemangkasan

3. Mengikis

4. Mencuba semula

Pelaksanaan algoritma ddrescue ditunjukkan dalam imej berikut.

Kesimpulan

The ddrescue ialah alat pemulihan berkuasa yang digunakan untuk memulihkan data daripada pemacu yang rosak atau gagal ke pemacu lain dengan menyalin data. Ia boleh dipasang dengan mudah pada mana-mana pengedaran Linux dengan bantuan pengurus pakej lalai. Perhatikan pertimbangan penting sebelum menggunakan alat ini yang dinyatakan dalam panduan ini. Proses menyalin data adalah mudah, nyahlekap pemacu dan gunakan arahan ddrescue dengan nama pemacu sumber dan nama pemacu destinasi. Jangan lupa untuk menggunakan fail log, kerana ia menjadi agak berguna untuk meneruskan proses pemulihan.