zapisywanie danych z uszkodzonego dysku

12

Zewnętrzny dysk twardy 3½ "wydaje się być zagrożony awarią - wydaje dźwięk tykający, gdy jest bezczynny .

Nabyłem dysk zastępczy i chcę poznać najlepszą strategię usuwania danych z podejrzanego dysku z największą szansą na zaoszczędzenie jak najwięcej.

Istnieje kilka katalogów, które są ważniejsze niż inne. Jednak zgaduję, że wybieranie i wybieranie katalogów zmniejszy moje szanse na uratowanie całości. Musiałbym również go zamontować, zrzucić listę plików, a następnie odmontować, aby móc efektywnie nadać priorytet katalogom. Dodając fakt, że jest to czasochłonne, odchylam się od tego podejścia.

Zastanawiałem się nad użyciem dd, ale nie jestem pewien, w jaki sposób poradziłby sobie z błędami odczytu lub innymi problemami, które mogłyby uniemożliwić uratowanie tylko niektórych części danych lub które można rozwiązać za pomocą niektórych ponownych prób, ale nie tak wielu, że grozi zapisaniem innych części dysku. Myślę, że idealnie byłoby zrobić jedno przejście, aby uzyskać jak najwięcej, a następnie wrócić do ponownej próby wszystkiego, co zostało pominięte z powodu błędów.

Czy to możliwe, że kopiowanie wolniej - np. Wstrzymywanie co x MB / GB - byłoby lepsze niż uruchomienie operacji pełnego pochylenia, na przykład w celu uniknięcia problemów z przegrzewaniem?

Dla tłumu „gdzie jest twoja kopia zapasowa”: w rzeczywistości jest to mój dysk zapasowy, ale zawiera także pewne niekrytyczne i nieporęczne rzeczy, takie jak muzyka, które nie są kopiami zapasowymi, tj. Nie są tworzone.

Napęd nie wykazywał żadnych wyraźnych oznak awarii oprócz tego nieco złowieszczego dźwięku. Ostatnio musiałem sprawdzić kilka błędów - osierocone i-węzły, niepoprawne liczby wolnych bloków / i-węzłów, różnice w bitmapach i-węzłów, zero czasu dtime na usuniętych i-węzłach; w sumie około 20 błędów.

System plików partycji to ext3.

intuicyjny
źródło
zamieszczono na postach na askubuntu i superużytkowniku
intuicyjnie,

Odpowiedzi:

9

Można użyć ddrescuealbo dd_rescuealbo myrescuesklonować dysk uszkodzoną, bez przerywania na jakimkolwiek sektorze nieczytelne. (Myrescue jest mniej konfigurowalny, ale ma lepszą domyślną strategię, ponieważ próbuje pomijać nieczytelne regiony). Spowoduje to skopiowanie wszystkiego, w tym spacji i nie pozwoli ci ustawić priorytetów. Jednakże takie podejście niskim poziomie a ma przewagę nad narzędziami plików szczebla: jeśli katalog jest nieczytelny, można jeszcze odzyskać pliki w nim zawarte, szukając obrazu RAW z narzędzi takich jak foremost, magicrescue, photoreczawarte w TestDisk , etc.

Gilles „SO- przestań być zły”
źródło
Link do magicrescuewydaje się być zepsuty; miałeś na myśli itu.dk/~jobr/magicrescue ?
landroni
@landroni Tak, chyba ten student ukończył studia, dzięki.
Gilles „SO- przestań być zły”
„Myrescue [..] ma lepszą domyślną strategię” Czy zastanowiłbyś się nad opublikowaniem ddrescueprzykładu skonfigurowanego z myrescueustawieniami domyślnymi? Dzięki!
landroni
1
Dla ddrescue/ dd_rescuewykonujesz pierwsze przejście z dużym rozmiarem bloku i zmieniasz na mniejsze w kolejnych przejściach (np. Za każdym razem o połowę). To oczywiście wymaga użycia pliku dziennika (patrz strona man).
peterph
Myląco, w systemach opartych na Debianie polecenie ddrescuepochodzi z pakietu gddrescue; dd_rescuez paczki ddrescue; i myrescuez paczki myrescue.
landroni
8

Nie ma możliwości poznania najlepszych opcji bez dokładnego zrozumienia, co dzieje się z dyskiem. Jeśli jest to awaria mechaniczna, uniknięcie jej rozgrzania może pomóc, ale jeśli wynika to z błędów w danych serwomechanizmu, ciepło prawdopodobnie nie będzie miało znaczenia.

Natychmiast zacznę kopiować unikalne dane na nowy dysk za pomocą rsync. rsyncpozwoli ci zatrzymać, wznowić i uruchomić ponownie w razie potrzeby, dopóki wszystkie dane nie zostaną usunięte.

Następnie uruchomiłbym czyszczenie dysku na dysku. Zakładam, że z ext3systemu plików używasz Linuksa, więc wypróbuj to:

# umount /dev/sdX
# badblocks -n /dev/sdX

(Ważne jest najpierw odmontowanie dysku).

Spowoduje to odczytanie każdego sektora z dysku i zapisanie go bez zmian. Zmusi to oprogramowanie układowe napędu do sprawdzenia każdego sektora pod kątem błędów i do ponownego mapowania wszystkich uszkodzonych sektorów, które znajdzie. Jest to najważniejsza część tego, co robi drogi program SpinRite . Podejdź do tego tylko wtedy, gdy badblockszawiedzie, a nadal nie masz wszystkich unikalnych danych z dysku: SpinRite stara się bardziej niż badblocksrobi.

Warren Young
źródło
2

Jeśli dysk umiera, najpierw upewnij się, że zrobisz z niego jak najlepszy klon (patrz odpowiedź Gillesa), a dopiero potem przystąp do gry z napędem. W ten sposób zawsze będziesz mieć przynajmniej niektóre dane, na wypadek, gdyby coś poszło nie tak (co często może się zdarzyć z uszkodzonym sprzętem).

Jeśli używasz ddrescue(lub dd_rescuenie jestem pewien co do pozostałych), zawsze możesz wykonać kopię częściowo sklonowanych danych i powiązanego pliku dziennika i spróbować je poprawić, uruchamiając ddrescueponownie po zrobieniu czegoś, co miało naprawić dysk. Spróbuje odczytać brakujące części, pozostawiając dobrze sklonowane części nietknięte.

Peter
źródło