Mam twardy dysk, który się psuje. Chcę usunąć z niego dane przed wysłaniem ich do wymiany. Próbuję użyć dd if=/dev/zero of=/dev/sdXX
, ale zatrzymuje się przy pierwszym błędzie zapisu. Jak mogę zastąpić dysk zerami, ignorując błędy zapisu? conv=noerror
wydaje się wpływać tylko na plik wejściowy.
bad-sectors
dd
secure-erase
TestUser16418
źródło
źródło
badblocks
zatrzymuje się także na błędach? Może mógłbyś z tym zrobić destrukcyjne pismo?badblocks
aby upewnić się, ile jest złych bloków, zanim zwrócę dysk w poniedziałek. Udało się również usunąć dysk, ale zajęło to prawie 50 godzin.Odpowiedzi:
wypróbuj ddrescue zamiast dd - bardziej się stara z błędami
źródło
Parametry, których użyłem z ddrescue, aby wymazać dysk
/dev/sdb
(wypełniony zerami z/dev/zero
) i zapisać dane wyjściowe w plikulog.txt
:źródło
Jeśli chcesz tylko wyczyścić dysk, spróbuj dban
Ze strony:
Darik's Boot and Nuke („DBAN”) to samodzielny dysk rozruchowy, który bezpiecznie czyści dyski twarde większości komputerów. DBAN automatycznie i całkowicie usunie zawartość dowolnego dysku twardego, który może wykryć, co czyni go odpowiednim narzędziem do masowego lub awaryjnego niszczenia danych.
źródło
Dla przypomnienia, dd ma również opcję
conv=noerror
pomijania błędów. Jeśli masz błędy w pliku wejściowym, a gdy go nie używasz/dev/zero
, powinieneś użyćconv=noerror,notrunc
lubconv=noerror,sync
uniemożliwić dd obcięcie pliku wyjściowego tam, gdzie występują błędy w pliku wejściowym.W przypadku zapytania możesz wypróbować następujące polecenie:
Aby przyspieszyć proces i potencjalnie uniknąć śmierci dysku w połowie kroku, możesz również spróbować zwiększyć rozmiar bajtu z domyślnej 512 (co powoduje, że dd odczytuje sektor po sektorze, co jest wolne) do czegoś większego, takiego jak 4K ( osiem razy większy):
Uwaga: W przypadku większego rozmiaru bajtów pomijane błędy mogą pozostawić sekcje danych do odczytu nieco mniejszymi niż wybrany rozmiar bajtu, ale nadal jest mało prawdopodobne, aby ktokolwiek był w stanie uzyskać coś z tych sekcji po przepuszczeniu całego dysku przez proces.
Poza tym jestem pewien, że producenci dysków twardych właściwie pozbywają się dysków twardych, które są zwracane w celu wymiany gwarancyjnej, na wypadek, gdyby dysk ulegał awarii przed ukończeniem procesu nadpisywania.
źródło
man dd
pokazuje „noerror” oznacza „kontynuuj po błędach odczytu”Zdecydowanie nie jest to rozwiązanie dla zaawansowanych użytkowników, ale jeśli błędy zapisu są rzadkie, możesz po prostu chcieć kontynuować ręcznie po ich wystąpieniu.
Możesz teoretycznie napisać skrypt, aby zrobić to automatycznie, ale nie jest to takie trywialne i wolałbym napisać narzędzie do załatwienia sprawy niż zawracać sobie głowę skryptami dd ..
źródło