Jak naprawić dysk twardy Bad Sector

17

Próbowałem naprawić dysk twardy za pomocą Ubuntu, ale napotkałem komunikat o błędzie i nie wiedziałem, jak kontynuować. Muszę naprawić swoje złe sektory

fsck /dev/sdb  
fsck from util-linux 2.20.1  
e2fsck 1.42.5 (29-Jul-2012)  
fsck.ext2: Permission denied while trying to open /dev/sdb  
You must have r/w access to the filesystem or be root  
użytkownik122095
źródło
1
Wklejony tekst nie wydaje się powiązany z pytaniem - czy możesz to wyjaśnić?
thomasrutter

Odpowiedzi:

22

Uszkodzony sektor na dysku jest oznaką trwałego uszkodzenia napędu. O ile nie masz powodu, aby sądzić, że twój dysk źle oznaczył te sektory jako złe, nie możesz ich „naprawić”.

Oznacza to, że część dysku jest uszkodzona w takim stopniu, że nie można go już w wiarygodny sposób odczytać i / lub zapisać.

Twój system może nadal używać dysku, oznaczając ten sektor jako niezdatny do użytku, ale mimo to możesz rozważyć wymianę dysku, ponieważ zły sektor może oznaczać, że wkrótce więcej sektorów lub całego dysku może ulec awarii.

Chociaż mogą istnieć sposoby wymuszenia na dysku oznaczenia sektora jako złego, co pozwala na jego ponowne użycie, prawdopodobnie nie jest to dobry pomysł. Sektor może pozostać dobry, ale równie dobrze znów stanie się zły. Niektóre dane mogą zostać utracone lub uszkodzone w zależności od ich awarii.

Teraz, jeśli chodzi o komunikat o błędzie, który wkleiłeś w swoim pytaniu (w chwili pisania tego), błąd ten nie ma nic wspólnego ze złymi sektorami. Oznacza to, że nie masz dostępu do dysku. Bycie sudomoże dać ci dostęp, więc:

sudo fsck /dev/sdb

Jednak prawdopodobnie nadal nie jest to, czego chcesz, ponieważ / dev / sdb odnosi się do całego dysku, podczas gdy fsckjest przeznaczony do pracy na systemach plików , które zwykle (ale nie zawsze, a może masz wyjątek) są umieszczane w partycjach . Jeśli powyższe nie zadziałało, być może chciałbyś to zrobić dla 1. partycji na tym dysku:

sudo fsck /dev/sdb1

Możesz uzyskać listę partycji na dysk dzięki:

sudo fdisk -l
thomasrutter
źródło
7
To prawdopodobnie tylko zły blok. Nie można odczytać danych, to wszystko. Po ponownym mapowaniu bloku napęd jest prawdopodobnie dobry przez kolejne trzy lata. Podobnie jest z moim doświadczeniem.
Zan Lynx
Dysk twardy z uszkodzonym sektorem jest znacznie bardziej narażony na awarię w dowolnym momencie niż dysk, który nigdy nie miał uszkodzonego sektora. Na ilu dyskach bazuje Twoje wrażenia? Nadal nazwałbym to większym hazardem.
thomasrutter
Bardziej prawdopodobne? Pewnie. Ale nie jest to od razu skazane na zagładę. Tyle zależy od tego , dlaczego ten blok się zepsuł. Tak jak powiedziałem, miałem dyski, które powoli przekształcają kilka wadliwych bloków w ciągu ich życia i po prostu działają.
Zan Lynx
it isn't immediately doomed- nie możesz tego wiedzieć ani zagwarantować. W niektórych przypadkach może tak być. So much depends on why that block went bad- niemożliwe byłoby wiarygodne ustalenie przyczyny bez otwarcia go i skutecznego zniszczenia. Jak powiedziałem, zawsze jest to zwiększone ryzyko. Jeśli masz takie ryzyko, nie mam z tym problemu. Przez większość czasu, może nawet w ponad 90% przypadków, dysk nie zawiedzie szybko po znalezieniu uszkodzonego sektora, aw niektórych przypadkach może trwać nawet kilka lat później. Przechowuj dobre kopie zapasowe, a każda przyszła awaria nie zaszkodzi tak bardzo.
thomasrutter
1
Mówi „dysk jest zamontowany” i nic nie robi.
Dims
21

W skrócie : Uruchom system ratunkowy i użyj złych bloków :

badblocks -svn /dev/sda

aby kontroler dysku twardego zastąpił uszkodzone bloki zapasowymi blokami.

Odpowiedziałem szczegółowo na to samo pytanie tutaj .

użytkownik228505
źródło
4
Prawdopodobnie chcesz użyć tego pośrednio z -copcją fsck . AFAIK korzystający z badblockssamodzielnego oprogramowania nigdy nie zmieni zachowania, tylko raportuje, gdzie są złe bloki. Oczywiście oprogramowanie układowe napędu może w sposób przezroczysty modyfikować jego zachowanie, gdy badblocksbędzie podlegać charakterystycznym wzorcom użytkowania , ale czy na pewno będzie to zależne od napędu?
amoe
1
Jako nowy użytkownik musisz najpierw zyskać „reputację”, zanim będziesz mógł wykonywać określone czynności na tej stronie. Nie można było tego powielić. Jednak pytanie zasługiwało na odpowiedź. Ponieważ uszkodzone bloki są problemem fizycznego dysku (sprawdź wartości SMART, nie ma to bezpośredniego wpływu na system plików. Może to spowodować uszkodzenie z powodu utraty danych. Więc robienie fsck jest również dobrym pomysłem. Pierwotne pytanie dotyczyło tego, jak „naprawa” złych bloków to była odpowiedź.
user228505
@amoe dokumentacja zakłada, że ​​zachowanie się zmieni, tutaj: „Uruchom sudo badblocks -n na nazwie urządzenia, aby uruchomić je samodzielnie i zgłosić Badblocks bezpośrednio w swoim terminalu. Możesz użyć opcji -w, aby użyć testu w trybie zapisu, ale nie używaj razem opcji -n i -w, ponieważ wzajemnie się wykluczają. W żadnym wypadku nie powinieneś nigdy używać opcji -w na woluminie zawierającym dane, ponieważ spowoduje to usunięcie wszystkiego w czystości. Użyj wolniejszego -n opcja, ponieważ w tym przypadku zachowa twoje dane. Opcja -w jest odpowiednia dla woluminów, których nie masz nic przeciwko skasowaniu. ”
Webwoman
13

W dawnych czasach trzeba było zanotować złe bloki, które zostały zapisane na dysku i wpisać je na listę defektów przed sformatowaniem dysku, ponieważ powierzchnia dysku twardego nigdy nie była „idealna”, producent jest tego mądry, ponieważ ludzie kupując dyski, sprawdziłby tabelę defektów wydrukowaną na dysku i kupił te z najmniejszą ilością defektów ...

Teraz przewiń do przodu o około 20 lat, a producenci dysków twardych ukrywają fakt, że nowy dysk ma wadliwe bloki z oprogramowaniem układowym, gdy kupujesz nowy dysk, prawdopodobnie już ma złe bloki, oprogramowanie sprzętowe wykryje nowo wyodrębnione złe bloki i odwzorowuje je na podstawie zestawu zapasowych cylindrów, które posiada, ale dzieje się tak tylko wtedy, gdy w tym sektorze występuje operacja zapisu, a algorytm ECC wykrywa awarię bitu, dopiero wtedy odwzoruje blok. Wracając do rzeczy, możesz zmusić dysk do mapowania złych bloków, po prostu używając DD, tj. / [Edit: edytowano następujący przykład, aby zapobiec przypadkowemu zniszczeniu dysku: usunięto znak wieloznaczny, zastąpiono X]

dd if=/dev/zero of=/dev/sdX bs=1M 

oczywiście zmień wartość of = target, aby odzwierciedlić dysk, który chcesz wyzerować. Jest to najszybszy sposób na ponowne mapowanie wadliwych dysków, jest to również najszybszy sposób na całkowite zniszczenie konfiguracji Linuksa przez pomyłkę dysku docelowego, więc sprawdź, sprawdź dwukrotnie następnie sprawdź ponownie, zanim naciśniesz klawisz Enter. Możesz zwiększyć rozmiar bloku w poleceniu dd, aby zoptymalizować odczyt / zapis i być może przyspieszyć, ale po pewnym czasie dochodzi do malejących zwrotów. Uważam, że wszystko między 1M a 8M działa najlepiej dla mnie

Możesz zmusić DD do napisania tylko jednego sektora, złego ... aby go odwzorować, więc nie musisz tworzyć kopii zapasowej dysku, ale to zupełnie inny czajnik z rybą i rosyjską ruletką, jeśli nie wiesz dokładnie co robisz .....

To polecenie ZNISZCZY wszystko na dysku twardym, w tym wszelkie partycje. Ale zmusi dysk do mapowania wszelkich złych sektorów, które może mieć.

Zupełnie dobrze jest, gdy dysk ma uszkodzone sektory, o ile nie znajdują się w sektorze rozruchowym, jeśli tak, to dysk jest bezużyteczny, jeśli kilka miesięcy później zauważysz, że na twoim dysku pojawiło się więcej uszkodzonych sektorów, to czas zacząć kupować zamiennik.

Ożywiłem setki takich napędów i żyją one przez wiele lat później, zły sektor niekoniecznie jest przyczyną śmierci napędu.

Derek Brabrook
źródło
Użyłem tej metody wcześniej, ale nigdy nie wiedziałem, dlaczego zadziałała. Spośród garści większość dysków trwała przez lata po płytkim wyczyszczeniu dysku zgodnie z zaleceniami.
MER
Ack !! Dla niewtajemniczonych PROSZĘ NIE KOPIOWAĆ I WKLEJAĆ TEJ LINII. Twoja powłoka rozwinie symbol wieloznaczny „?” z rzeczywistymi nazwami urządzeń w / dev. Jeśli przypadkowo wciśniesz Enter przed wymianą?, Możesz ewentualnie wyczyścić niewłaściwy dysk. Jeśli masz więcej niż 1 urządzenie, dd może zgłosić błąd, ale nie chcę testować tego na moim komputerze.
TiberiusKirk