Pleroma/Gegeweb

Besoin d'un petit coup de main en : je fais une mise à jour des paquets sur un raspberry pi 4, il reste bloqué depuis très longtemps sur cette étape:

>Paramétrage de raspberrypi-kernel (1.20210104-1) ...
>Suppression de « détournement de /boot/kernel8.img en /usr/share/rpikernelhack/kernel8.img par rpikernelhack »

Htop me dit que y'a zéro calcul en cours (mais un load à 7, contre 1 avant).

Que faire ? 😅

Donc cela fait maintenant 3 jours que ça tourne, toujours à 100% d'un CPU, mais 100% de wait (et un load à 7 au lieu de 6). Manifestement le processus n'avance pas et ne modifie pas les fichiers en question…
J'imagine que ça touche la partition /boot ?

Comment faire pour diagnostiquer à quelle étape ça coince ?

@Lapineige Tu lances Htop, tu vas sur le process en cours et tu appuies sur s pour faire un strace.

La suite après l'arrivée des infos :)

@Lapineige

Un problème d'écriture sur la carte SD ?

Je suppose que tu as cherché un peu (je ne sais pas si c'est en rapport)… :
https://www.raspberrypi.org/forums/viewtopic.php?t=285915
replies
1
announces
0
likes
0

@gerald ça me surprendrait vu qu'elle est quasi-neuve :(
(et que je viens de changer depuis une carte défectueuse)

@dada merci, je ne connaissais pas :)

J'ai juste un
"wait4(-1,"

À défaut de mieux, vu que ça n'a pas l'air de réussir (à écrire sur la carte ?) est-ce qu'il possible d'annuler la mise à jour et de revenir à la version précédente ?

Vu que c'est sur le noyau, et que j'ai très peur de ne pas pouvoir démarrer ensuite, je préfère y aller doucement…

@Lapineige
Oh tu sais, avec les cartes SD, ça peut être la loterie. Perso, je ferais jouer la garantie si elle est neuve.
@gerald

@Lapineige cat /proc/PID/stack peux donner une indication

@dfgweb c'est vide 😅

@Lapineige c'est qu'il n'est pas bloqué dans un syscall

@dfgweb qu'est-ce que ça m'apprend du coup ?

que l'appli n'est pas bloqué dans le kernel sur une opération. donc c'est plutot coté userspace qu'il faut regarder. (strace comme déjà dit ou carrément GDB si tu as les symbols du programme)

@dfgweb strace ne donne que : "wait4(-1," :(

@Lapineige et donc celle là aussi:
https://man7.org/linux/man-pages/man2/waitpid.2.html
le problème se situe donc dans les child process de celui qui appelle cette fonction

@dfgweb ok merci. Tu sais comment on trouve les childprocess ?

@Lapineige ps axf

@dfgweb ok merci. Et bien le seul processus en dessous, c'est "sync". Un strace ne renvoie rien.

@Lapineige fait le cat /proc/PID/stack sur celui-ci

@dfgweb vide

@dfgweb j'ai 8 processus sync (d'origines différentes) qui bloquent 😅

@dfgweb impossible à tuer, en cherchant (là https://unix.stackexchange.com/questions/5642/what-if-kill-9-does-not-work), il sont marqué en D, donc j'ai plus qu'à rebooter si je veux les couper…

@Lapineige kill le sync, l'autre process sera débloqué

@Lapineige effectivement

@dfgweb en dernière chance, j'ai essayé de redémarrer…
Il reste bloqué par les X processus "sync" 🤨 😆

@Lapineige reboot -f

@dfgweb bon ben sans surprise, je l'ai perdu.
Rachat de carte SD et copie de l'ancienne à venir 😅

@dfgweb
Ah en fait je m'étais trompé de processus. Le strace donne:
> strace : attach: ptrace(PTRACE_SEIZE, 13127): Opération non permise

@Lapineige ouaip c'est le gros point noir de RPi. L'utilisation de carte SD. C'est lent et faut trouvé les bonnes références de qualité.

@dfgweb @Lapineige Et c'est tellement aléatoire. Mon Pi1 tourne avec la même carte SD depuis le début, et sur le B+ j'en ai déjà bouzillé 2.
🤷‍♂️

Non mais c'est une blague cette mise à jour…

Suite aux discussions (voir sous le reste du fil), j'ai récupéré une carte SD neuve, réinstallé une ancienne sauvegarde, je lance la mise à jour… et ça reste à nouveau bloqué là :
>Paramétrage de raspberrypi-kernel (1.20210108-1) ...
>Suppression de « détournement de /boot/kernel.img en /usr/share/rpikernelhack/kernel.img par rpikernelhack »

(pas la même version que la dernière fois donc, elle est plus à jour)

Pourrait-il y avoir un rapport avec le fait que le système vient d'un raspberry pi 3, que j'ai mis à jour (sous Debian Buster) puis migré sur le raspberry pi 4 ?

Un problème de noyau qui se mettrait mal à jour ?

Je vais restaurer la sauvegarde, que puis-je faire pour diagnostiquer et corriger ce problème de mise à jour ?

Ou à défaut, comment empêcher la mise à jour du noyau (et à quel point ça peut tout casser ?)

Je progresse… enfin je crois 😅

Je regarde là : https://raspberrypi.stackexchange.com/a/106884
Et il semblerait que si on manque de place sur /boot, le noyau complet n'est pas installé, enfin en gros il manque un truc pour supporter le raspberry pi 4.
J'ai vu conseillé 500Mo, parfois 250Mo…

En l’occurrence ma partition fait 250Mo, et 50Mo d'utilisés au départ.
Et quand je fais la mise à jour… il vide /boot, et installe les nouveaux paquets… Et reste bloqué là:

>Paramétrage de raspberrypi-kernel (1.20210108-1) ...
>Suppression de « détournement de /boot/kernel.img en /usr/share/rpikernelhack/kernel.img par rpikernelhack »

Ceci explique donc pourquoi un redémarrage foire, mais pas pourquoi il reste bloqué alors que /boot a encore 245Mo de libre…

Apparemment y'a bien besoin d'une partition /boot plus large… https://seven1m.sdf.org/tutorials/upgrade_raspberry_pi_3_to_4_with_same_sd_card.html

@Lapineige enlarge your /boot!

@dada
strace dans htop... Le genre de chose qui te simplifie la vie quand tu les découvres... Tu viens de simplifier ma vie future 😀 (OK j'ai quelques jours de retard...)
@Lapineige

@Lapineige tant que l'entrée du bootloader n'est pas modifiée pour démarrer sur le nouveau noyau tu n'as pas de risque
(C'est normalement fait en dernier)

As-tu trouvé une solution/réponse ?