Cher journal,
Aujourd’hui, je t’écris pour adresser ure petite astuce aux plus ou moins néophytes qui, comme moi, souffrent d’une hibernation non fonctionnelle sur Fedora 32.
J’ai migré il y a peu sur Fedora 32. Tout se passait très bien à un poil près : l’hibernation se terminait en vulgaire poweroff. Quelle ingratitude, so nineties, dans un monde où la mode est désormais à l’hibernation plutôt qu’à l’extinction ! (ahem)
Bref, l’UC se coupait bien après avoir « gratté » des données mais au relancement, le système démarrait comme s’il s’était juste éteint, occasionnant au passage la perte des programmes ouverts et des données non enregistées.
L’hibernation a toujours (plus ou moins) été un problème avec Linux, en partie à cause de la tambouille que fait chaque constructeur au niveau ACPI.
J’ai tenté de rechercher la cause du problème avec la documentation idoine mais sans succès : tout semblait bien fonctionner du point de vue du noyau (a priori on écarte une incompatibilité matérielle).
Finalement, après recherche, le problème vient plutôt de la configuration de Fedora : le module « resume » (nécessaire à l’hibernation) n’est pas intégré à l’initrd par défaut.
En attendant une solution définitive, voici une solution de contournement proposée sur le rapport de bogue Bugzilla du projet, dont je propose ici une modeste traduction.
Diagnostiquer si votre système est concerné par ce problème
Tout d’abord, armé(e) du terminal, il faut vérifier si le module resume est bien absent de l’initrd :
sudo lsinitrd -m | grep -E '^resume$'
Si la commande ne ressort rien, c’est que votre initrd est construit sans le module resume et donc vous êtes concerné par le problème soulevé plus haut.
Correction temporaire
Ajouter le module manquant et reconstruire l’initrd avec dracut :
sudo dracut -fv -a resume
On relance la première commande pour voir si le module sera bien chargé :
sudo lsinitrd -m | grep -E '^resume$'
Celle‑ci devrait renvoyer le résultat suivant, Indiquant que le module est bien chargé :
resume
Vous pouvez maintenant placer votre système en hibernation pour voir si la correction est effective :
sudo systemctl hibernate
Normalement, vous devriez retrouver votre système dans le même état que vous l’avez quitté, comme une simple veille.
Correction permanente
Si l’astuce ci‑dessus a résolu votre problème, vous pouvez rendre la solution permanente en attendant que Fedora propose une solution propre. Pour cela, il faut préciser à dracut d’ajouter le module resume à chaque reconstruction de l’initrd. Pour cela, il faut créer le fichier 99-fix-resume.conf
et y ajouter la ligne suivante : « add_dracutmodules+="resume"
». La commande suivante le fait :
sudo echo 'add_dracutmodules+="resume"' > /etc/dracut.conf.d/99-fix-resume.conf
Après quoi, il faut reconstruire l’initrd avec dracut :
sudo dracut -fv
Et voilà, l’hibernation devrait être de nouveau fonctionnelle. En tout cas, #Chezmoiçamarche.
En espérant que cela soit clair utile à d’autres.
Bonne journée ’nal.
# Correction à la demande de l’auteur du journal
Posté par Davy Defaud . Évalué à 3. Dernière modification le 18 mai 2020 à 12:17.
Les corrections que tu as demandées ont été effectuées. Tu peux regarder comment j’ai procédé en cliquant sur le lien Markdown.
P.‑S. — J’ai aussi supprimé le trait d’union de « non fonctionnelle ». Pour rappel, on met un trait d’union quand il s’agit d’un nom, comme un non‑dit, mais pas quand il s’agit d’un adjectif.
[^] # Re: Correction à la demande de l’auteur du journal
Posté par PS12r . Évalué à 2.
Merci pour la correction et la précision grammaticale.
Par ailleurs, saurais-tu comment saisir ces 3 symboles (sortes de petits apostrophes) pour formater le texte en code, sur un clavier BÉPO ?
Cela ne fonctionne pas avec le symbole « ’ » de la touche « ? ».
Ex. :
’’’
echo "Ahah" ; firefox https://huit.re/testurl
’’’
[^] # Re: Correction à la demande de l’auteur du journal
Posté par batisteo . Évalué à 1.
Je le fait avec la combinaison Alt Gr È puis Espace, autrement dit un accent grave sur l’espace.
Si quelqu’un à mieux, je prends.
[^] # Re: Correction à la demande de l’auteur du journal
Posté par Donk . Évalué à 2.
Avec le symbole « ` » de la touche « % ».
[^] # Re: Correction à la demande de l’auteur du journal
Posté par Davy Defaud . Évalué à 3. Dernière modification le 18 mai 2020 à 17:28.
J’sais pô, j’ai pô d’BÉPO !
Mais, d’après bepo.fr, c’est
Maj
+%
.Donk l’affirme, donc ça le confirme.
Tu ne dois pas faire beaucoup de scripts Shell, parce que c’est un des moyens de créer un sous‑shell, donc c’est très utilisé.
Par exemple, si tu veux stocker le nom d’hôte dans une variable
hostname
:[^] # Re: Correction à la demande de l’auteur du journal
Posté par monsieurw . Évalué à 2.
Hello
Bah, je fais pas mal de shell (bash surtout, ksh, zsh), je n'utilise plus cette syntaxe, mais plutôt $()
hostname=$(hostname)
Bien sûr, ça ne marchera pas avec de très vieux shell, et peut-être pas sur des shells minimalistes, mais c'est supporté par "dash" et le "sh" de Busybox, donc ça me suffit
;-)
[^] # Re: Correction à la demande de l’auteur du journal
Posté par Psychofox (Mastodon) . Évalué à 3. Dernière modification le 19 mai 2020 à 09:50.
La syntaxe à base de $() est POSIX donc supportée par le Bourne shell de base. Faut aller chercher assez loin pour trouver des shells pas compatibles.
Je crois par exemple que ce n'est pas supporté par /usr/bin/sh sur solaris mais tout admin sérieux précisera et utilisera les outils dans /usr/xpg4/bin ou /usr/xpg6/bin pour ses scripts et savoir quelle génération de norme POSIX il veut suivre.
Personnellement ça fait des années que je n'ai plus utilisé les backticks pour ça.
# hibernation ou poweroff ... second choix actuellement !
Posté par Christophe Turbout . Évalué à 2.
effectivement, on peut dire que l'hibernation est une bien meilleure option pour le côté usage pour l'utilisateur que le poweroff.
Toutefois, vues les failles du thendurbolt actuellement (https://thunderspy.io/) l'utilisation de poweroff n'est pas foncièrement un mauvais choix si vous tenez à vos données !
[^] # Re: hibernation ou poweroff ... second choix actuellement !
Posté par Aissen . Évalué à 2.
L’hibernation et la veille sont deux choses différentes, donc pas grand chose à voir avec thunderspy.
[^] # Re: hibernation ou poweroff ... second choix actuellement !
Posté par pasBill pasGates . Évalué à 3.
Ces vulnérabilités sont plutôt marrantes. Il y a 300 manières de hacker une machine si on a accès physique (implant sur le bus PCI-E, etc…). C'est vraiment le dernier de tes soucis si tu veux mon avis.
# sudo echo ?
Posté par deuzene (site web personnel) . Évalué à 6.
J'ai déjà eu des soucis avec un
sudo echo >
, dans des scripts notamment. Et j'ai appris à le remplacer par :ou
tee -a
pour ajouter au fichier.Des avis sur la question ?
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: sudo echo ?
Posté par Psychofox (Mastodon) . Évalué à 2. Dernière modification le 18 mai 2020 à 16:00.
oui c'est ce que je fais aussi car par défaut la redirection se fait de façon non privilégiée et ça ne marcherait pas.
# initrd ?
Posté par bubar🦥 (Mastodon) . Évalué à 8. Dernière modification le 18 mai 2020 à 20:10.
intro : merci pour ce journal et cette astuce + explication
La fedora de mon mini laptop acer c720p est passée en 32 (tout comme elle était auparavant passé en 31, et encore avant … ne me souviens plus, peut être fedora 26 ? ou 25 ?) en mise à jour, et je n'ai pas rencontré ce problème
Faut dire qu'une question me vient à l'esprit : pourquoi diable utiliser un initrd sur un laptop personnel ? Alors qu'il suffit d'ajouter
rootfstype=ext4
(ou =xfs) en option noyal et ça boote très bien tout seul, avec le noyau par défaut. Maintenant (et depuis longtemps, qq versions du moins) le noyau et Fedora vont aller chercher tout seuls comme des grands les modules nécessaires au fonctionnement (Plus besoin de se faire son noyal avec juste le nécessaire compilé en dur, le noyau par défaut et c'est ok. Par exemple sur ce laptop : l'écran tactile, mais aussi le bluetooth, au total 81 modules pour ce laptop) Tout fonctionne nickel. Par défaut. Et du coup je n'ai pas vu ce problème avec dracut et l'hibernation :pça peut être utile ? ;-)
[^] # Re: initrd ?
Posté par Sufflope (site web personnel) . Évalué à 5.
Et ça marche avec un disque chiffré ?
[^] # Re: initrd ?
Posté par bubar🦥 (Mastodon) . Évalué à 3. Dernière modification le 25 mai 2020 à 20:23.
Je n'ai pas testé, c'est un test intéressant à faire pour voir s'il faut modifier qq chose de particulier ;-) (je présume que si / est chiffré (et/ou /usr) alors il faut l'initrd, si /home chiffré seulement alors ok sans initrd : mais à vérifier)
[^] # Re: initrd ?
Posté par bubar🦥 (Mastodon) . Évalué à 4. Dernière modification le 25 mai 2020 à 20:34.
J'ajoute une nécessaire, visiblement, recommandation :
Ne vous lancez pas dans cette manip si vous n'êtes pas à l'aise avec :
Sur mes deux pc, un en 'legacy bios' l'autre en 'efi tianocore payload coreboot' : tout fonctionne nickel. En ajustement cosmétique j'ai juste du recréer l'entrée efi fedora (sinon il faisait une erreur puis passait à la découverte automatique, donc c'est vraiment cosmétique, mais il est possible que certains efi soient plus embêtants, en exigeant une modification pour booter : heureusement que les explications, au dessus, ne sont pas complètes en mode "pas à pas")
en plus ce n'est pas là qu'on récupère le plus de temps au boot. ça, c'est plus cosmétique et pour suivre les actualités. Le gain de temps boot se fait surtout en ajustement les services strictement nécessaire à la machine (en retirant mdraid et lvm-monitor si ni lvm ni mdraid ne sont utilisés, ou encore en retirant le systemd-udev-settle et le NetworkManager-wait-online, ainsi que tout ceux inutiles pour l'usage de votre machine) Illustrations :
Installation par défaut d'une F32 ce matin :
La même après réglages :
# Hibernation, pourquoi faire ?
Posté par David Demelier (site web personnel) . Évalué à 6.
Il fut un temps j'utilisais l'hibernation. C'était principalement sur mon Pentium 4 avec ma SuSE 9.1 qui mettait plus d'une minute à démarrer.
Mais maintenant, avec les machines de guerre et les démarrage en moins d'une dizaines de secondes (2,5s du démarrage à dwm sur mon thinkpad x1 4th gen) j'ai du mal à voir l'intérêt de l'hibernation. De plus, l'hibernation requiert une partition swap ou un fichier swap file et avec les machines ayant maintenant jusqu'à 16Go de RAM, ça devient couteux en écriture (bonjour l'usure des SSD !).
Qui utilise encore vraiment l'hibernation ? Idée de sondage peut-être ? :)
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Hibernation, pourquoi faire ?
Posté par Psychofox (Mastodon) . Évalué à 2.
J'avoue que j'utilise essentiellement la veille mais que le soir j'éteins. Plus par habitude et parce que je n'ai pas `me poser de question si j'ai eu une mise à jour ou pas (bien que j'ai une notification sur mon bureau). Je sais que je serais le lendemain sur le nouveau noyau, nouvelles librairies, etc.
De toute manière je n'ai pas l'habitude de laisser une appli démarrée avec le même document ouvert plusieurs jours d'affilée.
[^] # Re: Hibernation, pourquoi faire ?
Posté par freejeff . Évalué à 5.
C'est pour retrouver ton pc comme tu l'as laissé, avec les projets non sauvegardés, les documents ouverts, es onglets du navigateur. Tu n'as pas toujours envie de tout fermer proprement, pouvoir reprendre ou tu en étais, est très confortable !
[^] # Re: Hibernation, pourquoi faire ?
Posté par deuzene (site web personnel) . Évalué à 4.
mieux vaut quand même le faire avent hibernation, au cas où.
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Hibernation, pourquoi faire ?
Posté par Psychofox (Mastodon) . Évalué à 2.
Les applications modernes sauvegardent maintenant tout seul.
Après c'est surtout un choix personnels. Il y a des gens qui veulent retrouver toutes leurs fenêtres dans l'état identique dans lequel elles étaient. Moi je préfère recommencer d'une page blanchr d'autant plus qu'entre un jour où je travaille, un soir ou jour de week-end où je ferais tout autre chose je n'aurais pas du tout les mêmes applications ouvertes (ni même le même user à vrai dire).
[^] # Re: Hibernation, pourquoi faire ?
Posté par ylsul . Évalué à 1.
Pareil, mais fichiers sauvegardés. Tous mes fichiers de code, de doc et autres, ouverts sur différents espaces virtuels.
J'utilise la mise en veille en mémoire, c'est très simple : systemctl suspend en tant que simple utilisateur et appuyer sur une touche pour redémarrer.
[^] # Re: Hibernation, pourquoi faire ?
Posté par freejeff . Évalué à 2.
En fait, le pb c'est qu'on ne sait pas facilement, si c'est suspend to disk ou suspend to ram.
Si on ne veut pas consommer d'élec, il faudrait faire un suspend to disk mais c'est précisément celui-ci qui pose problème …
[^] # Re: Hibernation, pourquoi faire ?
Posté par ylsul . Évalué à 2.
Pourquoi "on ne sait pas facilement" ? Pour moi "systemctl suspend" c'est en mémoire. Apparemment "systemctl hibernate" sert à l'hibernation.
La mise ne veille en mémoire consomme sans doute un peu d'énergie mais permet de mettre la machine en veille simplement, ce que je trouve commode.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.