Réponse courte: Écrivez quelque chose de nouveau pour le secteur (même des zéros - ce que fait un format long).
Réponse longue
Les disques durs d'aujourd'hui essaient de cacher les mauvais secteurs à l'ordinateur hôte. L'ordinateur hôte demande simplement au lecteur de lui renvoyer le contenu d'un numéro de secteur particulier. Normalement, le lecteur lit le secteur, le renvoie à l'ordinateur hôte et tout va bien.
Le disque dur sait si la valeur qu'il a lue est valide ou non, parce que le lecteur utilise le code correcteur d'erreurs (ECC) pour valider que le contenu qu'il a lu est correct. Si le disque détecte que le contenu du secteur n'est pas valide, il réessaiera la lecture. L'espoir est que s'il se contente de le relire, il pourra obtenir le contenu correct du secteur. Il continuera à réessayer jusqu'à ce qu'il obtienne une bonne valeur, ou qu'il ait atteint sa limite de temps (connue officiellement sous le nom de Command completion time limit, ou CCTL _).
Au cours de ces tentatives, le lecteur apparaîtra mort, car il ne répond plus aux commandes .
Secteurs de réserve
La plupart des lecteurs modernes contiennent un certain nombre de secteurs “de réserve” (par exemple, 1 024 secteurs de réserve). Si le lecteur reconnaît qu'un secteur est mauvais, il cessera de l'utiliser. Toute demande de lecture ou d'écriture sur ce secteur endommagé sera redirigée de manière transparente vers un secteur de secours. Ce marquage d'un secteur défectueux, et la réattribution de ses données à un secteur de secours, est appelé événement de réattribution. Et le nombre total de secteurs qui ont été réalloués (et donc combien de vos secteurs de réserve ont été utilisés) est le Compte des secteurs réalloués.
Dans cet exemple tiré d'un de mes propres disques durs, 64 secteurs ont été jugés mauvais. Cela signifie que 64 des secteurs de rechange du disque ont été utilisés :
ID Current Worst Threshold Raw
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
Sur ce même disque dur, il y a eu 4 événements de réaffectation. Cela signifie qu'il y a eu quatre occasions où le disque a marqué des secteurs comme étant mauvais, et a utilisé des secteurs de rechange à la place.
ID Current Worst Threshold Raw
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
Et s'il ne peut jamais lire les données ?
Ces actions de relecture de secteurs, de consommation de secteurs de rechange, tout cela dans le dos de l'ordinateur est une bonne chose. Cela signifie que le système d'exploitation hôte n'a pas à s'occuper de la question des secteurs défaillants. Le lecteur lui-même peut gérer ces détails lui-même.
Bonus Chatter : Autrefois, votre disque dur était livré avec un autocollant. Cet autocollant contenait la Factory Defect List ; la liste de tous les points défectueux connus du disque.
Si vous effectuiez un formatage de bas niveau du disque dur, vous deviez utiliser un outil pour saisir tous les emplacements des mauvais points du secteur de la tête de cylindre.
Les lecteurs SCSI ont une commande, IOCTL_DISK_REASSIGN_BLOCKS
, pour leur dire de réattribuer un mauvais emplacement sur le lecteur après que le système d'exploitation l'ait détecté. Dans les lecteurs IDE, tout cela se produit automatiquement, sans qu'il soit nécessaire d'intervenir sur le système d'exploitation.
Idéalement, le lecteur devrait reconnaître que le secteur est défaillant, déplacer les données vers un secteur de rechange et ne plus jamais utiliser le secteur d'origine. Mais que se passe-t-il si le lecteur n'a pas réussi à lire le secteur ?
C'est ce que sont les Pending Sectors
. Le lecteur a détecté qu'un secteur est défaillant et doit être redirigé vers un secteur de secours. Mais il ne peut pas le faire tant qu'il n'a pas réussi à lire les données. Lorsque le lecteur sait qu'un secteur est mauvais et doit être redéfini, mais qu'il ne peut pas encore le faire parce qu'il attend d'obtenir une bonne lecture du secteur : c'est ce qu'on appelle le Compte des secteurs en attente :
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
Mon disque dur a 2 secteurs que le disque reconnaît comme mauvais, mais qui ne peuvent pas encore être réalloués. Si vous deviez lire l'un de ces “secteurs en attente”, le disque dur réessaierait probablement (et réessaierait, et réessaierait), et retournerait finalement une erreur de lecture au système d'exploitation hôte :
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
Abandonnez le secteur en attente et il sera réattribué
Il y a deux façons pour que le lecteur puisse finalement réattribuer le secteur, et consommer un autre secteur de rechange :
- il obtient finalement une bonne lecture
- vous ne vous souciez plus de ce qu'il y a dans le secteur
Si le lecteur a finalement lu le secteur, alors il sait qu'il peut réattribuer le secteur.
L'autre façon dont le lecteur peut réattribuer le secteur est de lui faire savoir que le contenu de ce secteur n'est pas pertinent, que vous ne vous souciez plus de ce qu'il contient. Comment faire cela ?
En écrivant quelque chose de nouveau dans le secteur.
Chaque fois que vous lisez ou écrivez dans un secteur d'un disque dur, vous devez lire/écrire le entier secteur de 512 octets1. Vous ne pouvez pas écrire seulement partie d'un secteur. Lorsque le système d'exploitation écrit des données sur un secteur, il doit spécifier le entier 512 octets. Si vous dites au disque dur que vous voulez que ces nouveaux contenus remplacent ce mauvais secteur, le disque sait alors que vous ne vous souciez même pas de ce qui se trouve actuellement dans le mauvais secteur. Il peut alors Réattribuer un mauvais secteur à l'une des pièces de rechange, et le secteur n'est plus en attente.
C'est pourquoi, lorsque les gens demandent ayant des Current Pending Sectors
, le conseil habituel est d'utiliser un outil (tel que Data LifeGuard de Western Digital) pour écrire tous les zéros sur le disque.
> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.
12 KB in bad sectors.
En écrivant des zéros sur chaque secteur du disque, vous dites au disque qu'il peut enfin réattribuer tous ces satanés secteurs en attente. Après l'effacement, tous vos Pending Sectors
deviendront Reallocated Sectors
:
ID Attribute Name Current Worst Threshold Raw
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18
Note: Il n'est pas strictement nécessaire d'utiliser un outil “de bas niveau” comme le Data LifeGuard de Western Digital. Si vous demandez à Windows d'effectuer un format plein (c'est-à-dire un format non rapide) d'un volume, il écrira des zéros dans chaque secteur du volume.
Le système de classement du système d'exploitation permet de marquer les secteurs comme mauvais
Fort de cette connaissance, nous allons explorer un scénario communément déroutant.
Avant l'avènement de Integrated Drive Electronics (IDE), le système d'exploitation hôte était chargé de détecter les secteurs défectueux, de réessayer les lectures, de déplacer les données vers un autre secteur et de marquer les anciens secteurs comme étant défectueux.
Si vous deviez exécuter un chkdsk /r c:
en utilisant le système d'exploitation hôte, il reconnaîtrait que les secteurs “en attente” sont mauvais, et les marquerait comme tels, et n'essaierait plus jamais de les utiliser :
>chkdsk c: /B
Ainsi, en supposant un disque dur à secteurs de 512 octets, 12 Ko de “secteurs en attente” ou, dans cet exemple, 12 Ko marqués par le système d'exploitation comme “mauvais secteurs”, cela correspondrait à la décimale 24 ou à l'hexadécimale 0x18 comme le montrerait un S. M.A.R.T. comme Crystal Disk Information :
/B NTFS only: Re-evaluates bad clusters on the volume
(implies /R)
Note : L'utilitaire Data LifeGuard v1.31 de Western Digital (le plus récent date du 31 août 2017) ne semble pas afficher correctement les valeurs “brutes” actuelles du compteur S.M.A.R.T.
Maintenant, si vous effectuez un format complet (qui écrit des zéros dans chaque secteur du volume) :
/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.
Cela signifie que tous les secteurs qui étaient à Pending
vont être réattribués. Le système de classement peut désormais utiliser à nouveau ces secteurs en toute sécurité. Afin d'indiquer au système de classement que ces secteurs ne sont plus “mauvais”, vous exécutez une option qui réévalue les mauvais secteurs :
où la documentation de la commande indique
Ou
Selon https://technet.microsoft.com/en-us/library/cc730714(v=ws.11).aspx
C'est beaucoup d'écriture, et beaucoup de captures d'écran, pour quelque chose qui ne sera jamais lu.