Linux – odzyskiwanie danych z uszkodzonej płyty DVD lub CD

W przypadku starych, porysowanych nośników CD, DVD system Linux (tutaj dystrybucja Lubuntu) może zgłaszać problem z podmountowaniem takiego dysku:

Error mounting /dev/sr0 at /media/user/moja-plyta: wrong fs type, bad option, bad superblock on /dev/sr0, missing codepage or helper program, or other error

Świetnie do odzyskania takich danych posłuży program SafeCopy. Co prawda nie daje pewności odzyskania 100% danych, lecz może być bardzo pomocny. Np w sytuacji gdy problem z superblokiem uniemożliwia podmountowanie uszkodzonego nośnika.

Jak rozpocząć odzyskiwanie danych z nośnika cd lub DVD pod Linuksem?

Najpierw instalujemy program:

sudo apt-get install safecopy

Następnie wywołujemy:

safecopy --stage1 /dev/cdrom ./obraz.iso

Rozpoczyna to pierwszy, pobieżny etap odzyskiwania danych. Uzyskujemy po pewnym czasie komunikat typu:

Low level device calls enabled mode: 2
Reported hw blocksize: 4096
CDROM Mode1 - low level access: drive reset, raw read
CDROM low level disk size: 710326272
CDROM low level block size: 2048
Reported low level blocksize: 2048
File size: 710326272
Blocksize: 2048
Fault skip blocksize: 71030784
Resolution: 71030784
Min read attempts: 1
Head moves on read error: 0
Badblocks output: stage1.badblocks
Marker string: BaDbLoCk
Starting block: 0
Source: /dev/cdrom
Destination: ./obraz.iso
.[8](+16384){X}[34691](+71030784)
.....[39463](+9773056){X}[74146](+71030784)
.................[91541](+35624960){X}[126224](+71030784)
.......[132533](+12920832){X}[167216](+71030784)
......................................... [208177] 
......................................... [250161] 
..............[265357](+200992768){X}[300040](+71030784)
.............[312638](+25800704){X}[347321](+71030784)

Done!
Recovered bad blocks: 0
Unrecoverable bad blocks (bytes): 6 (426184704)
Blocks (bytes) copied: 312638 (640282624)

Następnie jeśli w podsumowaniu wartość:

Unrecoverable bad blocks

Nie jest zerem (tak jak w naszym przypadku):

Unrecoverable bad blocks (bytes): 3 (268701696)

Wywołujemy kolejny etap skanowania danych uszkodzonego nośnika:

safecopy --stage2 /dev/cdrom ./obraz.iso

Sytuacja się powtarza. Kopiowanie jest wykonywane z większą precyzją. Kończy się ono raportem (dla prezentacji naszego artykułu został on skrócony):

Low level device calls enabled mode: 2
Reported hw blocksize: 4096
CDROM Mode1 - low level access: drive reset, raw read
CDROM low level disk size: 710326272
CDROM low level block size: 2048
Reported low level blocksize: 2048
File size: 710326272
Blocksize: 2048
Fault skip blocksize: 262144
Resolution: 2048
Min read attempts: 1
Head moves on read error: 0
Incremental mode file: stage1.badblocks
Incremental mode blocksize: 2048
Badblocks output: stage2.badblocks
Starting block: 0
Source: /dev/cdrom
Destination: ./obraz.iso
Current destination size: 710326272
[8](+16384){X<<<<<<<}[10](+4096)
.[18](+16384){X<<<<<<<}[19](+2048)
.[28](+18432){X<<<<<<<}[29](+2048)
.[38](+18432){X<<<<<<<}[39](+2048)
.[47](+16384){X<<<<<<<}[49](+4096)

(...)

..................................[346840](+69912576){X}[346968](+262144)
Done!
Recovered bad blocks: 0
Unrecoverable bad blocks (bytes): 452 (7426048)
Blocks (bytes) copied: 346840 (710328320)

I tutaj analogicznie – jeśli wartość:

Unrecoverable bad blocks

Nie jest zerem, odpalamy ostateczne (i najdłuższe) skanowanie:

safecopy --stage3 /dev/cdrom ./obraz.iso

W zależności od stanu płyty musimy uzbroić się w cierpliwość. Wynikiem komend jest plik ISO, który następnie możemy podmoutować pod system Linux (lub inny np. Windows) i przeglądać taki obraz dysku jak zwykłą płytę.

Jak wznowić skanowanie.

Czasem skanowanie jest długotrwałe i musimy je rozłożyć w czasie np. pomiędzy skanowaniami musi wystąpić restart komputera. W takim przypadku skanowanie wyłączamy poprzez

CTRL + X

Albo zamknięcie terminala, natomiast wznawiamy je poprzez parametr:

-s

Podając blok od którego należy rozpocząć skanowanie. Ten plik odczytujemy (ostatnia linijka) z pliku tekstowego:

stage1.badblocks

lub

stage2.badblocks

lub

stage3.badblocks

który tworzy się w folderze, gdzie wywołamy komendę. Dla przykładu:

safecopy --stage2 -s 60383 /dev/cdrom ./recovery.iso

Więcej informacji o dostępnych opcjach programu SafeCopy: http://manpages.ubuntu.com/manpages/cosmic/en/man1/safecopy.1.html

Lub po wywołaniu:

safecopy --help

 

grafika: wallpapersafari.com

Możesz również polubić…

Inna porada:
Dziś trochę luźniejszy temat ;-) Przygotuj popcorn, włącz terminal, wciśnij…