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.
Zawartość artykułu
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

