Jak mogę częściowo skopiować plik z uszkodzonego dysku?

10

Mam uszkodzony dysk, z którego muszę skopiować plik 60G.

Od czasu do czasu dysk resetuje się i nie mogę dokończyć kopiowania.

Chciałbym spróbować skopiować częściowe plasterki i połączyć je wszystkie.

W jaki sposób mogę to zrobić?

nsn
źródło
Można by użyć staromodnego (starej szkoły) sposobu dd.
G-Man mówi „Przywróć Monikę”
1
Inną opcją jest użycie np. split -b[bytes] yourbigFile
Valentin Bajrami
3
Jeśli próbujesz skopiować plik z uszkodzonego dysku, to - ddrescuelub nie - prawdopodobnie robisz to źle. Ponieważ plik zależy od systemu plików, a ponieważ plik najprawdopodobniej nie jest ciągły, wykonanie odczytów w celu pobrania go z wadliwego urządzenia prawie na pewno będzie wymagać więcej operacji na dysku, niż można sobie na to pozwolić. Zobrazowałem urządzenie blokowe na znanym dobrym urządzeniu w tak krótkim czasie, jak to tylko możliwe, a następnie skoncentrowałem wysiłki na odzyskaniu zamontowanego pliku obrazu w jak największym stopniu.
mikeserv

Odpowiedzi:

14

Użyj ddrescue, który jest przeznaczony dla tego typu scenariusza.

Wykorzystuje plik dziennika do śledzenia części danych, które udało się skopiować - lub w inny sposób. W rezultacie możesz go zatrzymać i uruchomić ponownie tyle razy, ile to konieczne, pod warunkiem, że plik dziennika jest utrzymywany.

Zobacz Ddrescue - narzędzie do odzyskiwania danych

roaima
źródło
4

Zastosowanie dd.

Może wiele zdziałać, ale potrzebujesz następującej formy:

dd if=<source> of=<destination> bs=<block size> count=<blocks> skip=<offset>

Na przykład, aby skopiować z pliku drugi do czwartego kilobajta, wykonaj następujące czynności:

dd if=in.dat of=out.dat bs=1K count=2 skip=2

Biorąc pod uwagę specyfikę tego, co próbujesz zrobić, możesz również spróbować dodać conv=sync,noerror:

dd if=in.dat of=out.dat bs=1K count=2 skip=2 conv=sync,noerror

noerrorSprawia, że starają się nadal po napotkaniu błędu, a syncsprawia, że pad nie udało bloki zerami. Idealnie byłoby, gdybyś dostał żądany plik, ale z zerami dla bloków, których nie mógł odczytać. Jednak to zależy od twojego twardego dysku, co faktycznie zrobi. Niektóre dyski twarde po prostu zamykają się, gdy widzą błąd, a wtedy nadal nie otrzymasz danych.

marinus
źródło