Le système de fichiers des secteurs défectueux du disque dur dépend-il?


3

Je me demandais où les secteurs défectueux sont stockés sur le disque dur: - dans une zone indépendante du système de fichiers, de sorte que si le disque dur est à nouveau formaté avec un système de fichiers identique / différent, il sera affiché comme défectueux?

Je pose cette question parce que le disque dur de mon enregistreur numérique enregistreur affichait un comportement anormal. J'ai donc connecté le disque dur à mon PC. Cependant, comme il utilise un système de fichiers propriétaire (XTV), je l'ai formaté avec NTFS et j'ai publié CHKDSK / F / R. pour vérifier les secteurs: en conséquence, 24 secteurs ont été marqués comme mauvais.

Démonté le disque et branché sur le PVR, le disque a été réinitialisé avec le système de fichiers XTV.

À ce stade, je me demande si les secteurs marqués comme mauvais sont toujours signalés ou non.


En plus des réponses que vous obtenez et de ce que vous faites pour réparer / remplacer le disque: vous voudrez peut-être examiner le comportement du disque dur du PVR: certains d'entre eux ont leur disque dur en marche quand ce n'est pas nécessaire. Surtout si elles écrivent sans nécessité, ce qui réduit la durée de vie du disque. Je ne trouvais pas beaucoup d'informations sur Google pour "" enregistreur vidéo à disque dur "fonctionnant tout le temps" ", mais si vous envisagez de remplacer le disque, envisagez également de remplacer l'intégralité du PVR. Tenez également compte de votre facture d'électricité.
Jan Doggen

1
En général, le microcode de disque de bas niveau et le système de fichiers ont de mauvaises stratégies de secteur. Le microcode utilisera les secteurs "de réserve" dont il dispose (dont certains pourraient très probablement avoir été utilisés pour des défauts de fabrication), tandis que le système de fichiers "affectera" (à nouveau, "en général") les secteurs défectueux qu'il a trouvés (essentiellement après la "réserve" déborde) vers un secteur "fichier" défectueux. Étant donné que des défauts de surface ont peut-être été détectés lors du formatage de la fabrication, quelques secteurs défectueux dans la zone "en réserve" ne sont pas nécessairement un indice du problème, bien que 24 soit probablement plus que "quelques".
Daniel R Hicks

Réponses:


2

Les secteurs de disque défectueux sont indépendants du système de fichiers .

Il existe deux listes de secteurs défectueux qui sont stockées sur le disque dans la zone appelée SystemArea, qui figure également sur le plateau et vient avant les secteurs accessibles par l'utilisateur (par exemple, le système d'exploitation) et elles sont gérées par le disque lui-même. Leurs noms sont P-List et G-List. La P-List est une liste primaire qui est écrite en permanence sur le disque après sa fabrication et son test par des secteurs défectueux. La G-List est une liste développée qui est gérée et maintenue à la volée. Après un certain temps, les secteurs peuvent se détériorer magnétiquement, ce qui est tout à fait normal , ou peuvent se détériorer du fait d’erreurs ECC. Avec ces causes et toutes autres causes à la volée, la G-List garde la trace des secteurs défectueux que vous pouvez voir. Il existe bien sûr certains outils de disque sur lesquels vous ne pouvez manipuler que les G-List et les G-List. Vous ne pouvez pas modifier le contenu de la liste de diffusion.

Un système de fichiers peut également suivre les secteurs défectueux. Vous pouvez penser à cela comme à des considérations de vitesse d'accès. Et ce mécanisme de suivi dépend des services financiers, malheureusement. Nous ne pouvons pas dire "Oh, mon fs garde le suivi des secteurs défectueux correctement" jusqu'à ce que nous voyions le code source de ce fs lui-même. Nous ne savons pas s'il met à jour G-List à partir du disque ou non, lors de l'émission d'un format de disque ou d'une vérification de disque, comme il se doit, pour la synchronisation avec de vrais secteurs défectueux.

Pour revenir à votre question initiale, un système de fichiers doit être l’une des parties les plus sophistiquées d’un système d’exploitation et votre système de fichiers XTV devrait, si cela se produisait, avec les suivis physiques des secteurs défectueux.


Droite. Certains systèmes de fichiers reconnaîtront qu'un secteur défectueux est remappé par le microcode de disque et ignoreront l'utilisation de tout ce bloc afin que les performances du disque ne soient pas affectées.
Daniel R Hicks

@The_aLiEn, ce que vous avez écrit semble contredire la réponse de Sergey ... il dit que des secteurs défectueux sont conservés dans les structures de système de fichiers ... Qui sait si la liste de diffusion est mise à jour une fois qu'une erreur est détectée au niveau du système de fichiers?
Riccardo

1
@ Riccardo sa déclaration n'est pas fausse mais un peu courte. Comme j'essayais de le dire, un système de fichiers peut et devrait et, comme nous le savons tous, conserve le suivi des secteurs défectueux sur lui-même. Mais ce n’est pas le seul endroit où les secteurs sont suivis. Le suivi de FileSystem est un logiciel. Le matériel pow est les listes que j'ai mentionnées ci-dessus. Et encore une fois: We don't know whether it updates G-List from the disk or not when issuing a disk format or a disk check, **as it should**, to sync with real bad sectors.un système de fichiers doit se synchroniser avec la G-List, où sync signifie bidirectionnel;)
The_aLiEn

2
J'ai reçu une déclaration d'un technicien du WDC, affirmant que la G-List était mise à jour lorsque le système d'exploitation trouvait un secteur défectueux
Riccardo

Ce sont de bonnes nouvelles. Cela signifie que nous savons maintenant que les systèmes de fichiers sur le marché ont en fait des implémentations pour le suivi du secteur défectueux au niveau du matériel que je désignais comme "il le devrait". Mais, je m'en tiens à mon argument initial, c'est le système de fichiers qui [devrait] mettre à jour [s] la G-List et le système de fichiers sujet XTV doit avoir cette implémentation. Pas besoin d'être trop méfiant à ce sujet, je pense qu'il fait son travail pour toutes ces synchronisations.
The_aLiEn

1

La meilleure chose à faire avec un disque qui a déjà 24 secteurs défectueux est de le jeter et de le remplacer par un nouveau (espérons que votre enregistreur vidéo personnel n’est pas verrouillé sur un disque particulier et acceptera un tel remplacement). Si le disque commence à mal tourner, le processus ne s’arrête généralement pas et vous verrez bientôt des milliers de secteurs défectueux ou une défaillance complète du disque. Sinon, le disque risque de devenir très lent, ce qui entraînera un enregistrement ou une lecture interrompu lors de son utilisation dans un enregistreur numérique.

En ce qui concerne votre question, la CHKDSK /F /Rcommande marque les secteurs défectueux uniquement au niveau du système de fichiers - les informations relatives à ces secteurs sont stockées uniquement dans des structures NTFS et sont perdues lors du reformatage du disque. Donc, maintenant vous avez un disque avec 24 secteurs illisibles, mais votre enregistreur numérique n'en sait rien, et essaiera avec plaisir d’utiliser ces secteurs.

Cependant, les disques durs peuvent effectuer un remappage de secteurs défectueux. Une «liste de défauts développés» est également stockée sur le disque lui-même. Elle est utilisée pour rediriger les tentatives d'accès à des secteurs défaillants vers une zone vide. Ce remappage n'est visible par l'ordinateur (ni par aucun autre périphérique utilisant le disque), sauf lors de l'utilisation d'utilitaires spéciaux de bas niveau.

Le remappage est généralement déclenché par une tentative d'écriture dans un secteur précédemment illisible par le disque. Donc, vous pouvez essayer d’ignorer le problème et d’espérer le mieux, car votre enregistreur numérique ne devrait pas essayer de lire les secteurs qu’il n’avait pas encore écrits après le reformatage, et le disque connaît ces 24 secteurs défectueux (car il a essayé de les lire pendant le CHKDSKtest) et doit les remapper lorsque des données y sont écrites. Bien sûr, cela n’aidera pas si certains autres secteurs se détériorent plus tard (ce qui est très susceptible de se produire avec un disque qui a commencé à casser).

Vous pouvez également aller sur le site Web du fabricant du disque et télécharger un utilitaire de test de disque (par exemple, SeaTools pour un disque Seagate), puis attacher le disque à votre ordinateur et effectuer un test complet du support. Cet utilitaire peut forcer le disque à reconfigurer les secteurs défectueux afin que le disque ne semble pas avoir de secteurs défectueux lorsqu’un accès y est effectué normalement (du moins tant qu’aucun autre secteur défectueux n’apparaît en raison de la détérioration continue du disque). Si le disque est dans un état particulièrement défectueux, l’utilitaire peut indiquer qu’il doit être remplacé (mais le fait d’avoir plusieurs secteurs défectueux qui pourraient être remappés n’est généralement pas considéré comme un problème grave par ces utilitaires).

Notez que si vous choisissez d'exécuter l'utilitaire de test du fabricant du disque, vous devez connecter le disque directement à un contrôleur SATA (ou à un IDE, si votre disque et votre ordinateur sont aussi anciens), et non via un adaptateur externe doté d'une interface USB ou FireWire. parce que l'utilitaire de disque doit pouvoir envoyer sur le disque des commandes ATA arbitraires, ce qui n'est pas possible avec de nombreuses puces de contrôleur USB-SATA ou FireWire-SATA (et même si cela est possible, il est fort probable que l'utilitaire ne la prend pas en charge). Dans certains cas, vous devrez peut-être également modifier les paramètres du BIOS pour que l’utilitaire de disque fonctionne (par exemple, désactivez le mode AHCI ou RAID si ils ne sont pas pris en charge par l’utilitaire); dans ce cas, vous devez être particulièrement attentif à la restauration de ces paramètres, sinon votre système d'exploitation risque de ne plus démarrer (ou, pire, une matrice RAID peut être détruite si le mode RAID est utilisé).


0

En résumé, si vous observez des blocs défaillants dans l’un des systèmes de fichiers, il est probable que la zone de service pour rediriger le secteur défectueux est saturée. Je suggère que vous donniez à cet ennemi HDD)).

Voir l'erreur de disque sur Eventlog:

powershell Get-Eventlog system -newest 10 -EntryType Error -Source Disk

Voir tous les événements de disque sur eventlog:

powershell Get-Eventlog system -Source Disk

Testez le statut SMART, smartChk.vbs:

Dim strComputer 
Dim strLogin 
Dim strPassword 
On Error Resume Next 

strComputer = "."

If strLogin = "" or strComputer = "." then 
   Set    objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI") 
else 
   Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
   Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _ 
  "root\CIMV2", _ 
  strLogin, _ 
  strPassword, _ 
  "MS_409") 
end If 

Set    SmartDataItems = objWMIService.ExecQuery("SELECT * FROM MSStorageDriver_FailurePredictData", "WQL", 48) 

    InstanceName = Array() 
    SmartData = Array() 
    SmartLength = Array() 
    RowCount = 0 
    For Each objItem In SmartDataItems 
      Redim Preserve InstanceName(RowCount) 
      InstanceName(RowCount) = objItem.InstanceName 
      Redim Preserve SmartData(RowCount) 
      SmartData(RowCount) = objItem.VendorSpecific 
      Redim Preserve SmartLength(RowCount) 
      SmartLength(RowCount) = objItem.Length 
      RowCount = RowCount + 1 
Next 
Set    SmartDataItems = Nothing 

ThresholdData = Array() 
Redim Preserve ThresholdData(RowCount) 
PredictFailure = Array() 
Redim Preserve PredictFailure(RowCount) 
Reason = Array() 
Redim Preserve Reason(RowCount) 

RowCount = 0 
    Set    ThresholdItems = objWMIService.ExecQuery("SELECT * FROM MSStorageDriver_FailurePredictThresholds", "WQL", 48) 
For Each objItem In ThresholdItems 
      ThresholdData(RowCount) = objItem.VendorSpecific 
      RowCount = RowCount + 1 
Next 
Set    ThresholdItems = Nothing 

RowCount = 0 
    Set    PredictStatusItems = objWMIService.ExecQuery("SELECT * FROM MSStorageDriver_FailurePredictStatus", "WQL", 48) 
    For Each objItem In PredictStatusItems 
          PredictFailure(RowCount) = objItem.PredictFailure 
          Reason(RowCount) = objItem.Reason 
          RowCount = RowCount + 1 
    Next 
Set    PredictStatusItems = Nothing 

Set oDict = CreateObject("Scripting.Dictionary") 
CreateDict(oDict) 

Set objFSO = CreateObject("Scripting.FileSystemObject") 

If strComputer = "." then 
   Set objTextFile = objFSO.OpenTextFile("HDD_Smart.csv", 2, True) 
else 
   Set objTextFile = objFSO.OpenTextFile("HDD_Smart_" & strComputer & ".csv", 2, True) 
end If 

For CurrentDisk = 0 to RowCount - 1 
     objTextFile.WriteLine("Drive: " & Replace(Mid(InstanceName(CurrentDisk), 9, InStr(InstanceName(CurrentDisk), "__") - 9), "_", " ")) 
     objTextFile.WriteLine("PredictFailure: " & PredictFailure(CurrentDisk)) 
     objTextFile.WriteLine("Reason: " & Reason(CurrentDisk)) 
     objTextFile.WriteLine("ID;Attribute;Type;Flag;Threshold;Value;Worst;Raw;Status;") 
     aSmartData = SmartData(CurrentDisk) 
     aThresholdData = ThresholdData(CurrentDisk) 

     If IsArray(aSmartData) AND IsArray(aThresholdData) Then 
         LastID = 0 
         For x = 2 To SmartLength(CurrentDisk) + 2 Step 12 
              If LastID > aSmartData(x)  then 
                 x = 514 
              else 
                 LastID = aSmartData(x)                      

              If aSmartData(x) <> 0 Then 
                  objTextFile.Write(aSmartData(x) & ";") 
                  If oDict.Item(aSmartData(x)) = "" Then 
                        objTextFile.Write("VendorSpecific(" & aSmartData(x) & ");") 
                  else 
                        objTextFile.Write(oDict.Item(aSmartData(x)) & ";") 
                  end If 

                  If aSmartData(x + 1) MOD 2 Then 
                        objTextFile.Write("Pre-Failure;") 
                  Else 
                        objTextFile.Write("Advisory;") 
                  End If 

'                      objTextFile.Write(aSmartData(x + 1) & ";") 
                  aFlag = aSmartData(x + 1) 
                  txtFlag = "" 
                  If (aFlag And &H1) <> 0 Then txtFlag = "LC," End If 
                  If (aFlag And &H2) <> 0 Then txtFlag = txtFlag & "OC," End If 
                  If (aFlag And &H4) <> 0 Then txtFlag = txtFlag & "PR," End If 
                  If (aFlag And &H8) <> 0 Then txtFlag = txtFlag &  "ER," End If 
                  If (aFlag And &H10) <> 0 Then txtFlag = txtFlag &  "EC," End If 
                  If (aFlag And &H20) <> 0 Then txtFlag = txtFlag &  "SP," End If 
                  If txtFlag <> "" then 
                     txtFlag = Left(txtFlag, Len(txtFlag)-1 ) 
                  end If 
                  objTextFile.Write txtFlag & ";" 

                  objTextFile.Write(aThresholdData(x + 1) & ";") 'Threshold 
                  objTextFile.Write(aSmartData(x + 3) & ";")      'Value 
                  objTextFile.Write(aSmartData(x + 4) & ";")      'Worst 
                  objTextFile.Write((aSmartData(x + 8) * 65536 + aSmartData(x + 7) * 4096 + aSmartData(x + 6) * 256 + aSmartData(x + 5)) & ";")      'Raw 
                  If aSmartData(x + 3) >= aThresholdData(x + 1) Then 
                       objTextFile.WriteLine("OK;") 
                  else 
                       objTextFile.WriteLine("NOT OK;") 
                  end If 
              end If 
              end If 
         Next 
         else 
             objTextFile.WriteLine("NO DRIVE WITH SMART FOUND;") 
         end If 
         objTextFile.WriteLine 
    Next 

    objTextFile.WriteLine 
    objTextFile.WriteLine("LC - life critical;") 
    objTextFile.WriteLine("OC - online collection;") 
    objTextFile.WriteLine("PR - performance related;") 
    objTextFile.WriteLine("ER - error rate;") 
    objTextFile.WriteLine("EC - event count;") 
    objTextFile.WriteLine("SP - self preserving;") 
    objTextFile.Close 

    Wscript.echo "HDD_SMART Is Done!" 

Function CreateDict(oDict) 
    oDict.Add 1, "Raw Read Error Rate" 
    oDict.Add 2, "Throughput Performance" 
    oDict.Add 3, "Spin-Up Time" 
    oDict.Add 4, "Start/Stop Count" 
    oDict.Add 5, "Reallocated Sectors Count" 
    oDict.Add 6, "Read Channel Margin" 
    oDict.Add 7, "Seek Error Rate Rate" 
    oDict.Add 8, "Seek Time Performance" 
    oDict.Add 9, "Power-On Hours (POH)" 
    oDict.Add 10, "Spin Retry Count" 
    oDict.Add 11, "Recalibration Retries Count" 
    oDict.Add 12, "Device Power Cycle Count" 
    oDict.Add 13, "Soft Read Error Rate" 
    oDict.Add 184,"End-to-End error"
    oDict.Add 187,"Reported UNC Errors"
    oDict.Add 190,"Airflow Temperature (WDC)"
'    oDict.Add 190, "HDA Temperature" 
    oDict.Add 191, "G-Sense Error Rate Frequency" 
    oDict.Add 192, "Power-Off Park Count" 
    oDict.Add 193, "Load/Unload Cycle Count" 
    oDict.Add 194, "HDA Temperature" 
    oDict.Add 195, "Hardware ECC Corrected Count" 
    oDict.Add 196, "Reallocated Event Count" 
    oDict.Add 197, "Current Pending Sector Count" 
    oDict.Add 198, "Off-Line Scan Uncorrectable Sector Count" 
    oDict.Add 199, "UltraDMA CRC Error Count" 
    oDict.Add 200, "Write Error Rate" 
    oDict.Add 201, "Soft Read Error Rate" 
    oDict.Add 202, "Address Mark Errors Frequency" 
    oDict.Add 203, "ECC errors (Maxtor: ECC Errors)" 
    oDict.Add 204, "Soft ECC Correction" 
    oDict.Add 205, "Thermal Asperity Rate (TAR)" 
    oDict.Add 206, "Flying Height" 
    oDict.Add 207, "Spin High Current" 
    oDict.Add 208, "Spin Buzz" 
    oDict.Add 209, "Offline Seek Perfomance" 
    oDict.Add 210, "Vibration During Write" 
    oDict.Add 211, "Vibration During Read" 
    oDict.Add 212, "Shock During Write" 
    oDict.Add 220, "Disk Shift" 
    oDict.Add 221, "G-Sense Error Rate" 
    oDict.Add 222, "Loaded Hours" 
    oDict.Add 223, "Load/Unload Retry Count" 
    oDict.Add 224, "Load Friction" 
    oDict.Add 225, "/Unload Cycle Count" 
    oDict.Add 226, "Load 'In'-time" 
    oDict.Add 227, "Torque Amplification Count" 
    oDict.Add 228, "Power-Off Retract Cycle" 
    oDict.Add 230, "GMR Head Amplitude" 
    oDict.Add 231, "Temperature"
    oDict.Add 240, "Head Flying Hours" 
    oDict.Add 250, "Read Error Retry Rate" 
End Function 

Avoir des secteurs illisibles ne signifie pas que la zone disponible est pleine - le remappage est effectué uniquement lorsqu'un secteur défectueux est réécrit (ou, dans de très rares cas, lorsque le disque a réussi à lire un secteur après un grand nombre de tentatives). Cependant, si vous avez des erreurs d' écriture , le disque doit absolument être déplacé vers une corbeille.
Sergey Vlasov

@SergeyVlasov Avec cela, vous pouvez enlever la plaque de recouvrement et saupoudrer sur de l'alcool ou de l'eau))) Pourquoi juste dans le seau?
STTR
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.