Journal Interrogation à propos d'une carte compact flash

Posté par  (site web personnel) .
Étiquettes : aucune
0
14
mar.
2008
Bonjour,

j'ai observé récemment un comportement bizarre d'une carte compact flash et j'hésite à la déclarer hors service.

Ma soekris net4801 a depuis deux ans une carte 128Mo avec un système en cramfs. Récemment j'en ai eu marre de pas pouvoir écrire / (cramfs est lecture seule), et j'ai acheté une carte 4Go, pour y stocker le système en ext3 et éventuellement mes données personnelles (mails notamment).

Bref, j'ai donc partitionné cette carte, transféré le système dessus, fait quelques mises à jour... et testé.
Le système a été transféré via cp -a, c'est un système qui marche, donc les problèmes que je décris plus bas ne sont pas software.

Premier problème, le prompt ne m'affichait pas dans quel répertoire je me trouvais, pwd non plus :

root@Alia:# cd /usr/include/
root@Alia:# pwd

root@Alia:#


C'est déjà très inquiétant me direz-vous... après deux heures d'utilisation, la soekris se bloque complètement avec la LED "disk" allumée, je redémarre, la carte est illisible (kernel panic parce que la partition / ne ressemble plus à rien).

Cette fois-ci donc je re-fais mke2fs avec un test complet lecture/écriture, et aucun problème n'est trouvé, je transfère donc le système à nouveau.

Le problème de pwd est réglé. Mais ssh segfaulte dès que j'essaie de m'en servir.
Je réinstalle OpenSSH, ca remarche. Et deux heures plus tard plusieurs fichiers dans /lib deviennent totalement illisibles.

Quelques-uns de mes messages d'erreur si quelqu'un arrive à y comprendre quelque chose :


EXT2-fs error (device hda3): ext2_new_block: Allocating block in system zone - block = 212993

/usr/bin/perl5.8.8: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: Input/output error


EXT2-fs error (device hda3): ext2_check_page: bad entry in directory #24281: unaligned directory entry - offset=0, inode=786432, rec_len=513, name_len=46


Bref, ma grande question est, "est-ce que ma carte est morte" ? J'ai envie de dire oui mais elle est neuve et *parfaitement* lisible pendant une à trois heures, et je trouve ca assez bizarre.

Merci de votre aide :)
  • # cp ?

    Posté par  (site web personnel) . Évalué à 5.

    Je ne sais pas comment tu as copié tes fichiers mais une erreur fréquente est d'oublier de copier les fichier commençant par un ".".

    Si ta soekris est vieille il est possible que son bios influe sur la façon de gérer les nouvelles cartes très rapides par rapport aux anciennes. J'ai eu 2 soekris 4801 qui avait des réactions ultra bizarres sur le réseau dont les problèmes ont été réglé avec un update du bios.

    "La première sécurité est la liberté"

    • [^] # Re: cp ?

      Posté par  (site web personnel) . Évalué à 1.

      Salut,

      (pour le cp tout est ok)

      merci pour ta suggestion, je viens de mettre à jour le BIOS. Vu le temps que j'y ai passé je suis pas motivé pour refaire un essai tout de suite, mais bon, on verra bien.
      En fait mon problème c'est que je sais pas si une carte compact flash _neuve_ peut avoir ces symptômes là, et j'ai du mal à comprendre ce qu'il se passe de toute facon... mais bon j'étais en 1.28 je suis passé en 1.33 et il y a quelques lignes relatives aux trucs flash. Je vais fouiller la ML.

      http://www.soekris.com/software/changelog.txt
      • [^] # Re: cp ?

        Posté par  (site web personnel) . Évalué à 2.

        Je crois avoir vu passé sur la ML des messages concernant des problèmes du à l'utilisation de DMA pour les CF (ce qui n'était pas possible avec les premiers modèles)

        Sois le bios corrige le tout, sois il faut jouer avec hdparm.

        "La première sécurité est la liberté"

        • [^] # Re: cp ?

          Posté par  (site web personnel) . Évalué à 1.

          Effectivement je viens de vérifier et ce post détaille des symptômes très similaires aux miens :
          http://lists.soekris.com/pipermail/soekris-tech/2006-October(...)

          Seulement... hdparm -d /dev/hda renvoyait 0.
          Je ne sais pas si cela diffère de ide=nodma, je vais essayer ca. (Je suis entrain de reformater la carte avec vérification des badblocks. Pour la quatrième fois en deux jours. Grrr.)

          Sinon j'ai un numéro de retour pour la carte mais je n'ai pas l'impression qu'elle soit défectueuse... une idée de comment je pourrais tester autrement que mke2fs -cc ?
          • [^] # Re: cp ?

            Posté par  (site web personnel) . Évalué à 2.

            Si le truc du bios se confirme, le problème provient de la gestion par la soekris et non de la carte. La conception de la soekris remonte à plusieurs années.

            "La première sécurité est la liberté"

          • [^] # Re: cp ?

            Posté par  . Évalué à 1.

            Mettre la cartedans un lecteur USB/CF de ton poste bureautique te permettrait de vérifier ta carte.
  • # chaleur

    Posté par  . Évalué à 2.

    Est ce que ta carte ne chauffe pas "trop" ? Si tu ne peux pas laisser ta main dessus par ce que tu te brûles, tu peux considérer que la carte chauffe trop. Dans ce cas, essaye de la ventiler ou de ne pas utiliser ton système pendant quelques heures pour la faire refroidir.

    Si tu stressais ton HD avec bcp de lectures/ecritures, peut être que la mémoire du HD a trop chauffée.
  • # Quelques pistes

    Posté par  . Évalué à 4.

    Je vois trois causes possibles :

    -1- La carte ne supporte pas correctement le mode de fonctionnement imposé par le contrôleur IDE. C'est très souvent le cas pour les vieilles cartes Compact Flash que j'ai vu (Je n'ai jamais utilisé une carte moderne).
    La norme ATA est implémentée de façon un peu légère; et bien que la carte annonce supporter certains mode; dans la réalité, ça se traduit par des erreurs, et parfois par des pertes de données. Le DMA est particulièrement sensible; mais même en ayant tout désactivé, j'ai encore des erreurs sans gravité sur certaines cartes.

    -2- La carte a des problèmes. Un défaut de fabrication fait qu'une partie des secteurs ne fonctionne pas. Ce problème est difficile à diagnostiquer parce que:
    - Les cartes CF ne supportent quasiment jamais SMART.
    - La carte possède en réalité plus de secteurs que le nombre annoncé et fait en permanence du remappage pour distribuer les écritures; donc un secteur qui était défectueux et illisible redevient correct lors d'une ré-écriture.

    -3- Le contrôleur a un bug qui se déclenche maintenant avec la nouvelle carte, je vois plus haut que le flashage du BIOS a déjà été envisagé.

    Une remarque maintenant. Sur les systèmes à mémoire statique qui ne supportent pas un trop grand nombre d'écriture, on évite généralement d'utiliser un système de fichier journalisé, et on monte les FS en mode noatime pour réduire encore les écritures. Dans un système journalisé, on touche en permanence au journal sur le disque; conduisant à un grand nombre d'écritures.

    Comme dit plus haut, la carte a plus de secteurs que le nombre annoncé et déplace continuellement les blocs lors des écritures pour répartir les écritures sur un maximum de secteurs; mais ça ne fait que retarder le problème
    - cette répartition a des limites, surtout si le système de fichier est bien plein.
    - la détection et le banissement des cellules effectivement mortes n'est pas forcément optimal; ou fait correctement.
    - vu les marges sur ces produits, j'imagine qu'il y a des fabricants de mémoire qui n'hésitent pas à supprimer ce mécanisme ou à le réduire a sa plus simple expression.
    • [^] # Re: Quelques pistes

      Posté par  (site web personnel) . Évalué à 1.

      Une remarque maintenant. Sur les systèmes à mémoire statique qui ne supportent pas un trop grand nombre d'écriture, on évite généralement d'utiliser un système de fichier journalisé, et on monte les FS en mode noatime pour réduire encore les écritures. Dans un système journalisé, on touche en permanence au journal sur le disque; conduisant à un grand nombre d'écritures.

      Oui, je dis ext3 mais c'est évidemment du ext2, qui est évidemment monté en noatime :)
      / sera monté en lecture seule de toute facon, sauf lorsque j'ai une mise à jour à faire.
      (Avec cramfs j'étais obligé de sortir la carte, mettre à jour dans un chroot, recréer l'image et flasher.)

      Merci pour tes suggestions, j'espère que ide=nodma et le nouveau BIOS vont régler ça.... réponse dans quelques heures !
  • # Limiter les cycles d'écritures

    Posté par  (site web personnel) . Évalué à 3.

    Pour prolonger la durée de vie de ta carte flash, je t'invite à lire les astuces et optimisations concernant la limitation des cycles d'écritures sur carte flash.

    Tu peux chercher les sujets liés à l'Asus EEE par exemple.

    A bientôt
    Grégoire

    Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

  • # To wear or not to wear level ?

    Posté par  . Évalué à 3.

    Puisqu'il y a l'air d'avoir des spécialistes ici, j'aimerais savoir si quelqu'un a une réponse claire a mes questions :

    - Effectivement, les mémoires "flash" en général s'usent tres vite quand on écrit toujours au meme endroit
    - MAIS, certains types de cartes implémentent du "wear leveling" en hard (genre les SD, il me semble)
    - MAIS, ce n'est jamais indiqué clairement : par exemple, qu'en est-il des CF ? Et des autres ?
    - Enfin, les cartes faisant du wear leveling en hard devraient donc pouvoir gérer facilement les FS pas faits pour. Or, vu le nombre de SD que j'ai vu foirer apres tres peu de temps, qui étaient, comme d'habitude, formattées en FAT32, ca me parait louche.

    Bref, toutes ces histoires font qu'on ne sait jamais quoi faire, c.a.d. quel FS mettre dessus, et quelle utilisation avoir.

    L'autre probleme, lorsqu'on souhaite utiliser un FS fait pour la Flash (en dehors du fait que généralement elles sont présentées sous forme de périph block, et qu'ils faut bidouiller par 2 modules mtd différents qui va la faire repasser en char, puis encore en block ...), c'est que jffs2 met un temps pas possible a monter les "grosses" cartes, alors qu'aujourd'hui ce qui est intéressant c'est justement d'avoir 4Go en Flash pour pas trop d'euros. Et que logfs n'est toujours pas sorti en stable ...
    • [^] # Re: To wear or not to wear level ?

      Posté par  (site web personnel) . Évalué à 2.

      Moi je te propose une réponse très simple : on s'en fiche du FS. C'est pas le problème.
      Ta partition / n'a absolument pas besoin d'être accessible en écriture, tu mets /var et /tmp dans un tmpfs, et tout marche. C'est ce que j'ai depuis deux ans sur ma soekris (avec une carte en cramfs parce qu'elle était trop petite pour stocker le système).

      Ben évidemment si c'est pour autre chose qu'un système Linux, du genre stocker des données qui changent souvent, ma réponse n'aide pas :)
      • [^] # Re: To wear or not to wear level ?

        Posté par  . Évalué à 2.

        Oui c'est une possibillité, mais pour un usage "desktop" c'est moyen : le seul truc qui fait du bruit dans mon ibook (sous debian, donc la bidouille est faisable), c'est le disque dur. Le remplacer par une grosse flash serait bien, mais les pb d'usure font que je me pose des questions...
    • [^] # Re: To wear or not to wear level ?

      Posté par  . Évalué à 3.

      c'est que jffs2 met un temps pas possible a monter les "grosses" cartes
      Et il te bouffe plein de RAM.

      Et que logfs n'est toujours pas sorti en stable ...
      Y a aussi ubifs a surveiller
  • # La solution...

    Posté par  (site web personnel) . Évalué à 2.

    ... on dirait que le problème est réglé.

    J'ai mis à jour le bios de la soekris (voir plus haut), et démarré le noyau avec ide=nodma, et tout semble OK. Je ne suis pas encore certain à 100% (après tout la dernière fois il a fallu 6 heures pour que ca casse), mais je n'ai aucun message bizarre donc j'ai bon espoir.

    Merci à ceux qui m'ont aidé.

Suivre le flux des commentaires

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