I-recover ang Data sa Linux gamit ang ddrescue

I Recover Ang Data Sa Linux Gamit Ang Ddrescue



Ang ddrescue ay isang tool na ginagamit upang mabawi ang data mula sa isang file o isang block device tulad ng isang hard drive, SSD, RAM disk, CD, DVD, at USB storage device. Kinokopya nito ang data mula sa isang block device patungo sa isa pa, iniiwan ang mga sira na bloke ng data at inililipat lamang ang mga mahuhusay. Ang ddrescue ay isang makapangyarihang tool sa pagbawi na ganap na awtomatiko dahil hindi ito nangangailangan ng anumang interference sa panahon ng operasyon sa pagbawi. Bukod dito, maaari itong ihinto at ipagpatuloy anumang oras salamat sa ddrescue map file . Ang iba pang mga pangunahing tampok ng ddrescue ay nakalista sa ibaba:
  • Hindi nito na-overwrite ang na-recover na data ngunit pinupunan ang mga puwang sa kaso ng umuulit na pagbawi. Gayunpaman, maaari itong putulin kung ang tool ay inutusang gawin ito nang tahasan.
  • I-recover ang data sa isang file mula sa maraming file o block.
  • Sinusuportahan ang maraming uri ng mga interface ng device gaya ng SATA, ATA, SCSI, MFM drive, floppy disk, at SD card.

Sa gabay na ito, tuklasin ko itong hindi kapani-paniwalang kapaki-pakinabang na tool sa pagbawi ng data. Tatalakayin ko rin ang proseso ng pag-install nito, at kung paano ito gamitin upang mabawi ang isang block device o partition.

Tandaan: Gumagamit ako ng pamamahagi ng Linux (Ubuntu 22.04) para sa mga tagubilin sa gabay na ito. Ang proseso ng pag-install ng ddrescue utility ay maaaring mag-iba, ngunit ang mga tagubilin ay magiging pareho sa lahat ng mga pamamahagi ng Linux.







Pag-install ng ddrescue

Upang i-install ang ddrescue sa Linux, lalo na Ubuntu at ang mga lasa nito o Batay sa Debian distros, gamitin ang:



sudo apt i-install gddrescue

Upang i-install ito sa REHL , Fedora , at CentOS , paganahin muna ang MAINIT (Mga Dagdag na Package para sa Enterprise Linux).



sudo yum install mainit na paglabas

Ang utos sa itaas ay para sa mga mas bagong bersyon ng kaukulang pamamahagi.





Pagkatapos ay isagawa ang sumusunod na utos upang mai-install ang ddrescue:

sudo yum install ddrescue

Para sa mga pamamahagi ng Linux na nakabase sa Arch tulad ng Arch-Linux at Manjaro , gamitin ang ibinigay na command sa ibaba upang i-install ang ddrescue recovery utility.



sudo pacman -S ddrescue

Dahil gumagamit ako ng Ubuntu 22.04, gagamitin ko ang APT package manager para i-install ito.

Pag-unawa sa mga Pangunahing Kaalaman

Bago gamitin ang tool na ddrescue para mabawi ang data, irerekomenda ko ang mga user na bago sa proseso ng pagbawi na maunawaan ang ilang mga kombensiyon sa pagbibigay ng pangalan ng Linux.

Kinikilala ng Linux ang mga bloke (mga device) bilang mga file at inilalagay ang mga ito sa /dev direktoryo. Upang ilista ang mga file sa /dev na direktoryo, gamitin ang ls /dev utos.

Ang mga hard drive (mga bloke ng imbakan) ay kinakatawan ng sd sinusundan ng mga alpabeto; sa kaso ng maramihang mga storage device ang mga file ay kakatawanin bilang /dev/sd a, /dev/sd b, at iba pa.

Kung mayroon ang storage device mga partisyon , pagkatapos ay kakatawanin sila ng isang numero na may kaukulang pangalan ng file ng drive, gaya ng /dev/sda 1 , /dev/sda 2 , at iba pa.

Para ilista ang lahat ng block at iba pang konektadong device sa system, gamitin ang list block lsblk utos:

lsblk

Ang ddrescue command ay maaaring mabawi ang buong block (naglalaman ng MBR at mga partisyon) o isang partisyon din. Sa kabilang banda, kung kailangan mong mabawi lamang ang mga tukoy na file mula sa isang partikular na partisyon, kung gayon mas mahusay na mabawi ang partisyon sa halip na ang buong bloke.

Mahahalagang Pagsasaalang-alang

Bago gamitin ang ddrescue utility, dapat isaalang-alang ang ilang mahahalagang punto:

  • Huwag subukang bawiin ang isang naka-mount na bloke, ang bloke ay hindi dapat kahit na nasa read-only na mode.
  • Huwag subukang ayusin ang isang bloke na may mga error sa I/O.
  • Maaaring baguhin ng system ang mga pangalan ng input at output device sa pag-reboot. Tiyaking tama ang mga pangalan ng device bago simulan ang proseso ng pagkopya.
  • Kung gumagamit ka ng hiwalay na block bilang isang output device, ang anumang data sa device ay ma-overwrite.

Gamit ang ddrescue

Pagkatapos i-install ang ddrescue utility at pag-unawa sa mga convention sa pagbibigay ng pangalan, ang susunod na hakbang ay kilalanin ang bagsak na disk at i-recover ito gamit ang ddrescue tool.

Pagbawi sa Sirang Block

Ang unang halimbawa ay sumasaklaw sa proseso ng pagbawi sa buong block. Una, ilista ang mga bloke gamit ang lsblk utos:

lsblk -O NAME, SIZE, FSTYPE

Ang -O flag ay ginagamit upang tukuyin kung aling uri ng impormasyon (mga patlang) ang utos ay dapat na i-output. Nabanggit ko na ang PANGALAN , SIZE , at FSTYPE o uri ng file system.

Ngayon, maaari mong tukuyin ang target na block, partition, at lokasyon upang i-save ang nailigtas na file ng imahe.

Ang isa pang mahalagang bagay na dapat tandaan ay na sa Linux, ang pangalan ng block ay dynamic na itinalaga sa boot at pagkatapos ng pag-reboot, ang mga pangalan ng mga bloke ay maaaring magbago. Kaya, mag-ingat habang binabanggit ang mga pangalan ng block.

Ngayon, gamitin ang sumusunod na syntax upang iligtas ang block bilang isang file ng imahe na may log file sa root directory.

sudo ddrescue -d -rX / dev / [ harangan ] [ landas / pangalan ] .img [ logfile_name ] .log

Tandaan: Palitan [block] , [landas/pangalan] ng file ng imahe, at [logfile_name] na may mga gustong pangalan nang naaayon.

Sa halimbawang ito, binabawi ko ang /dev/sda sa root directory na may pangalan ng file ng imahe pagbawi.img . Ang log file na kilala rin bilang map file ay mahalaga kung gusto mong ipagpatuloy ang pagbawi anumang oras.

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

Dalawang mahalagang flag ang ginagamit sa utos sa itaas.

d – hindi direkta Ginagamit upang sabihin sa tool na direktang ma-access ang disk na hindi pinapansin ang kernel cache
rX –retry-pass Sa ginamit upang sabihin sa tool na subukang muli ang masamang sektor X nang ilang beses

Sa pagpapatupad ng utos sa itaas, mapapansin mo ang dalawang file na lumalabas sa file browser na may mga pangalan pagbawi.img at pagbawi.log .

Ang oras ng pagbawi ay depende sa laki ng input block at ang pinsala. Kung nagre-recover ka ng isang malaking block, inirerekomenda ko ang pagkakaroon ng log file dahil maaaring tumagal ng ilang oras o kahit araw para makumpleto ang proseso.

Ang output ng command sa itaas ay ibinigay sa ibaba:

Sa output na imahe, ipos ay ang posisyon ng input ng input file mula sa kung saan sinimulan ang kopya at ang mga ulser ay ang posisyon ng output sa output file kung saan isinusulat ang data.

Ang hindi nasubukan ay ang laki ng bloke ay hindi nakabinbin na subukan. Ang nailigtas ay nagpapahiwatig ng laki ng bloke na matagumpay na nabawi. Ang nailigtas ang pct ay nagpapahiwatig ng matagumpay na pagbawi ng data sa porsyento. Ang mga tuntunin, hindi pinutol , hindi nabasag , masamang sektor , at masamang lugar ay self-explanatory. Gayunpaman, ang mga error sa pagbasa term ay nagpapahiwatig ng mga nabigong pagsubok sa pagbasa sa mga numero.

Ang oras ng pagtakbo ay nagpapakita ng oras na kinuha ng tool upang makumpleto ang proseso, habang ang natitirang oras ay ang natitirang oras upang makumpleto ang proseso ng pagbawi. Ang output sa itaas ay nagpapakita ng natitirang oras 0 dahil natapos na ang proseso, basahin ang output sa sumusunod na larawan ng isang hindi natapos na proseso.

Tingnan natin kung ano ang makukuha natin sa log file; para buksan ang nabuong log file, gamitin ang vim recovery.log utos.

Ang kasalukuyang kalagayan ay + na nangangahulugang tapos na ang proseso, habang ang kasalukuyang_pos ay ang posisyon sa block.

Ang isang listahan ng mga kasalukuyang katayuan ay ibinigay sa sumusunod na talahanayan:

? Nangongopya
* Pag-trim
/ Pag-scrap
Sinusubukang muli
F Pagpuno sa tinukoy na mga bloke
G Pagbuo ng log file
+ Tapos na ang proseso

Sa ilalim nito, ang log file ay may mga indikasyon ng katayuan ng mga naunang nailigtas na mga bloke sa anyo ng mga character na nakalista sa ibaba:

? Ang bloke ay hindi sinubukan
* Nabigo ang hindi na-trim na bloke
/ Nabigo ang hindi na-scrapped block
Nabigo ang masamang sektor
+ Tapos na block

Pagpapanumbalik ng Image File sa isang bagong Block

Kapag tapos ka na sa proseso ng pagbawi at magkaroon ng file ng imahe. Baka gusto mo na itong lumipat sa bagong drive mula sa isang sira na drive. Para ilipat ang image file sa isang bagong block, ikonekta muna ang block na iyon sa system at pagkatapos ay tukuyin ang pangalan ng block gamit ang lsblk utos.

Ipagpalagay na natin ito /dev/sdb , gamitin ang sumusunod na command upang kopyahin ang imahe sa isang bagong bloke.

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

Ang -f flag ay ginagamit upang i-overwrite ang bagong block kung mayroong anumang data. Tandaan na ang pangalan ng log file ay dapat na iba upang mapanatili itong hiwalay sa dating nakaimbak na log file.

Ang operasyon sa itaas ay maaari ding gawin gamit ang DD , isa pang makapangyarihang utos na ginamit upang kopyahin ang mga file.

sudo DD kung =recovery.img ng = / dev / sdb

Bago gumawa ng isang pag-restore, tandaan na ang bagong bloke ay dapat na sapat na malaki upang mapanatili ang buong na-recover na bloke; halimbawa, kung ang recovery block ay 5GB ang bagong block ay dapat na mas malaki sa 5GB.

Kung ang na-recover na file ng imahe ay nag-render ng maraming error, maaari silang ayusin gamit ang fsck command sa Linux sa ilang lawak. Habang nasa Windows, maaari mong gamitin ang CHKDSK o SFC utos na gawin ito. Gayunpaman, ang pagbawi ay nakasalalay sa bilang ng mga error na nabuo ng sirang file.

Ngayon, tapos na ang proseso ng pagbawi at pagpapanumbalik. Ang isa pang mahalagang bagay na dapat tandaan ay maaari mong mabawi ang isang sira na bloke nang direkta sa isa pang bloke, sa halip na lumikha ng isang file ng imahe at pagkatapos ay kopyahin ito sa bagong bloke. Buweno, sa susunod na seksyon, tinatalakay ko nang detalyado ang prosesong ito.

Pagbawi ng Block sa Isa pang Block

Upang mabawi ang isang bloke nang direkta sa isang bagong bloke, ikonekta muna ang bloke sa system at muling gamitin lsblk command upang matukoy ang pangalan ng block. Ang mga maling pangalan ng block ay maaaring makagulo sa buong proseso at maaari kang mawalan ng data.

Pagkatapos matukoy ang source block at ang destination block, gamitin ang sumusunod na command para mabawi ang block:

sudo ddrescue -d -f -r2 / dev / [ pinagmulan ] / dev / [ patutunguhan ] backup.log

Ipagpalagay natin /dev/sdb ay ang destination block, kaya upang kopyahin ang /dev/sda direktoryo sa bagong paggamit ng block:

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

Muli, tingnan ang mga kritikal na pagsasaalang-alang na binanggit sa mga naunang seksyon bago subukan ang prosesong ito.

Pagbawi ng Tukoy na Data Mula sa Na-recover na Mga File ng Larawan

Sa maraming mga kaso, ang layunin ng pagbawi ng data ay upang mahanap ang mga partikular na file mula sa mga sirang drive. Upang ma-access ang partikular na file kailangan mong i-mount ang file ng imahe. Sa Linux, ang na-recover na file ng imahe ay maaaring galugarin sa pamamagitan ng paggamit ng bundok utos.

Bago i-mount ang file ng imahe, gumawa ng isang folder o direktoryo kung saan nais mong i-extract ang nilalaman ng file ng imahe.

mkdir RecoveryMount

Susunod, i-mount ang file ng imahe gamit ang:

sudo bundok -O loop recovery.img ~ / RecoveryMount

Ang -o flag ay nagpapahiwatig ng mga opsyon, habang ang loop na opsyon ay ginagamit upang ituring ang image file bilang isang block device.

Mayroon ka na ngayong access sa mga nilalaman ng file ng imahe, tulad ng ipinapakita sa sumusunod na screenshot.

Upang i-unmount ang block, gamitin ang umount utos.

sudo umount ~ / RecoveryMount

Mga Advanced na Tampok

Upang simulan ang pagbawi mula sa isang partikular na punto, gamitin ang -i bandila o –input-posisyon . Dapat itong nasa bytes, bilang default ito ay 0 byte. Mahalaga ito upang ipagpatuloy ang pagkopya mula sa isang partikular na punto. Halimbawa, kung gusto mong simulan ang proseso ng pagkopya mula sa 10 GB point, gamitin ang sumusunod na command.

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

Upang tukuyin ang maximum na laki ng input device, ang -s bandera ang gagamitin. Ang -s nangangahulugan ng laki at maaari ding gamitin bilang – laki sa bytes. Kung nabigo ang tool na makilala ang laki ng input file, gamitin ang opsyong ito upang tukuyin ito.

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

Ang -magtanong Ang opsyon ay maaaring maging madaling gamitin, dahil nag-uudyok ito para sa kumpirmasyon ng mga bloke ng input at output bago simulan ang proseso ng pagkopya. Tulad ng napag-usapan kanina, ang system ay dynamic na nagtatalaga ng mga pangalan sa mga bloke, at nagbabago ang mga ito sa pag-reboot. Kaya, sa kasong iyon, ang pagpipiliang ito ay maaaring maging kapaki-pakinabang.

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

Bukod dito, ang isang listahan ng ilang iba pang mga opsyon ay binanggit sa ibaba:

-R -reverse Upang baligtarin ang direksyon ng pagkopya
-q – medyo Upang sugpuin ang lahat ng mga mensahe ng output
-sa –salita Upang ipaliwanag, ang lahat ng mga mensahe ng output
-p –paunang italaga Upang paunang maglaan ng storage para sa output file
-P –data-preview Ang mga linya ng display ng pinakabagong data na binasa ang default ay 3 linya

Paano Gumagana ang ddrescue

Gumagamit ang ddrescue ng malakas na algorithm sa pagbawi na nahahati sa apat na yugto:

1. Nangongopya

2. Pag-trim

3. Pagkakamot

4. Sinusubukang muli

Ang ddrescue algorithm execution ay ipinapakita sa sumusunod na larawan.

Konklusyon

Ang ddrescue ay isang mahusay na tool sa pagbawi na ginagamit upang mabawi ang data mula sa isang sira o bagsak na drive patungo sa isa pang drive sa pamamagitan ng pagkopya ng data. Madali itong mai-install sa anumang pamamahagi ng Linux sa tulong ng default na manager ng package. Tandaan ang mahalagang pagsasaalang-alang bago gamitin ang tool na ito na binanggit sa gabay na ito. Ang proseso ng pagkopya ng data ay simple, i-unmount ang drive at gamitin ang ddrescue command na may pangalan ng source drive at pangalan ng destination drive. Huwag kalimutang gamitin ang log file, dahil magiging kapaki-pakinabang na ipagpatuloy ang proseso ng pagbawi.