Jak wskazałem w mojej innej odpowiedzi , na każdym nowoczesnym dysku twardym jest dostępne miejsce do ponownego mapowania (ponieważ zwłaszcza przy dzisiejszej gęstości dysków żaden talerz nie będzie idealny - zawsze będzie kilka wad, które należy ponownie mapować, nawet w przypadku marki -nowe-nigdy-nigdy-nieużywane-wyjechały z linii montażowej w moje ręce).
Z tego powodu teoretycznie powinieneś zgłosić awarię SMART, zanim coś takiego jak badblocks
powiadomienia (widoczne dla użytkownika końcowego) uszkodzonych sektorów na dysku.
Na współczesnych dyskach twardych wszelkie widoczne sektory uszkodzone widoczne dla użytkownika końcowego (co może być zgłaszane badblocks
lub automatycznie wykrywane przez system operacyjny) są ostatnim westchnieniem i dreszczem umierającego dysku.
Ostatecznie INTELIGENTNY i badblocks
przetestuj dwie różne, ale powiązane, rzeczy:
SMART to narzędzie do samokontroli:
Dysk twardy zna pewne informacje o swoich parametrach operacyjnych i ma pewną meta-wiedzę na temat tego, co dla niektórych jest „normalne”, a dla innych „akceptowalne”.
Jeśli dysk wykryje, że niektóre parametry są „nienormalne” lub „nieakceptowalne”, zgłosi stan sprzed awarii - innymi słowy, dysk nadal działa, ale wkrótce może ulec awarii.
Na przykład: silnik wrzeciona zwykle pobiera 0,10 ampera, ale teraz pobiera 0,50 ampera - nienormalnie wysoki ciąg, który może wskazywać na wiązanie wału lub zniknięcie stałego smaru na łożyskach. W końcu silnik nie będzie w stanie pokonać oporu i napęd się zatnie.
Kolejny przykład: dysk ma 1000 bloków „remap”, aby radzić sobie ze złymi sektorami. Użył 750 z nich, a inżynierowie, którzy zbudowali napęd, ustalili, że liczba remapów wskazuje na coś wewnętrznie niewłaściwego (zły talerz, awaria starości, uszkodzona głowa) - dysk zgłosi stan przed awarią, umożliwiając uzyskanie czasu twoje dane się wyczerpią, zanim skończy się miejsce remapowania i widoczne będą uszkodzone sektory.
SMART szuka czegoś więcej niż złych sektorów - jest to bardziej kompleksowa ocena stanu dysku. Możesz mieć ostrzeżenie SMART przed awarią na dysku bez uszkodzonych sektorów i bez błędów odczytu / zapisu (na przykład problem z silnikiem wrzeciona, który opisałem powyżej).
badblocks
to narzędzie o określonym (nieaktualnym) celu: znajdowanie uszkodzonych sektorów.
badblocks
pochodzi z czasów przed SMART i mapowaniem złego sektora. Wcześniej wiedzieliśmy, że dyski mają niedoskonałości, ale jedynym sposobem na ich zmapowanie, aby zapobiec przypadkowemu przechowywaniu danych, było przetestowanie dysku, spowodowanie awarii, a następnie pamiętanie, aby nigdy nie umieszczać tam danych.
Powodem, dla którego mówię, że jest przestarzały, jest to, że elektronika nowoczesnych napędów już badblocks
działa tak wewnętrznie, jak i kilka tysięcy razy szybciej. badblocks
w zasadzie pozwala starożytnym dyskom, które nie mają skomplikowanej elektroniki, ponownie mapować (lub pomijać) sektory, które uległy awarii, ale współczesne dyski twarde już wykrywają uszkodzone sektory i mapują je dla Ciebie.
Teoretycznie możesz użyć badblocks
danych, aby mieć awarie mapowania systemu operacyjnego (widoczne), tak jakby twój nowoczesny dysk był starym dyskiem Winchester, ale to ostatecznie przynosi efekt przeciwny do zamierzonego - Jak powiedziałem wcześniej, ŻADNE wykryte sektory wykryte badblocks
na nowoczesnym dysku są przyczyną odrzucenia cały dysk jako uszkodzony (lub wkrótce ulegnie awarii).
Widoczne uszkodzone sektory wskazują, że w napędzie brakuje miejsca na ponowne mapowanie, co jest stosunkowo rzadkie w przypadku nowoczesnych dysków, chyba że są one stare (zbliżają się do końca żywotności) lub wadliwe (złe talerze / głowice z fabryki).
Zasadniczo więc, jeśli uruchomienie badblocks
na dysku przed wdrożeniem go w produkcji sprawia, że lepiej jest iść dalej i zrobić to, ale jeśli twój dysk został wyprodukowany w tym wieku i pokazuje widoczny zły sektor, powinieneś go wyrzucić do kosza (lub wywołać jego gwarancja). Za moje pieniądze status SMART i głęboka obrona to lepsze wykorzystanie mojego czasu niż ręczne sprawdzanie dysków.
smartctl -t long /dev/sda
, czy też mogę założyć, żesmartd
„automatycznie” ostrzeże mnie przed nadciągającymi problemami bez konieczności konfigurowania czegokolwiek innego?badblocks
odczytuje każdy bajt z dysku, nadpisuje je losowymi wzorami, a następnie przywraca oryginalne dane. SMART autotesty nie robią tego. Powinno to wyczyścić wszystkie „oczekujące” sektory, jeśli dobrze rozumiem.Dobre odpowiedzi na to pytanie są
/superuser//a/693065
/superuser//a/693064
W przeciwieństwie do innych odpowiedzi uważam, że bloki nie są nieaktualne, ale są bardzo przydatnym narzędziem. Po uaktualnieniu komputera z nowym dyskiem twardym zaczął on działać niestabilnie. Dość dużo czasu zajęło mi uświadomienie sobie dzięki złym blokom, że powierzchnia dysku ma wady. Od tego czasu uruchamiam pełne bloki trybu zapisu (możliwe do zniszczenia!) Dla każdego nowego dysku twardego, którego używam i nigdy więcej nie miałem tego problemu. Bardzo polecam
time sudo badblocks -swvo sdX.log / sev / sdX
dla każdego nowego dysku twardego. Kilkakrotnie przetestuje każdy fragment dysku pod kątem zapisu i odczytu, dzięki czemu można później uniknąć wielu problemów.
Podczas tego testu złe bloki zostaną zmapowane przez napęd. Dlatego przed i po teście należy zanotować „Realocated Sector Count” i porównać go z progiem SMART, ponieważ będzie on mówił coś o kondycji dysku.
źródło
badblocks to relikt z dawnych czasów i nie jest ściśle przydatny, może znaleźć obecnie nieczytelny sektor, ale właściwym rozwiązaniem w przypadku złego sektora jest odzyskanie danych z kopii zapasowej. Co można zrobić, jeśli dane nie były dla Ciebie kluczowe, aby usunąć powiązany plik i zapisać cokolwiek w tej lokalizacji, pozwoli to dyskowi realokować sektor, jeśli uzna to za konieczne i będzie nadal działać.
Autotest dysku również obejmie i przetestuje cały nośnik pod kątem różnych defektów, powinien używać niższych progów w porównaniu do tego, z którego korzysta podczas normalnej pracy, aby sprawdzić, czy dysk ma wiele słabych punktów i na podstawie logiki dostawcy może zdecydować, że dysk osiągnął okres przydatności i deklaruje, że test się nie powiódł. W tym momencie należy usunąć wszystkie dane lub odzyskać je z kopii zapasowej i wymienić dysk.
Jeśli akcja dysku (błędne lub normalne działanie) napotka nieodwracalny błąd odczytu, dysk automatycznie zaktualizuje swój licznik oczekujących na realokację, a po przeprowadzeniu realokacji zaktualizuje oczekującą realokację i ponownie przydzielone liczniki. Prosty dd również się przydarzy.
Jeśli musisz wybrać jedno z dwóch, użyj smartctl -t, ponieważ miałaby lepszą analizę dysku.
Mogę również zasugerować użycie mojego narzędzia dyskowego https://github.com/baruch/diskscan , działa bardziej jak badblocks, ale próbuje ocenić, czy istnieją sektory, które się psują , coś w rodzaju sektora niedosłyszącego, który wymaga dużo dłużej czytać. Wskazuje to na rozwijający się problem z mediami, aw przyszłych wersjach może również oferować automatyczną próbę pomocy dyskowi w rozwiązaniu tego problemu.
źródło
badblocks
napęd nie jest obciążany w sposób, w jaki nie występują autotesty SMART?badblocks
odczytuje każdy bajt z dysku, zastępuje go wzorcami testowymi, a następnie zapisuje oryginalne dane z powrotem na swoim miejscu. SMART autotesty są podobnie testami odczytu i zapisu?