De nombreuses cartes SD sont plutôt fragiles. J'ai eu un pi pendant environ 2 ans maintenant et les principaux échecs étaient dus à la carte SD corrompue pour une raison ou une autre.
Je me demande s'il y a un développement pour "renforcer" la carte SD au démarrage. Je me souviens d'avoir quelque chose comme ça dans un projet précédent, où uboot choisirait entre 12 tarballs si l'un d'eux avait une somme de contrôle crc32 invalide. Il recopierait alors celui validé à tous les autres qui ont été modifiés après un démarrage réussi.
Je voudrais utiliser mon pi dans une configuration "permanente" et ce serait bien si cela pouvait fonctionner sans jamais reflasher la carte.
Y a-t-il déjà un développement de cette manière? Bien que l'idée générale soit plutôt banale, obtenir le redémarrage pour fonctionner correctement est généralement un processus assez douloureux que j'aimerais éviter.
ÉDITER :
Après avoir creusé plus profondément, il semble que ce que j'envisageais pourrait ne pas être possible, ou possible d'une manière qui donnerait un avantage significatif. Ici, le processus de démarrage est décrit . Le code sur lequel je travaillais fonctionnait au premier niveau de démarrage, car ma carte avait un flash programmable pour cela. Avec le pi, il est stocké dans une ROM d'usine. Tout le reste provient de la carte SD, donc si la carte est endommagée, le chargeur de démarrage du deuxième étage a autant de chances d'être détruit que n'importe quelle autre partition.
Il est peut-être possible d'abuser du chargeur de démarrage ROM à cette fin, mais il est difficile de dire comment. Le code semble également propriétaire.
Modifier 2:
L'explication du processus de démarrage réel est en conflit selon les sources. Je vais essayer d'en lire plus
Vous ne devriez pas être confronté à une corruption dramatique fréquente, même si le pouvoir est parfois perdu.
Si un système de fichiers a une valeur non nulle dans la sixième colonne de
/etc/fstab
, il sera vérifié pour voir s'il est nécessaire de le rechercher des erreurs avant de le monter. Les distributions pi classiques (devraient) avoir cet ensemble pour/dev/mmcblk0p1
et la partition du système de fichiers racine (sur Raspbian,mmcblk0p2
). Ce que cela signifie pour les systèmes de fichiers ext4 (tels que le fs racine), c'est que cela se produit indépendamment de chaque montage N; pour la valeur de N, voir "Nombre maximal de montages" dans la sortie detune2fs -l /dev/[partition]
; vous pouvez ajuster cette valeur à l'aide detune2fs -c
(voirman tune2fs
).Il sera également analysé si le système de fichiers n'a pas été correctement démonté. Cela se fait avec
e2fsck
. Dans la plupart des cas, tout ira bien. Il y a cependant la possibilité que vous perdiez des données à cause de la corruption; la preuve de cela sera laissée/lost+found
. Si possible (et c'est généralement le cas), le système de fichiers sera toujours laissé dans un état utilisable et non corrompu par la suite. La question est alors de savoir si un composant critique a été perdu dans le correctif - mais encore une fois, ce serait très inhabituel.La raison pour laquelle il est peu probable que cela affecte quelque chose de critique est que la plupart de ces éléments, bien que techniquement non en lecture seule, ne sont pas modifiés dans le cours normal des choses. Le système a des tonnes de choses à partir de la mémoire
/bin
et/lib
chargées en mémoire à un moment donné, mais il n'y a aucune intention de modifier leur source sur le disque, donc aucune chance que le disque ne se désynchronise avec ces changements inexistants.Bien que je ne sache pas quelles sont les règles pour la première partition vfat contenant le noyau et le firmware (car elle n'est pas formatée ext), je suppose qu'une vérification similaire est possible, et en tout cas, la logique du dernier paragraphe s'applique - ce truc ne change que pour les mises à jour du système. En fait, si vous voulez être vraiment paranoïaque, vous pouvez le faire monter en lecture seule sauf pour les mises à jour (ou pas du tout, car ce n'est pas nécessaire une fois le démarrage normal terminé).
Après tout cela, vous ne devriez pratiquement jamais subir de corruption grave, sauf si vous lancez fréquemment les dés en coupant le pouvoir (et même alors, cela devrait être rare). Si vous rencontrez souvent de la corruption, il y a quelque chose de très grave. Il y a eu au moins quelques personnes ici qui ont signalé des problèmes de corruption même lors de l'utilisation d'un système de fichiers en lecture seule , ce qui est un peu déroutant. Cela implique que la corruption est causée arbitrairement par du matériel défectueux ou un bogue logiciel.
Et en effet, je pense qu'il y avait un tel bug qui aurait pu affecter arbitrairement les pis entre 2013 et mi-fin 2014 (en supposant que le système d'exploitation est tenu à jour). J'ai un pressentiment que nous avons eu moins "Ma carte SD est corrompue!" postes au cours des 4-6 derniers mois (mais Nb. Je n'ai pas fait de véritable comptabilité pour le confirmer).
la source
Vous souhaiterez peut-être utiliser un lecteur flash USB / disque dur USB.
Ils sont généralement plus fiables que les cartes SD
Voici un fil qui décrit comment le faire
la source
L'auto-réparation est un problème avec toute distribution Linux où fsck est sur le système de fichiers le plus sujet à la corruption. C'est un problème que Raspbian partage avec à peu près toutes les distributions Linux - ces jours-ci, ils aiment tout mettre [y compris / boot dans le cas d'Ubuntu !! ??] sur une grande partition ext4.
Une partition racine en lecture seule fait des merveilles pour éviter le problème de destruction de démarrage où Linux rencontre des problèmes de système de fichiers avant d'avoir pu exécuter fsck.
Mais même une racine en lecture / écriture rarement mise à jour est un énorme pas en avant.
Raspbian fonctionne très bien sur une racine en lecture seule. La configuration prend un peu d'effort et, bien sûr, vous devez être prêt à "monter -o remonter, rw /" avant toute modification du système de fichiers racine.
la source