4 votes

Pourquoi l'hibernation est-elle si compliquée sur Ubuntu (et autres distributions Linux) ?

Depuis la version 9.04, je suis un utilisateur d'Ubuntu et je me demande pourquoi l'hibernation sur Ubuntu (et d'autres distributions Linux) est si compliquée.

Récemment, j'ai installé la version 18.04. J'ai essayé plusieurs tutoriels sur internet pour rendre le système capable d'hiberner, que ce soit en (a) cliquant sur le menu et en sélectionnant l'option hiberner, ou (b) en hibernant automatiquement en fermant le couvercle de mon ordinateur portable.

Dans le premier cas, j'ai réussi à le faire fonctionner sur mon ordinateur portable après des heures de recherche, cependant je n'ai pas encore réussi à faire fonctionner le deuxième cas.

J'ai essayé :

  1. J'ai installé l'extension GNOME Hibernate status button.

  2. J'ai édité /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla selon cette réponse ici sur AU.

  3. J'ai édité ma configuration GRUB pour reprendre ma partition d'échange UIID et ensuite mis à jour GRUB

  4. J'ai édité /etc/systemd/logind.conf selon cette réponse ici sur AU.

Spécifications :

  • Ordinateur portable Dell G3
  • Processeur: Intel Core i7 8550H
  • Carte graphique: Nvidia GTX 1050TI
  • RAM: 16 Go
  • SSD: SanDisk 240Go
  • Disque dur: 1 To (Je crois que c'est un Seagate)

5voto

L'hibernation n'est pas une chose facile à mettre en œuvre. En fait, Apple n'a implémenté l'hibernation sur leurs Mac qu'en 2005 (source), 5 ans après que Windows ME ait officiellement introduit l'hibernation en 2000, bien que Windows 95 et 98 le supportaient si le fabricant fournissait des pilotes matériels spécifiques (source).

Fondamentalement, le fonctionnement de l'hibernation implique que le noyau mette tous les processus en veille, décharge le contenu de la RAM sur le disque, puis éteigne l'ordinateur. Ensuite, lorsque l'ordinateur est rallumé, le contenu du vidage mémoire sur le disque est rechargé dans la RAM, puis les processus sont relancés.

Toute cette procédure est pleine de problèmes. Par exemple, que se passe-t-il si l'ordinateur est mis en hibernation lorsque le tampon du système de fichiers n'est pas synchronisé avec le disque, et que vous démarrez un autre OS en redémarrant l'ordinateur? Eh bien, voilà comment vous obtenez l'erreur "La partition NTFS est dans un état non sécurisé" lors du dual-boot de Linux avec une installation Windows qui a été mise en veille ou avait activé le "démarrage rapide".

Pour compliquer encore les choses, tandis que l'implémentation actuelle de l'hibernation sur Windows crée un fichier hiberfile.sys sur votre disque C:\ pour stocker le vidage mémoire, l'implémentation actuelle de l'hibernation sur Ubuntu nécessite une partition swap. Cependant, comme la configuration de la partition swap dépend des choix de l'utilisateur lors de l'installation, certains utilisateurs pourraient créer une partition swap de taille insuffisante pour contenir le vidage RAM, ou d'autres pourraient choisir de ne pas utiliser du tout de partition swap!

Une autre chose à considérer est que l'hibernation peut prendre du temps. Ceci est particulièrement vrai si vous disposez d'un ordinateur puissant avec beaucoup de RAM. Par exemple, j'ai 24 Go de RAM, et en supposant un taux de vidage constant sur le disque à 120 Mo/s, cela prendrait plus de 3 minutes pour effectuer l'hibernation. Sans parler du temps équivalent nécessaire pour la reprise. À ce stade, il faudrait autant de temps pour éteindre et redémarrer.

Bien sûr, l'hibernation et la reprise de l'hibernation seraient beaucoup plus rapides si vous avez un SSD. Cependant, décharger 24 Go sur votre SSD à plusieurs reprises ne sera pas favorable à sa durée de vie, car la mémoire flash NAND dans le SSD ne peut supporter qu'un nombre limité de cycles d'effacement-programmation avant de commencer à se dégrader.

En fin de compte, je pense que la réponse à la complexité de l'hibernation sur Ubuntu peut se résumer comme suit:

  • Le processus technique réel de l'hibernation et de la reprise est très compliqué et "là se cachent les dragons"

  • Ce n'est pas une fonctionnalité très demandée (par exemple, je pense que beaucoup d'autres personnes, comme moi, préféraient voir, par exemple, Wayland (remplacement de X11) terminé plutôt que d'avoir l'hibernation.

  • Je suppose un peu ici, mais je vais prendre un risque et dire que les pilotes pour les GPU et autres périphériques doivent probablement être spécifiquement écrits avec l'hibernation à l'esprit.

2voto

L'hibernation n'est pas toujours une fonctionnalité fluide en raison de la nature même de son fonctionnement et de la manière dont le matériel doit la supporter. Si la partition SWAP n'est pas correctement définie, il peut y avoir une perte de données due à des crashs, et le gel de l'ordinateur au démarrage sont des problèmes courants associés à l'hibernation.

Typiquement, Linux a besoin de la taille de la RAM pour sa taille SWAP, mais tout le monde ne suit pas cela à la lettre, ce qui entraîne des problèmes d'hibernation. Ubuntu avait l'hibernation comme fonctionnalité par défaut dans le panneau d'alimentation, mais depuis Ubuntu 12.04 LTS, la fonctionnalité a été abandonnée en raison des problèmes de plus en plus nombreux signalés par plusieurs utilisateurs.

Mais cela ne signifie pas que votre PC ne peut plus hiberner. Tout ce que vous avez à faire, c'est d'abord vérifier si votre matériel informatique est compatible avec ce mode.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X