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

Hoe kan een remap worden geforceerd van sectoren die in S.M.A.R.T C5 (Current Pending Sector Count) worden gemeld?

De S.M.A.R.T C5 waarde van mijn Samsung HM640JJ Hard Drive (in een HP Pavilion dv6 laptop) is “yellow status = caution”

C5 was gisteren 10, en het is 21 vandaag.

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

Hoe kan ik de firmware dwingen ze opnieuw toe te wijzen?

  • Ik heb de partities verwijderd, ze opnieuw gemaakt en de hele schijf geformatteerd.
  • Ik rende chkdsk /r /f
  • Ik rende de BIOS disk check utility en andere diagnose/reparatie tools

Antwoorden (8)

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

Kort antwoord: Schrijf iets nieuws naar de sector (zelfs nullen - wat een lang formaat doet).

Lang Antwoord

Harde schijven proberen tegenwoordig slechte sectoren voor de hostcomputer te verbergen. De hostcomputer vraagt de drive gewoon om de inhoud van een bepaald sectornummer terug te geven. Normaal leest de schijf de sector, stuurt die terug naar de hostcomputer, en alles is in orde.

De harde schijf weet of de waarde die hij leest geldig is of niet, omdat de schijf Error-correcting code (ECC) gebruikt om te valideren dat de gelezen inhoud correct is. Als de drive ontdekt dat de inhoud van de sector ongeldig is, zal hij het lezen opnieuw proberen. De hoop is dat als hij gewoon opnieuw leest, hij de juiste sectorinhoud krijgt. Hij blijft het opnieuw proberen totdat hij een goede waarde krijgt, of totdat hij zijn tijdslimiet heeft bereikt (formeel bekend als de Command completion time limit, of CCTL _).

Tijdens deze pogingen, zal de aandrijving dood lijken; aangezien het niet meer reageert op commando’s .

Reservesectoren

De meeste moderne schijven bevatten een aantal “reserve” sectoren (b.v. 1.024 reservesectoren). Als de schijf herkent dat een sector slecht is, wordt deze niet meer gebruikt. Alle verzoeken om te lezen of te schrijven naar die beschadigde sector zullen transparant worden omgeleid naar een reservesector. Het markeren van een slechte sector en het opnieuw toewijzen van de gegevens aan een reservesector wordt een Reallocation Event genoemd. En het totale aantal sectoren dat opnieuw is toegewezen (en dus hoeveel van uw reservesectoren zijn opgebruikt) is de Gerealloceerde Sector Telling.

In dit voorbeeld van een van mijn eigen harde schijven, bleken 64 sectoren slecht te zijn. Dat betekent dat 64 van de reservesectoren van de schijf in gebruik zijn genomen:

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

Op deze zelfde harde schijf zijn er 4 Reallocation Events geweest. Dit betekent dat de schijf vier keer sectoren als slecht heeft gemarkeerd, en in plaats daarvan reservesectoren heeft gebruikt.

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

Wat als hij de data nooit kan lezen?

Deze acties van het herlezen van sectoren, het gebruiken van reserves, allemaal achter de rug van de computer om is een goede zaak. Het betekent dat het host besturingssysteem niet hoeft om te gaan met het probleem van falende sectoren. De schijf zelf kan die details zelf afhandelen.

Bonus Chatter : Vroeger werd uw harde schijf geleverd met een sticker erop geplakt. Deze sticker bevatte de Factory Defect List; de lijst van alle bekende slechte plekken op de schijf.

Als je een low-level format van de schijf uitvoerde, moest je een tool gebruiken om alle Cylinder-Head-Sector locaties van de slechte plekken in te typen.
SCSI-schijven hebben een commando, IOCTL_DISK_REASSIGN_BLOCKS , om ze te vertellen een slechte plek op de schijf opnieuw toe te wijzen nadat het besturingssysteem dit heeft gedetecteerd. Bij IDE-schijven gebeurt dit allemaal automatisch, zonder tussenkomst van het besturingssysteem.

Idealiter zou de schijf herkennen dat de sector defect is, de gegevens naar een reservesector verplaatsen, en de oorspronkelijke sector nooit meer gebruiken. Maar wat gebeurt er als de schijf de sector niet met succes heeft kunnen lezen?

Dit is wat Pending Sectors zijn. De drive heeft gedetecteerd dat een sector faalt, en moet omgevormd worden naar een reserve. Maar hij kan dat niet doen totdat hij de data succesvol kan lezen. Als de drive weet dat een sector slecht is, en moet worden omgedraaid, maar dat nog niet kan doen omdat hij wacht op een goede lezing van de sector: dat wordt de Pending Sector Count genoemd:

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

Mijn harde schijf heeft 2 sectoren die de schijf herkent als slecht, maar die nog niet opnieuw toegewezen kunnen worden. Als u een van deze ‘Pending sectors’ zou lezen, zou de schijf waarschijnlijk opnieuw proberen (en opnieuw proberen, en opnieuw proberen), en uiteindelijk een leesfout teruggeven aan het host besturingssysteem:

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

Geef op de in afwachting van sector en het zal opnieuw toegewezen

Er zijn twee manieren waarop de drive kan eindelijk ** opnieuw toewijzen** de sector, en consumeren een andere reserve sector:

  • het krijgt eindelijk een goede lezen
  • kan je niet meer schelen wat er in de sector

Als de drive eindelijk gelezen de sector, dan weet dat het kan opnieuw toewijzen van de sector.

De andere manier waarop de drive de sector opnieuw kan toewijzen is als je hem laat weten dat de inhoud van die sector irrelevant is; dat het je niet meer kan schelen wat er in zit. Hoe doe je dat?

Door iets nieuws naar de sector te schrijven.

Telkens als je leest van, of schrijft naar, een sector op een harde schijf, moet je de gehele 512 byte sector1 lezen/schrijven. Het is niet mogelijk om slechts een deel van een sector te schrijven. Als het besturingssysteem gegevens naar een sector schrijft, moet het de gehele 512 bytes specificeren. Als je de harddisk vertelt dat je deze nieuwe inhoud in de plaats van de slechte sector wilt, dan weet de harddisk dat het je niet eens kan schelen wat er nu in de slechte sector zit. Hij kan dan een slechte sector heralloceren naar een van de reserves, en de sector is niet langer In afwachting.

Dit is waarom wanneer mensen vragen over Als u een aantal Current Pending Sectors hebt, is het gebruikelijke advies om een programma te gebruiken (zoals Data LifeGuard van Western Digital) om alle nullen naar de schijf te schrijven.

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

        12 KB in bad sectors.

Door nullen te schrijven naar elke sector op de schijf, vertel je de schijf dat hij eindelijk al die vervelende pending sectoren opnieuw kan toewijzen. Na het wissen, zullen al uw Pending Sectors Reallocated Sectors worden:

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

Note: Het is niet strikt noodzakelijk om een “low level” tool zoals Western Digital’s Data LifeGuard te gebruiken. Als u Windows opdracht geeft om een volledig format (d.w.z. geen Quick format) van een volume uit te voeren, dan schrijft het nullen naar elke sector in het volume.

Het OS bestandssysteem ondersteunt het markeren van sectoren als slecht

Gewapend met deze kennis, zullen we een veel voorkomend verwarrend scenario onderzoeken.

Voor de komst van Integrated Drive Electronics (IDE), was het host-besturingssysteem verantwoordelijk voor het detecteren van slechte sectoren, het opnieuw proberen van de leest, het verplaatsen van gegevens naar een andere sector, en het markeren van oude sectoren als slecht.

Als je een chkdsk /r c: zou uitvoeren met het host besturingssysteem, zou het herkennen dat de “pending” sectoren slecht zijn, en ze zelf als slecht markeren, en nooit meer proberen ze te gebruiken:

>chkdsk c: /B

Dus uitgaande van een 512-byte sector harde schijf, 12 KB aan “Pending Sectors” of in dit voorbeeld 12KB gemarkeerd door het OS als “slechte sectoren”, zou dat overeenkomen met decimaal 24 of hexadecimaal 0x18 zoals zou worden weergegeven door een S. M.A.R.T. schijfhulpprogramma zoals Crystal Disk Information:

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

Note : Het hulpprogramma Data LifeGuard v1.31 (laatste per 8/31/2017) van Western Digital lijkt de huidige S.M.A.R.T. ‘Raw’ tellerwaarden niet correct weer te geven.

Als je nu een full format (die nullen schrijft naar elke sector in het volume) uitvoert:

/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.

Dat betekent dat al die sectoren die Pending waren, opnieuw toegewezen gaan worden. Het is nu veilig voor het opslagsysteem om die sectoren weer te gebruiken. Om het archiefsysteem te instrueren dat die sectoren niet langer “slecht” zijn, voer je een optie uit waarbij het slechte sectoren herwaardeert:

waar de commando documentatie zegt

Of

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

Dit was een heleboel schrijfwerk, en een heleboel screenshots, voor iets dat nooit gelezen zal worden.

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

Je hoeft niets te doen - nog niet. De herallocatietelling betekent “schijf vond defecte sector en succesvol heralloceerde het”. De firmware heeft het probleem al opgelost.

Je moet je er alleen van bewust zijn dat de schijf begint te falen. Op een bepaald moment in de toekomst, zal de schijf geen reserve sectoren meer hebben voor de hertoewijzing en zul je gegevens verliezen. Als een belangrijk blok verloren gaat, kun je alle gegevens op de schijf verliezen.

Houd deze waarde dus in de gaten of koop meteen een nieuwe schijf, zodat je het kunt vergeten.

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

Ik had goede ervaringen met de hier beschreven methode https://www.smartmontools.org/wiki/BadBlockHowto . Mijn schijf maakte lawaai en stopte met werken, dus ik gebruikte smart report en de formule om het slechte blok te berekenen en gebruikte dd om het te wissen. Ik had geluk want smart rapporteert nog steeds een huidige sectortelling maar de schijf werkt al 2 jaar of zo. Ik heb een vervangende schijf gekocht maar ik heb hem nooit gebruikt. Het lijkt mij dat smart ook niet zo nauwkeurig is.

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

Misschien kent u deze tool nog niet HD Sentinel

Hard Disk Sentinel (HDSentinel) is een multi-OS SSD en HDD monitoring en analyse software. Het doel is het vinden, testen, diagnosticeren en repareren van harde schijf problemen, rapporteren en weergeven van SSD en HDD gezondheid, prestaties degradaties en storingen. Hard Disk Sentinel geeft volledige tekstuele beschrijving, tips en toont/rapport de meest uitgebreide informatie over de harde schijven en solid state schijven in de computer en in externe behuizingen (USB harde schijven / e-SATA harde schijven). Er zijn veel verschillende waarschuwingen en rapportopties beschikbaar om een maximale veiligheid van uw waardevolle gegevens te garanderen.

Dit lijkt een geweldig hulpmiddel te zijn om dergelijke acties te doen. Maar let op, sommige run opties kunnen gegevens volledig vernietigen.

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

Probeer Spinrite 6 of HDD regenerator bootable CDs. Deze doen schrijfoppervlakte testen, dus het zou de slechte sectoren moeten verwijderen en het aantal opnieuw toegewezen sectoren moeten verhogen.

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

Zero write, ook bekend als Low Level Format. U kunt dit meestal alleen doen met een schijfhulpprogramma van de fabrikant. Als een harde schijf defect is en deze fout veroorzaakt, kan hij bijna onmiddellijk terugkomen.

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

Je moet een programma gebruiken dat naar elke sector van de schijf schrijft. Anders is er geen manier om het te doen. Als de schijf een vrije sector toewijst en remapt, welke data moet hij dan in de vrije sector zetten? Hij heeft geen idee, omdat de poging om van de bestaande sector te lezen mislukt is. Alleen een schrijfoperatie kan de fout opheffen.

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

Om een andere oplossing toe te voegen, heb ik onlangs Victoria gebruikt om 2 schijven te repareren die faalden met pending sectors, maar de schijf wilde ze niet uit zichzelf opnieuw toewijzen.

Victoria is een laag niveau grafische interface naar uw schijf, en omvat (als je echt wilt!) de werkelijke byte byte bewerken van de schijf, forceer sector remapping op mislukkingen, ondersteunt USB-drives en die goedkope China-bay USB-2-sata adapters, wijzigen fabrieksinstelling slimme attributen en functies, en nog veel meer.

Het nadeel - het is ontwikkeld door een Russische ontwikkelaar, en ik laat het aan jou over om die doos van Pandora te openen als je er problemen mee hebt…

Met Victoria, pakte ik de eerste sector die niet remapte, deed een “Read” scan van elke sector daarna met een force remap. Ik heb toen een “Verify” van de hele schijf gedaan, de smart check opnieuw gedaan, en het is nu in orde…

…Maar, ik heb reserve schijven, dus ik ben ze nu aan het omwisselen. Dit was een beetje eng, omdat ik ook tussen backup oplossingen zit, van alle tijden!