W przypadku starych, porysowanych nośników CD, DVD system Linux (tutaj dystrybucja Lubuntu) może zgłaszać problem z podmountowaniem takiego dysku:
1 |
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:
1 |
sudo apt-get install safecopy |
Następnie wywołujemy:
1 |
safecopy --stage1 /dev/cdrom ./obraz.iso |
Rozpoczyna to pierwszy, pobieżny etap odzyskiwania danych. Uzyskujemy po pewnym czasie komunikat typu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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ść:
1 |
Unrecoverable bad blocks |
Nie jest zerem (tak jak w naszym przypadku):
1 |
Unrecoverable bad blocks (bytes): 3 (268701696) |
Wywołujemy kolejny etap skanowania danych uszkodzonego nośnika:
1 |
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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
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ść:
1 |
Unrecoverable bad blocks |
Nie jest zerem, odpalamy ostateczne (i najdłuższe) skanowanie:
1 |
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
1 |
CTRL + X |
Albo zamknięcie terminala, natomiast wznawiamy je poprzez parametr:
1 |
-s |
Podając blok od którego należy rozpocząć skanowanie. Ten plik odczytujemy (ostatnia linijka) z pliku tekstowego:
1 |
stage1.badblocks |
lub
1 |
stage2.badblocks |
lub
1 |
stage3.badblocks |
który tworzy się w folderze, gdzie wywołamy komendę. Dla przykładu:
1 |
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:
1 |
safecopy --help |
grafika: wallpapersafari.com