Journal Secteurs défectueux

19
15
fév.
2015

Avec des disques durs des millions de fois plus vastes qu'en 1990, la problématique des secteurs défectueux est devenu aiguë : on va pas se laisser emm… par un secteur défectueux sur un milliard!

Bref, j'ai découvert avec un premier secteur défectueux dans un disque USB externe de 500Go qu'il y a encore des disques qui ne ré-allouent pas automatiquement les secteurs à problèmes. Du coup, ce secteur continue de poser problème, alors que la réserve de secteurs sains du disque n'est pas touchée. Que diantre!

Alors le 'ternet du coin m'a appris un truc : dans ces cas-là, il faut écrire dans ce secteur défectueux, ça force sa ré-allocation. En pratique, si on a un message de ce genre dans le dmesg :

I/O error, dev sda, sector 65849819

On peut vérifier que c'est bien ce secteur qui est illisible :
hdparm --read-sector 65849819 /dev/sda

Si ça se confirme, on peut forcer sa ré-allocation en l'écrasant (vous loupez pas, vous risquez d'abimer le système de fichiers) :
hdparm --write-sector 65849819 --yes-i-know-what-i-am-doing /dev/sda

Tout ça est très bien, mas je suis tombé sur un disque têtu, qui avait une trentaine de secteurs ripoux. J'allais quand même pas me taper le sale boulot à la mimine, j'ai donc automatisé la détection/réallocation :

    export i=0;
    while true;
    do
      echo -n "$i ";
      if dd if=/dev/sda of=/dev/null count=1 skip=$i 2>/dev/null;
      then  echo OK ;
      else echo KO; hdparm --write-sector $i --yes-i-know-what-i-am-doing /dev/sda ;
      fi;
      let i+=1;
    done

Comme d'hab, l'utilisez pas sans comprendre : il faut remplacer sda par le disque concerné, et on peut commencer qu'au secteur qui nous intéresse…

  • # Il ne le ré-alloue pas s'il n'arrive pas a le lire...

    Posté par (page perso) . Évalué à 9.

    Le disque dur ne ré-alloue pas un secteur qu'il n'arrive pas a lire. Ça te laisse une (petite) chance de récupérer tes données en insistant.
    Il serait aussi bon de préciser que "hdparm --write-sector" va écrire des 0 a la place du secteur défectueux. Donc adieu les données qui sont dessus !.
    Au final, si le disque doit être reformaté, plutôt que d'essayer de lire tout le disque pour ensuite ré-écrire chaque secteur défectueux, autant écrire sur l'intégralité du disque, (a coupler éventuellement avec "smartctl -t long" avant et après pour vérification)

  • # Ré-allocation

    Posté par . Évalué à 10.

    Personnellement quand j'ai un disque qui commence à présenter des secteurs défectueux, il est immédiatement ré-alloué à la déchetterie.

    • [^] # Re: Ré-allocation

      Posté par (page perso) . Évalué à 6.

      La derniere fois que ça m'est arrivé, j'ai fait un write zero to disk. Depuis, plus de problème avec ce disk, il est stable. Par contre tour mes disques sont en raid pour éviter de me retrouver sans PC, toutes mes données sont backupė 2 fois.
      Le seul disque qui n'est pas en raid pour des questions de performance, c'est le ssd qui contient le système.

    • [^] # Re: Ré-allocation

      Posté par . Évalué à 7.

      J'ai un disque qui commençait a avoir des secteur défectueux.

      Je lance un test smartctl -> le test abort en cours de route. Donc oui s'il y a des secteurs défectueux visible ca sent mauvais.

      En plus s'il n'arrive pas a les masquer automatiquement, ca veut dire que le firmware du disque est moisi.

      Bref a part s'en servir pour faire du cache sur des données facilement retrouvable, le disque est a jeter.

    • [^] # Re: Ré-allocation

      Posté par (page perso) . Évalué à 1.

      Le jeter direct pour un secteur qu'il n'arrive pas lire ? Bravo !

      pour info, un secteur qu'il n'arrive pas a lire veut juste dire que les données sur se secteur on été modifiée (pourquoi : démagnétisation, rayon cosmique, etc) et que le checksum du secteur n'est plus bon.

      Mais pas que le secteur n'est plus utilisable… Il est très rare que le secteur soit ré-alloué après une réécriture. Il est généralement simplement réécrit avec des données valide (j'entends, avec un checksum correct sur le secteur au niveau du contrôleur du disque) et c'est reparti… Il suffit de regarder les données retournées par SMART pour s'en convaincre…

      Avec nos disques qui contiennent des gazillons de secteurs qui sont très rarement écrit, c'est normal que de temps en temps, un secteur ci ou là ne soit plus lisible au bout d'un certain temps…

      C'est pourquoi les nouveau système de fichiers comme BTRFS ou ZFS intègre des code de correction et des checksum sur le fichiers. Ça permet de réparer le fichier si justement, un secteur n'est plus lisible…

      L'approche de ce journal est bonne. Pas besoin de jeter le disque, il suffit de réécrire… Par contre, personnellement, quand j'utilisais du RAID mirroir, pour ne pas perdre de données, je copiait le secteur depuis l'autre disque. (C'est un des autres avantages des systèmes BTRFS ou ZFS par rapport au RAID. ils savent repérer les erreurs au niveau donnée, et savoir entre deux copies, laquelle est la bonne. En RAID, si le disque est corrompu (genre un secteur a zero), mais pas HS, on a perdu tout !)

  • # Pendant ce temps chez ext

    Posté par . Évalué à 10.

    La suite d'utilitaires apportés par le paquet e2fsprogs contient nombre d'outils dédiés à cette tache et non particulièrement liés aux systèmes de fichiers ext[234].

    Le programme badblocks convient pour tous systèmes de fichiers. Il permet de détecter les secteurs défectueux et même de les lister dans un fichier:

    # badblocks -svn -o MÉCHANTS_SECTEURS.txt /dev/sda

    Si il vient ensuite l'idée de créer un système de fichier ext tout en évitant ces secteurs défectueux:

    # mke2fs -l MÉCHANTS_SECTEURS.txt /dev/sda

    On peut aussi lancer la détection des secteurs défectueux lors de la vérification du système de fichiers:

    # e2fsck -vc /dev/sda1

    Comme souvent, il y a une page Wiki Archlinux pour ça™.

    • [^] # Re: Pendant ce temps chez ext

      Posté par (page perso) . Évalué à 1.

      Ça marche bien ce genre d'outil ? Ma (petite) expérience m'a plutôt laissé l'impression que les secteurs défectueux avaient tendance à contaminer leurs voisins. Et je rêvais à l'époque d'un utilitaire pour dire "interdiction d'utiliser les 50 secteurs autours de celui là"…

      • [^] # Re: Pendant ce temps chez ext

        Posté par . Évalué à 3.

        Oui plutôt bien cela permet même de ressusciter des vieux portables :)

        J'ai réussi à remettre d'aplomb un vieux PC qui avait la moitié et peut être plus du disque en vrac
        badblock à tout corrigé et le PC et redevenu utilisable.

        Bon c'était pour le fun car il ne devrait rester que 40 Go sur les 120 d'origine, bon j'ai juste réinstallé une distro dessus et c'est tout … peut être qu'il aurait claqué le reste dans la journée qui suivait

        Honnêtement c'est le genre d'utilitaire qu'il faudrait tester au moins une fois, tout comme photorec AVANT d'en avoir besoin :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.