2012-01-30 20:59:25 +0000 2012-01-30 20:59:25 +0000
38
38

Jak wymusić remap sektorów raportowanych w S.M.A.R.T C5 (Current Pending Sector Count)?

Wartość S.M.A.R.T C5 mojego dysku twardego Samsung HM640JJ (w laptopie HP Pavilion dv6) to “żółty status = ostrożność”

C5 wynosiła wczoraj 10, a dzisiaj wynosi 21.

C4 (Reallocation Event Count) = 0 oraz 05 (Reallocated Sectors Count) = 0

Jak mogę zmusić firmware do ich realokacji?

  • usunąłem partycje, odtworzyłem je ponownie i sformatowałem cały dysk.
  • uruchomiłem program chkdsk /r /f
  • uruchomiłem narzędzie sprawdzania dysku w BIOS-ie i inne narzędzia diagnostyczne/naprawcze

Odpowiedzi (8)

120
120
120
2013-12-15 18:06:48 +0000

Krótka odpowiedź: Zapisz coś nowego do sektora (nawet zera - co robi długi format).

Długa odpowiedź

Dzisiejsze dyski twarde starają się ukryć uszkodzone sektory przed komputerem hosta. Komputer hosta po prostu prosi dysk o zwrócenie zawartości określonego numeru sektora. Zazwyczaj dysk odczytuje sektor, zwraca go do hosta i wszystko jest w porządku.

Dysk twardy wie, czy odczytana wartość jest prawidłowa, czy nie, ponieważ dysk wykorzystuje Kod korekcji błędów (ECC) do sprawdzenia, czy odczytana zawartość jest prawidłowa. Jeżeli napęd wykryje, że zawartość sektora jest nieprawidłowa, ponowi próbę odczytu. Istnieje nadzieja, że jeśli po prostu odczyta go ponownie, może uzyskać prawidłową zawartość sektora. Napęd będzie ponawiał próby do momentu uzyskania dobrej wartości lub osiągnięcia limitu czasu (formalnie znanego jako limit czasu ukończenia polecenia, lub CCTL ](http://www.t13.org/Documents/UploadedDocuments/docs2008/D1699r6a-ATA8-ACS.pdf)_).

Podczas tych prób, dysk będzie wyglądał na martwy, ponieważ nie odpowiada na komendy .

Sektory zapasowe

Większość nowoczesnych napędów zawiera pewną liczbę “zapasowych” sektorów (np. 1,024 zapasowych sektorów). Jeśli dysk rozpozna, że sektor jest uszkodzony, przestanie go używać. Wszelkie żądania odczytu lub zapisu w tym uszkodzonym sektorze zostaną w sposób przezroczysty przekierowane do sektora zapasowego. Oznaczenie uszkodzonego sektora i przeniesienie jego danych do sektora zapasowego jest określane jako zdarzenie realokacji. A całkowita liczba sektorów, które zostały realokowane (a więc ile z Twoich wolnych sektorów zostało wykorzystanych) to Liczba realokowanych sektorów.

W tym przykładzie z jednego z moich własnych dysków twardych 64 sektory zostały uznane za uszkodzone. Oznacza to, że 64 z wolnych sektorów na dysku zostało wykorzystanych:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64

Na tym samym dysku twardym wystąpiły 4 zdarzenia realokacji. Oznacza to, że w czterech przypadkach dysk oznaczył sektory jako uszkodzone i użył zamiast nich sektorów zapasowych.

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4

Co jeśli nie można odczytać danych?

Te działania polegające na ponownym odczytywaniu sektorów, zużywaniu sektorów zapasowych, a wszystko to za plecami komputera, to dobra rzecz. Oznacza to, że system operacyjny hosta nie musi zajmować się problemem uszkodzonych sektorów. Dysk sam sobie poradzi z tymi szczegółami.

Bonus Chatter : W dawnych czasach dysk twardy był dostarczany z naklejką przyklejoną do niego. Ta naklejka zawierała Factory Defect List; listę wszystkich znanych uszkodzeń dysku.

Jeśli przeprowadzałeś niskopoziomowy format dysku, musiałeś użyć narzędzia do wpisania wszystkich lokalizacji sektora głowicy cylindra uszkodzonych miejsc.
Dyski SCSI mają polecenie, IOCTL_DISK_REASSIGN_BLOCKS , aby powiedzieć im, aby ponownie przydzielić uszkodzone miejsce na dysku po wykryciu go przez system operacyjny. W napędach IDE wszystko to dzieje się automatycznie, bez potrzeby interwencji systemu operacyjnego.

W idealnej sytuacji dysk rozpoznaje uszkodzony sektor, przenosi dane do sektora zapasowego i nigdy więcej nie używa oryginalnego sektora. Ale co się dzieje, jeśli dysk nie był w stanie pomyślnie odczytać sektora?

Tym właśnie jest Pending Sectors. Dysk wykrył, że sektor jest uszkodzony i musi zostać przemapowany do sektora zapasowego. Ale nie może tego zrobić, dopóki nie będzie w stanie pomyślnie odczytać danych. Gdy dysk wie, że sektor jest uszkodzony i należy go przemapować, ale nie może tego jeszcze zrobić, ponieważ czeka na dobry odczyt z sektora: jest to Liczba Sektorów Oczekujących:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
(C5) Current Pending Sector 100 100 0 2

Mój dysk twardy ma 2 sektory, które są rozpoznawane przez dysk jako uszkodzone, ale nie mogą być jeszcze realokowane. Jeśli chciałbyś odczytać jeden z tych “sektorów oczekujących”, dysk prawdopodobnie ponowiłby próbę (i ponowiłby próbę, i ponowiłby próbę), a w końcu zwróciłby błąd odczytu do systemu operacyjnego hosta:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 66
(C4) Reallocated Event Count 196 196 0 5
(C5) Current Pending Sector 100 100 0 0

Zrezygnuj z sektora oczekującego, a zostanie on ponownie przydzielony

Istnieją dwa sposoby, w jakie dysk może w końcu przydzielić sektor i skonsumować inny wolny sektor:

  • w końcu uzyskuje dobry odczyt
  • nie obchodzi Cię już, co jest w sektorze

Jeśli dysk w końcu odczytał sektor, to wie, że może ponownie przydzielić sektor.

Innym sposobem, w jaki napęd może ponownie przydzielić sektor, jest poinformowanie go, że zawartość tego sektora jest nieistotna; że nie obchodzi cię już, co się w nim znajduje. Jak to zrobić?

Poprzez zapisanie czegoś nowego do sektora.

Za każdym razem, gdy odczytujesz lub zapisujesz sektor na dysku twardym, musisz odczytać/zapisać cały 512-bajtowy sektor1. Nie można zapisywać tylko części sektora. Gdy system operacyjny zapisuje dane w sektorze, musi określić całą wielkość 512-bajtowego sektora. Jeśli powiesz dyskowi twardemu, że chcesz, aby nowa zawartość zastąpiła uszkodzony sektor, dysk będzie wiedział, że nie obchodzi go, co znajduje się w uszkodzonym sektorze. Może on wtedy Realokować uszkodzony sektor do jednego z zapasowych, a sektor ten nie jest już Oczekujący.

To dlatego, gdy ludzie pytają o Mając kilka Current Pending Sectors, powszechną radą jest użycie narzędzia (takiego jak Data LifeGuard firmy Western Digital), aby zapisać wszystkie zera na dysku.

> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.

        12 KB in bad sectors.

Zapisując zera w każdym sektorze na dysku, mówisz dyskowi, że może w końcu ponownie przydzielić wszystkie te dokuczliwe oczekujące sektory. Po wymazaniu, wszystkie Twoje Pending Sectors staną się Reallocated Sectors:

ID Attribute Name Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18

Uwaga: Nie jest bezwzględnie konieczne użycie narzędzia “niskiego poziomu”, takiego jak Data LifeGuard firmy Western Digital. Jeśli polecisz Windowsowi wykonanie pełnego formatu (tj. innego niż Quick) woluminu, zapisze on zera w każdym sektorze woluminu.

System plików OS obsługuje oznaczanie sektorów jako uszkodzone

Uzbrojeni w tę wiedzę, zbadamy często mylący scenariusz.

Przed pojawieniem się Integrated Drive Electronics (IDE), system operacyjny hosta był odpowiedzialny za wykrywanie złych sektorów, ponawianie prób odczytu, przenoszenie danych do innego sektora i oznaczanie starych sektorów jako złych.

Gdybyś uruchomił chkdsk /r c: używając systemu operacyjnego hosta, rozpoznałby on, że “oczekujące” sektory są uszkodzone i oznaczyłby je jako uszkodzone, i nigdy nie próbowałby użyć ich ponownie:

>chkdsk c: /B

Zakładając więc, że dysk twardy ma 512-bajtowe sektory, 12 KB “oczekujących sektorów” lub w tym przykładzie 12 KB oznaczonych przez system operacyjny jako “uszkodzone sektory”, odpowiadałoby to dziesiętnej 24 lub szesnastkowej 0x18, co byłoby pokazane przez S. M.A.R.T., takie jak Crystal Disk Information:

/B NTFS only: Re-evaluates bad clusters on the volume
                (implies /R)

Uwaga : Narzędzie Data LifeGuard v1.31 (najnowsze na dzień 8/31/2017) firmy Western Digital nie wyświetla poprawnie bieżących wartości licznika S.M.A.R.T. ‘Raw’.

Teraz, jeśli wykonasz pełny format (który zapisuje zera do każdego sektora na woluminie):

/B NTFS only: Clears the list of bad clusters on the volume and 
                  rescans all allocated and free clusters for errors. /b includes
                  the functionality of /r. Use this parameter after imaging a
                  volume to a new hard disk drive.

Oznacza to, że wszystkie te sektory, które były Pending zostaną ponownie przydzielone. Teraz jest to bezpieczne dla systemu katalogów, aby użyć tych sektorów ponownie. Aby poinstruować system plików, że te sektory nie są już “złe”, wykonujesz opcję, która przewartościowuje złe sektory:

gdzie dokumentacja komendy mówi

Lub

Według https://technet.microsoft.com/en-us/library/cc730714(v=ws.11).aspx

To było dużo pisania i dużo zrzutów ekranu, dla czegoś, co nigdy nie zostanie przeczytane.

5
5
5
2012-09-11 10:05:04 +0000

Nie musisz nic robić - jeszcze. Licznik realokacji oznacza “dysk znalazł uszkodzony sektor i udało się go realokować”. Firmware już naprawił ten problem.

Musisz tylko być świadomy, że dysk zaczyna szwankować. W pewnym momencie dysk nie będzie miał wolnych sektorów do realokacji i stracisz dane. Jeśli jakiś ważny blok zostanie utracony, możesz stracić wszystkie dane na dysku.

Zwracaj więc uwagę na tę wartość lub od razu kup nowy dysk, abyś mógł o niej zapomnieć.

3
3
3
2012-01-30 21:29:36 +0000

Miałem dobre doświadczenia z metodą opisaną tutaj https://www.smartmontools.org/wiki/BadBlockHowto . Mój dysk hałasował i przestał działać, więc użyłem smart report i formuły do obliczenia bad block i użyłem dd do wyczyszczenia go. Miałem szczęście, ponieważ smart nadal raportuje aktualną liczbę sektorów, ale dysk działa od około 2 lat. Kupiłem zamiennik, ale nigdy go nie używałem. Wydaje mi się, że smart też nie jest tak dokładny.

2
2
2
2012-10-18 08:38:52 +0000

Może nie znasz tego narzędzia HD Sentinel

Hard Disk Sentinel (HDSentinel) to oprogramowanie do monitorowania i analizy dysków SSD i HDD dla wielu systemów operacyjnych. Jego celem jest znalezienie, przetestowanie, zdiagnozowanie i naprawa problemów z dyskami twardymi, raportowanie i wyświetlanie stanu SSD i HDD, pogorszenia wydajności i awarii. Hard Disk Sentinel daje pełny opis tekstowy, wskazówki i wyświetla/raportuje najbardziej wyczerpujące informacje o dyskach twardych i dyskach półprzewodnikowych wewnątrz komputera i w zewnętrznych obudowach (dyski twarde USB / dyski twarde e-SATA). Dostępnych jest wiele różnych alertów i opcji raportów, aby zapewnić maksymalne bezpieczeństwo Twoich cennych danych.

Wydaje się, że jest to świetne narzędzie do wykonywania takich czynności. Ale uważaj, niektóre opcje uruchamiania mogą całkowicie zniszczyć dane.

1
1
1
2013-05-31 11:13:45 +0000

Spróbuj Spinrite 6 lub regeneratora HDD z bootowalnymi płytami CD. Wykonują one testy powierzchni zapisu, więc powinny wyczyścić oczekujące bad sektory i podnieść liczbę ponownie przydzielonych sektorów.

1
1
1
2012-06-08 21:34:36 +0000

Zapis zerowy, inaczej znany jako Low Level Format. Zwykle można to zrobić tylko za pomocą narzędzia dyskowego producenta. W przypadku awarii dysku twardego powodującej ten błąd może on powrócić niemal natychmiast.

1
1
1
2012-01-30 21:22:33 +0000

Musisz użyć narzędzia, które zapisuje do każdego sektora na dysku. W przeciwnym razie nie ma sposobu, aby to zrobić. Jeśli dysk przydzielił sektor zapasowy i dokonał remappingu, jakie dane powinien umieścić w sektorze zapasowym? Nie ma pojęcia, ponieważ próba odczytu z istniejącego sektora zakończyła się niepowodzeniem. Tylko operacja zapisu może skasować błąd.

0
0
0
2019-10-30 15:48:58 +0000

Aby dodać kolejne rozwiązanie, ostatnio użyłem Victoria do naprawy 2 dysków, które uległy awarii z nieobsługiwanymi sektorami, ale dysk nie chciał ich automatycznie przemapować.

Victoria jest niskopoziomowym graficznym interfejsem do twojego dysku, i zawiera (jeśli naprawdę chcesz!) rzeczywistą edycję dysku bajt po bajcie, wymuszanie remappingu sektorów w przypadku awarii, obsługuje dyski USB i te tanie chińskie adaptery USB-2-sata, zmienia fabrycznie ustawione inteligentne atrybuty i funkcje, i wiele więcej.

Minusem jest to, że został opracowany przez rosyjskiego dewelopera, a ja pozostawiam wam otwarcie tej puszki Pandory, jeśli macie z nią problemy…

Z Victorią, złapałem pierwszy sektor, który nie zdołał się zremapować, przeprowadziłem skanowanie “Read” każdego sektora po nim z wymuszonym remapem. Następnie przeprowadziłem “Verify” całego dysku, ponownie przeprowadziłem smart check i teraz jest już dobrze…

…Ale mam zapasowe dyski, więc jestem w trakcie ich wymieniania. To było trochę przerażające, ponieważ jestem również pomiędzy rozwiązaniami do tworzenia kopii zapasowych, w każdym czasie!