J'ai un lecteur qui signale que les secteurs en attente actuels sont "45". J'ai utilisé des badblocks pour identifier les secteurs et j'ai essayé de leur écrire des zéros avec dd .
D'après ce que je comprends, lorsque j'essaie d'écrire des données directement dans les secteurs défectueux, cela devrait déclencher une réallocation, réduisant d'un secteur les secteurs en attente et augmentant le nombre de secteurs réalloués.
Cependant, sur ce disque, les valeurs brutes Reallocated_Sector_Ct et Reallocated_Event_Count sont égales à 0 et dd échoue avec des erreurs d'E / S lorsque j'essaie d'écrire des zéros dans les secteurs défectueux. dd fonctionne bien, cependant, quand j'écris dans un bon secteur.
# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error
Cela signifie-t-il que mon lecteur, en quelque sorte, n'a pas de secteurs de rechange à utiliser pour la réaffectation? Est-ce que mon entraînement est en général une personne terrible? (Le lecteur n'est pas en fait le mien, j'aide un ami. Il se peut qu'il ait obtenu un lecteur bon marché ou quelque chose.)
Dans le cas où cela est pertinent, voici la sortie de smartctl -i :
Model Family: Western Digital Caviar Green (AF)
Device Model: WDC WD15EARS-00Z5B1
Serial Number: WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity: 1,500,301,910,016 bytes [1.50 TB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 2.6, 3.0 Gb/s
Local Time is: Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
MISE À JOUR:
J'ai exécuté shred
sur le disque, ce qui a fait que Current_Pending_Sector passe à zéro. Cependant, Reallocated_Sector_Ct et Reallocated_Event_Count sont toujours nuls, et dd est désormais en mesure d'écrire des données dans les secteurs qu'il ne pouvait pas auparavant. Cela m'amène à plusieurs autres questions:
Pourquoi les réaffectations ne sont-elles pas récupérées par le disque? Je suppose que la réaffectation a eu lieu car je peux maintenant écrire des données directement dans le secteur et je ne pouvais pas auparavant.
Pourquoi shred a-t-il causé une réallocation et non dd? Le fait que shred écrit des données aléatoires au lieu de simplement des zéros fait-il une différence?
la source
Uncorrectable Sector Count
plus que zéro?Réponses:
Le lecteur WD15EARS (et la plupart des autres lecteurs récemment produits) utilise le format avancé , ce qui signifie que la taille réelle du secteur physique de ce lecteur est de 4 Ko, et que la taille traditionnelle du secteur de 512 octets vient d'être émulée. De ce fait, si un seul secteur physique de 4 Ko devient défectueux, les 8 secteurs de 512 octets émulés correspondants deviennent illisibles à la fois.
(La
Sector Size: 512 bytes logical/physical
sortie desmartctl
n'est pas correcte, car certains disques WD15EARS signalent une taille de secteur physique incorrecte - apparemment, votre disque a une version de firmware qui est cassée à cet égard.)De plus, lorsqu'un seul secteur émulé de 512 octets est écrit, le lecteur Advanced Format doit en fait lire tout le secteur physique de 4 Ko, modifier la partie correspondante de 512 octets, puis écrire tout le secteur physique sur le support. Si le support est bon, cette opération de lecture-modification-écriture provoque juste un ralentissement significatif par rapport à un lecteur avec de vrais secteurs physiques de 512 octets. Cependant, si le secteur physique de 4 Ko est mauvais et ne peut pas être lu, toute opération d'écriture qui ne réécrit pas complètement le secteur échouera. Pour cette raison, vous ne pouvez pas forcer la réallocation de secteur sur de tels disques en utilisant
dd
avecbs=512 count=1
- vous devez utiliser au moinsbs=512 count=8
et vous assurer que le numéro de secteur dans leseek=
L'option est un multiple de 8. (Cela suppose que le cavalier «compatible Windows XP» n'est pas installé, sinon le décalage d'alignement ajouté par ce cavalier doit également être pris en compte.)Une autre raison pour laquelle forcer la réallocation avec
dd
peut échouer est que, par défaut, Linux utilise un cache dans la couche de bloc pour accéder aux périphériques de bloc, ce qui peut provoquer des opérations de lecture-modification-écriture dans le logiciel, qui échoueraient également lorsqu'un secteur illisible est rencontré. Vous pouvez ajouter l'oflag=direct
option de contourner ce cache pour le périphérique spécifié parof=...
(il existe également l'iflag=direct
option, qui s'applique au périphérique d'entrée).la source
J'ai dû le faire récemment et j'ai constaté que l'exécution de shred sur l'ensemble du disque fonctionnait très bien. Bien que le déchiquetage soit inutile pour son usage prévu, sauf sur les disquettes, il fait exactement ce qui est nécessaire pour obtenir l'auto-guérison sur les mauvais blocs.
la source