Mon Raspberry ne boot plus après un shutdown (resolu)

Tags: #<Tag:0x00007f50a277a160> #<Tag:0x00007f50a2779fd0>

Bonjour
J’ai installé Debian Buster Lite (version ARM) sur mon RPI3B. Il tourne correctement mais a chaque fois que je fais un shutdown, je ne peux plus le redémarrer (par contre je pense que reboot marche…).

L’OS est installé sur une carte SD qui a deux partitions: BOOT et ROOTFS

La lampe rouge est allumé (donc l’alim est OK) mais la lampe verte ne clignote pas donc j’ai l’impression que la matériel n’essaie même pas d’accéder la carte SD.

J’ai déjà ré-installé 3 fois donc je dirai que c’est “reproductible”!

Le contenu de la carte SD me semble OK, en tout cas j’arrive a lire son contenu sur mon ordi Ubuntu.

J’ai revu l’ensemble des fichiers log dans /var/log/ et je n’ai rien trouvé d’anormal.
Sauf peut-être un seul message:

RPiB3 systemd[1]: Stopping dphys-swapfile - set up, mount/unmount, and delete a swap file...

Ca fait plusieurs heure que je regarde un peu partout avec G. mais rien qui ressemble a mon pb.

Quelqu’un aurait une idée?

Merci d’avance pour votre aide

Bonjour,

Quelle commande utilises-tu pour arrêter ton système ? As-tu essayé poweroff ?

Bonjour et merci pour ton retour
J’utilise la commande suivante

sudo shutdown now

J’ai bien vu les message sur mon écran système et d’après moi le shutdown était terminé.

Ensuite pour le redémarrer la seule solution est d’enlever l’alim et la remettre et la plus de boot.

La carte SD est bonne puisque je vois l’ensemble des fichiers dans la partition boot (je ne peux pas juger s’il manque un fichier mais ils ont tous la date de l’installation).

Puis la partition rootfs me semble OK aussi en tout cas je peux naviguer dedans et je vois tous mes fichiers y.c. les logs.

Si tu as d’autres conseils je suis preneur sinon demain je vais re-installer (mais cette fois-ci j’ai pris une copie écran des fichiers dans la partition boot pour que je puisse comparer)

Je n’utilise plus la commande shutdown depuis des années parce que je la trouve peut pratique et j’ai cru lire ici que son comportement avait changé. Bref, essaye poweroff à la place.

Bonjour et merci pour ton retour
Pour le moment j’essaie de voir s’il y a un souci avec la carte SD (puis si échec je vais réinstaller demain)
El lisant des forums ici et la, on conseille de faire un fsck de la carte SD. Ça donne ceci:

fsck -y /dev/mmcblk0
fsck de util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
ext2fs_open2: Numéro magique invalide dans le super-bloc
fsck.ext2 : Superbloc invalide, tentons d'utiliser les blocs de sauvetage...
fsck.ext2: Numéro magique invalide dans le super-bloc lors de la tentative d'ouverture de /dev/mmcblk0

Le superbloc n'a pu être lu ou ne contient pas un système de fichiers
ext2/ext3/ext4 correct. Si le périphérique est valide et qu'il contient réellement
un système de fichiers ext2/ext3/ext4 (et non pas de type swap, ufs ou autre),
alors le superbloc est corrompu, et vous pourriez tenter d'exécuter
e2fsck avec un autre superbloc :
    e2fsck -b 8193 <périphérique>
 ou
    e2fsck -b 32768 <périphérique>

J’ai essayé de réparer avec la commande e2fsck tel que suggéré avec des superbloc mais ça ne marche pas.

Pourtant j’arrive a utiliser la carte SD avec gparted qui voit bien les deux partitions.

Tu as une idée comment réparer le superbloc?

Il faut lancer fsck sur la partition racine (mmcblk0p2), pas sur la carte entière.

Sur la deuxième partition tout semble OK:

fsck -y /dev/mmcblk0p2
fsck de util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
rootfs : propre, 69242/933568 fichiers, 561760/3794944 blocs

Par-contre j’ai fait ça aussi sur la première partition et la j’ai bcp d’erreurs mais …malgré ces corrections ça ne boot toujours pas

fsck -y /dev/mmcblk0p1
fsck de util-linux 2.27.1
fsck.fat 3.0.28 (2015-05-16)
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
 Automatically removing dirty bit.
Orphaned long file name part "start_db.elf"
  Auto-deleting.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
/overlays/        .   
  Directory has non-zero size. Fixing it.
/overlays/        .   
  Start cluster beyond limit (4294967295 > 516191). Truncating file.
Reclaimed 22568 unused clusters (11554816 bytes) in 26 chains.
Free cluster summary wrong (409265 vs. really 409264)
  Auto-correcting.
Performing changes.
/dev/mmcblk0p1: 277 files, 106926/516190 clusters

Puis j’ai encore un doute.
Dans l’article c-dessous on parle d’un fichier bootcode.bin
https://www.raspberrypi.org/documentation/configuration/boot_folder.md

Or dans la partition boot je n’ai pas ce fichier. En plus le contenu ressemble a celui d’un RPI4 (qui n’a pas be bootcode.bin) or moi j’ai un RPI3B+

Je viens de copier a partir de github et ça l’air booter. Plus de détail plus tard!

fsck ne fait que corriger les erreurs pour que le système de fichiers soit dans un état cohérent, il ne restaure pas les données (au contraire, il peut supprimer des fichiers corrompus).

Tu peux comparer le contenu de la partition de boot avant et après le premier démarrage.

ça a la’air de marcher mais le RPi est devenu très très lent.
J’ai testé aussi bien poweroff que shutdown et dans les 2 cas le fichier bootcode était toujours la!
Je vais copier l’ensemble des fichiers trouvé sur GitHub dans le répertoire boot pour voir si ça fait une différence.
PS: Comme j’y avais installé OpenMediaVault, j’ai l’impression que tous mes essais l’ont un peu affecté…

Bonjour @DRbuntu91

J’ai un ami qui fait toujours une copie sur une autre microSD de même capacité de l’installation fraîche et fonctionnelle qu’il peut faire sur ses Raspberry.

Tu dois t’assurer que le système est véritablement bien stoppé avant de couper le jus.
Autrement tu peux continuer à corrompre tes systèmes de fichiers.

Bonjour doo
Merci pour ton conseil. Comme j’ai déjà eu ce genre de soucie je fais attention a cela.
Mais je pense toutefois que le pb. est ailleurs.
En effet je me suis rendu compte que le RPI4 n’a plus besoin du fichier bootcode puisqu’il est en EEPROM.
Du coup j’ai l’impression que le créateur de boot m’a crée un partition de boot pour un RPI4 alors que j’ai un RPI3. Il faudrait que je refasse un essai pour en avoir le cœur net.
Puis au passage moi j’utilise le créateur de boot de Ubuntu pour céer ma carte SD a partir d’une image “Debian Buster Lite”. Soit cette image n’est pas OK pour un RPI3 ou alors c’est le créateur de boot Ubuntu qui déconne.
PS: maintenant mon RPI tourne OK, mais c’est OpenMediaVault qui déconne. J’ai l’impression que dans toutes mes manip j’ai effacé un fichier.

Bonjour a tous
Pb. résolu. J’ai tout de même du ré-installer OpenMediaVault a cause d’un pb. de version de Kernel mais ma config. a été préservé!
Juste pour rappel, pour m’en sortir j’ai mis a jour le contenu de la partition boot a partir de ce site
https://github.com/raspberrypi/firmware/tree/master/boot
Conclusion; le fichier bootcode.bin n’était pas présent sur ma carte SD, or c’est le premier fichier qui est lancé par le SOC.