Come forzare una rimappatura dei settori segnalati in SMART C5 (Conteggio attuale del settore in sospeso)?


38

Il valore SMART C5 del mio disco rigido Samsung HM640JJ (in un laptop HP Pavilion dv6) è "stato giallo = attenzione"

C5 era 10 ieri, ed è 21 oggi.

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

Come posso forzare il firmware per riallocarli?

  • Ho rimosso le partizioni, le ho ricreate di nuovo e ho formattato l'intero disco.
  • ho corso chkdsk /r /f
  • Ho eseguito l'utilità di controllo del disco BIOS e altri strumenti di diagnosi / riparazione

Per fare questo uso il disco di avvio spinrite6 al livello 2 .... grc.com/intro.htm
Moab

Risposte:


118

Risposta breve: scrivi qualcosa di nuovo nel settore (anche zeri, cosa che fa un formato lungo).

Risposta lunga

I dischi rigidi oggi cercano di nascondere settori danneggiati dal computer host. Il computer host richiede semplicemente all'unità di restituire i contenuti di un determinato numero di settore. Normalmente l'unità legge il settore, lo restituisce al computer host e tutto va bene.

Il disco rigido sa se il valore letto è valido o meno, poiché utilizza il codice di correzione errori (ECC) per convalidare che i contenuti letti siano corretti. Se l'unità rileva che i contenuti del settore non sono validi, ritenterà la lettura. La speranza è che se lo rilegge semplicemente, potrebbe ottenere i contenuti del settore corretti. Continuerà a riprovare fino a quando non ottiene un buon valore o non viene raggiunto il limite di tempo (formalmente noto come limite di tempo di completamento del comando o CCTL ).

Durante questi tentativi, l'unità apparirà morta; in quanto non risponde più ai comandi .

Settori di riserva

Le unità più moderne contengono numerosi settori "di riserva" (ad es. 1.024 settori di riserva). Se l'unità riconosce un settore come difettoso, smetterà di usarlo. Qualsiasi richiesta di lettura o scrittura in quel settore danneggiato verrà reindirizzata in modo trasparente a un settore di riserva. La delimitazione di un settore danneggiato e la riallocazione dei suoi dati in un settore di riserva è chiamata Evento di riallocazione . E il numero totale di settori che sono stati riallocati (e quindi quanti dei tuoi settori di riserva sono stati esauriti ) è il conteggio dei settori riallocato .

In questo esempio tratto da uno dei miei dischi rigidi, 64 settori sono risultati difettosi. Ciò significa che 64 dei settori di riserva dell'unità sono stati chiamati in uso:

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

Su questo stesso disco rigido, ci sono stati 4 eventi di riallocazione . Ciò significa che ci sono state quattro occasioni in cui l'unità ha contrassegnato i settori come danneggiati e ha invece utilizzato i settori di riserva.

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

E se non riuscisse mai a leggere i dati?

Queste azioni di rilettura di settori, consumo di ricambi, tutto dietro la schiena del computer è una buona cosa. Significa che il sistema operativo host non deve affrontare il problema dei settori in fallimento. L'unità stessa può gestire questi dettagli.

Bonus Chatter : ai vecchi tempi, il tuo disco rigido veniva spedito con un adesivo fissato su di esso. Questo adesivo conteneva l' elenco dei difetti di fabbrica ; l'elenco di tutti i punti negativi noti sul disco.

inserisci qui la descrizione dell'immagine

Se si è eseguito un formato di basso livello dell'unità, è stato necessario utilizzare uno strumento per digitare tutte le posizioni cilindro-testa-settore dei punti difettosi.
Le unità SCSI hanno un comando IOCTL_DISK_REASSIGN_BLOCKSper dire loro di riallocare una posizione errata sull'unità dopo che il sistema operativo l'ha rilevata. Nelle unità IDE tutto ciò avviene automaticamente, senza la necessità di intervento del sistema operativo.

Idealmente, l'unità dovrebbe riconoscere che il settore non funziona, spostare i dati in un settore di riserva e non utilizzare mai più il settore originale. Ma cosa succede se l'unità non è stata in grado di leggere correttamente il settore?

Questo è quello che Pending Sectorssono L'unità ha rilevato che un settore non funziona e deve essere rimappato. Ma non può farlo finché non riesce a leggere correttamente i dati. Quando l'unità sa che un settore è danneggiato e deve essere rimappato, ma non può ancora farlo perché è in attesa di ottenere una buona lettura dal settore: si chiama Conteggio settori in sospeso :

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

Il mio disco rigido ha 2 settori che l'unità riconosce come difettosi, ma non può ancora essere riallocato. Se dovessi leggere uno di questi "settori in sospeso", è probabile che l'unità riprovi (e riprovi, e riprova) e alla fine restituisca un errore di lettura al sistema operativo host:

inserisci qui la descrizione dell'immagine

Rinuncia al settore in sospeso e verrà riallocato

Esistono due modi in cui l'unità può finalmente riallocare il settore e consumare un altro settore di riserva:

  • finalmente ottiene una buona lettura
  • non ti interessa più cosa c'è nel settore

Se l'unità finalmente legge il settore, allora sa che può riallocare il settore.

L'altro modo in cui l'unità può riallocare il settore è se gli fai sapere che i contenuti di quel settore sono irrilevanti; che non ti interessa più cosa c'è dentro. Come si fa a farlo?

Scrivendo qualcosa di nuovo per il settore.

Ogni volta che leggi o scrivi su un settore su un disco rigido, devi leggere / scrivere l' intero settore 1 a 512 byte . Non sei in grado di scrivere solo una parte di un settore. Quando il sistema operativo scrive i dati in un settore, deve specificare l' intero 512 byte. Se dici al disco rigido che vuoi che questi nuovi contenuti rimpiazzino questo settore danneggiato, allora l'unità saprà che non ti interessa nemmeno ciò che è attualmente nel settore danneggiato. Può quindi riallocare un settore danneggiato in uno dei pezzi di ricambio e il settore non è più in sospeso .

Questo è il motivo per cui quando le persone chiedono di averne alcuni Current Pending Sectors, il consiglio comune è quello di utilizzare uno strumento (come Data LifeGuard di Western Digital) per scrivere tutti gli zero sull'unità.

inserisci qui la descrizione dell'immagine

Scrivendo zeri in tutti i settori del disco, stai dicendo al disco che può finalmente riallocare tutti quei fastidiosi settori in sospeso . Dopo la pulizia, tutto ciò Pending Sectorsche diventerai Reallocated Sectors:

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

Nota: non è strettamente necessario utilizzare uno strumento di "basso livello" come Data LifeGuard di Western Digital. Se si indica a Windows di eseguire un formato completo (ovvero un formato non rapido ) di un volume, questo scriverà zero in ogni settore del volume.

Il sistema di archiviazione del sistema operativo supporta la marcatura dei settori come non valida

Forti di questa conoscenza, esploreremo uno scenario comunemente confuso.

Prima dell'avvento di Integrated Drive Electronics (IDE), il sistema operativo host era responsabile del rilevamento di settori danneggiati, riprovare a leggere, spostare i dati in un altro settore e contrassegnare i vecchi settori come negativi.

Se dovessi eseguire un chkdsk /r c:utilizzo del sistema operativo host, riconoscerebbe che i settori "in sospeso" sono danneggiati e li contrassegnerebbe come non validi, senza mai tentare di riutilizzarli:

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

        12 KB in bad sectors.

Supponendo quindi un disco rigido settoriale da 512 byte, 12 KB di 'Settori in sospeso' o, in questo esempio, 12 KB contrassegnati dal sistema operativo come 'settori danneggiati', che corrisponderebbe a 24 decimali o 0x18 esadecimali, come mostrato da un'utilità del disco SMART come Crystal Disk Information:

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

Nota : l'utilità Data LifeGuard v1.31 di Western Digital (aggiornata al 31/08/2017) non sembra mostrare correttamente i valori del contatore SMART "Raw" correnti.

Ora se esegui un formato completo (che scrive zeri in ogni settore del volume) :

inserisci qui la descrizione dell'immagine

Ciò significa che tutti quei settori che sarebbero stati Pendingriallocati. Ora è sicuro che il sistema di archiviazione riutilizzi tali settori. Al fine di indicare al sistema di archiviazione che quei settori non sono più "cattivi" , si esegue un'opzione in cui rivaluta i settori danneggiati:

>chkdsk c: /B

dove dice la documentazione del comando

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

O

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

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

Questo è stato un sacco di sceneggiature, e un sacco di schermate, per qualcosa che non verrà mai letto.


Ho un file da 200 MB che ha un problema all'87%. Ho 3 settori in sospeso. Ho provato a eseguire l'hashing del file per ottenere buone letture e rivendicare settori riallocati, ma non vengono riallocati! Risultati hash: ok, fail, ok, ok, fail, fail. Ogni volta che il sistema operativo ha generato diversi errori del disco nel Visualizzatore eventi e su hash positivi, è rimasto sospeso per mezzo minuto all'87%. Tutti gli hash sono uguali. C5 è ancora 3 e C4 ancora 0. Cosa ne pensi di questo?
Mark Jeronimus,

@MarkJeronimus Prova a utilizzare un file wiper, che scriverà tutti gli zeri (o tutti i dati casuali) nel file. Questo dovrebbe spingere a capire che non ti importa più di quei settori.
Ian Boyd,

Ho fatto un formato completo, ma ancora nessun cambiamento.
Mark Jeronimus

2
Una cosa che non capisco del tutto: è possibile (a) mostrare quali file contengono gli attuali settori C5 e (b) 'nuke' quei settori, cioè spostarli in C6 e smettere di provare a leggerli? Non voglio che il mio HDD rimanga bloccato in un ciclo di lettura senza fine; preferirebbe oscurare quei settori ed eliminare i file in questione (ripristinandoli manualmente da qualche altra fonte se sono importanti).
MM

1
Tuttavia, non voglio azzerare l'intero disco, ma solo aggirare il problema. Daremo un'occhiata a quel programma, grazie
MM

5

Non devi ancora fare nulla. Il conteggio della riallocazione significa "il disco ha riscontrato un settore difettoso e lo ha riallocato con successo ". Il firmware ha già risolto il problema.

Devi solo essere consapevole che l'unità sta iniziando a guastarsi. Ad un certo punto in futuro, all'unità non rimarranno settori di riserva per la riallocazione e si perderanno i dati. Se si perde qualche blocco importante, si potrebbero perdere tutti i dati sul disco.

Quindi tieni d'occhio questo valore o acquista subito un nuovo disco per dimenticartene.


3

Ho avuto una buona esperienza con il metodo descritto qui https://www.smartmontools.org/wiki/BadBlockHowto . Il mio disco faceva rumore e smetteva di funzionare, quindi uso il report intelligente e la formula per calcolare il blocco danneggiato e uso dd per cancellarlo. Sono stato fortunato perché smart sta ancora riportando un conteggio attuale del settore, ma il disco funziona da circa 2 anni. Ho comprato un sostituto ma non l'ho mai usato. Mi sembra che neanche intelligente sia così preciso.


oflag = opzione diretta per dd durante la scrittura di zeri in posizioni errate per forzare la riallocazione (come suggerito in quel link) era la parte che stavo cercando. Grazie!
Anton,

2

Forse non conosci questo strumento: HD Sentinel

Hard Disk Sentinel (HDSentinel) è un software di monitoraggio e analisi SSD multi-OS e HDD. Il suo obiettivo è trovare, testare, diagnosticare e riparare i problemi del disco rigido, segnalare e visualizzare lo stato di SSD e HDD, il degrado delle prestazioni e guasti. Hard Disk Sentinel fornisce una descrizione testuale completa, suggerimenti e visualizza / riporta le informazioni più complete sui dischi rigidi e sui dischi a stato solido all'interno del computer e in contenitori esterni (dischi rigidi USB / dischi rigidi e-SATA). Sono disponibili molti avvisi e opzioni di report diversi per garantire la massima sicurezza dei tuoi dati preziosi.

Questo sembra essere un ottimo strumento per compiere tali azioni. Ma attenzione, alcune opzioni di esecuzione possono distruggere completamente i dati.


1

È necessario utilizzare uno strumento che scrive in ogni settore dell'unità. Altrimenti, non c'è modo di farlo. Se l'unità ha allocato un settore di riserva e rimappato, quali dati dovrebbe inserire nel settore di riserva? Non ne ha idea, poiché il suo tentativo di leggere dal settore esistente è fallito. Solo un'operazione di scrittura può cancellare l'errore.


La formattazione dell'intero disco rigido è un'operazione di scrittura per ogni settore? Ho già formattato l'unità (comando di formattazione basato su Windows, nessun "formattazione rapida"). Grazie
edteke,

2
Un formato rapido non è un'operazione di scrittura in tutti i settori, di solito è un formato normale. Puoi sempre usare DBaN . Il formato normale ha almeno ridotto il conteggio?
David Schwartz,

Ho fatto un formato normale (non un formato rapido), mi aspettavo il conto alla rovescia o un rimappatura dopo il formato, ma il numero era lo stesso. Grazie
edteke,

È molto strano, in realtà. La partizione in cui hai formattato è stata la dimensione dell'intera unità?
David Schwartz,

@edgh: un formato normale non aiuta quando si verifica un errore del genere. Ti suggerisco di provare il mio metodo.
Gigamegs

1

Scrittura zero, altrimenti noto come Formato di basso livello. Di solito è possibile farlo solo con un'utilità del disco del produttore. Se si verifica un errore del disco rigido che causa questo errore, potrebbe tornare quasi immediatamente.


1

Prova i CD di avvio di Spinrite 6 o rigeneratore HDD. Scrivono test di superficie, quindi dovrebbero eliminare i settori danneggiati in sospeso e aumentare il conteggio riallocato.


0

Per aggiungere un'altra soluzione, di recente ho usato Victoria per riparare 2 dischi che non funzionavano con settori in sospeso, ma il disco non li avrebbe rimappati automaticamente da soli.

Victoria è un'interfaccia grafica di basso livello per il tuo disco e include (se vuoi davvero!) L'effettiva modifica byte per byte del disco, impone la rimappatura del settore in caso di guasti, supporta le unità USB e quelle economiche USB-2-sata China-bay adattatori, modifica degli attributi e delle caratteristiche intelligenti impostati in fabbrica e altro ancora.

Il rovescio della medaglia: è sviluppato da uno sviluppatore russo e ti lascio aprire la scatola di Pandora se hai problemi con esso ...

Con Victoria, ho afferrato il primo settore che non è riuscito a rimappare, dopo di che ho eseguito una scansione "Leggi" di ciascun settore con un rimodellamento forzato. Ho quindi eseguito una "Verifica" dell'intero disco, ho eseguito nuovamente il controllo intelligente e ora va bene ...

... Ma ho dei dischi di riserva, quindi sto per sostituirli adesso. Questo è stato un po 'spaventoso, dato che sono sempre tra soluzioni di backup, di tutti i tempi!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.