Le redémarrage de kexec ne saute plus le micrologiciel / redémarrage dur après la mise à niveau vers ubuntu 20.04
(Publier ici plutôt que sur le sous-site Ubuntu car je ne pense pas que ce soit spécifiquement lié à Ubuntu ...)
J'ai déjà utilisé avec succès à kexec-reboot -lr
partir de la page exceptionnellement utile ici .
Après une mise à niveau de 18.04 à 20.04, l'exécution de cette commande redémarre toujours le système, mais elle effectue maintenant un redémarrage `` dur '' où elle passe complètement à EFI / firmware au lieu de simplement recharger et redémarrer le noyau. Cela ajoute plusieurs minutes au temps de démarrage sur mon serveur (et annule tout l'intérêt d'utiliser cette invocation ...)
La commande qui est exécutée selon la sortie détaillée de kexec-reboot est:
Running /sbin/kexec -l /boot/vmlinuz-5.4.0-54-generic --append='root=UUID=69a4d39e-361f-41e7-9ad3-866cb9dae202 ro intel_iommu=on' --initrd=/boot/initrd.img-5.4.0-54-generic
L'exécution de cette commande directement (c'est-à-dire pas à partir du script de commodité kexec-reboot) donne le même comportement.
J'ai vérifié dans syslog et dmesg les messages qui semblent pertinents et je ne trouve rien, mais je ne suis probablement pas non plus au courant de tous les différents endroits où je pourrais regarder. Outre le simple indicateur détaillé, quelles autres choses puis-je utiliser pour résoudre ce problème?
Mise à jour du 26/11: Si je construis manuellement la ligne kexec comme décrit ci-dessus, puis que je l'exécute kexec -e
(comme décrit ici ), il ne fait en effet que démarrer directement le noyau. L'examen du code kexec-reboot montre que l'appel final existe shutdown -r now
, alors j'essaie maintenant de comprendre pourquoi le shutdown -r now
comportement est différent de ce qu'il était avant ...
Réponses
À partir du noyau 5.4, le module de sécurité Linux a activé la fonction de verrouillage. Cela désactivera la fonction de redémarrage de kexec et ne permettra pas de contourner la réinitialisation matérielle. Par défaut, la fonction de verrouillage est désactivée dans la version 5.4. Mais confirmez dans votre cas qu'il n'est pas activé. Vous pouvez vérifier les variables u-boot ou la source du noyau.