web-dev-qa-db-fra.com

update-grub ne met pas à jour /boot/efi/EFI/ubuntu/grub.cfg

(EDIT 3: erreur de l'utilisateur. Copié sur /boot/efi/EFI/ubuntu/grub.cfg lors du débogage d'un problème de démarrage)

Après avoir installé le serveur Ubuntu 18.04 récemment publié en mode UEFI Secure Boot, le programme d'installation a placé grub.cfg à cet emplacement:

  • / boot/efi/EFI/ubuntu/grub.cfg

Cela correspond aux tables créées lors de la sélection du système de fichiers: partition manuelle, qui monte la partition de démarrage à / boot/efi (/ dev/sda1).

Cependant, Sudo update-grub et Sudo update-grub2 ne remplace pas la configuration de grub, mais met à jour / boot/grub/grub.cfg, c'est-à-dire un fichier qui n'est pas sur la partition de démarrage.

Question 1: Est-ce que update-grub, update-grub2, etc. a été remplacé par une nouvelle procédure? Question 2: Si non, s'agit-il d'un bogue à classer?

EDIT: Confused ++.

  • Ordinateur 1, matériel réel, partitionnement manuel lors de l'installation et mises à jour mineures, par ex. Sudo to install tboot, problème peut être reproduit.

  • Ordinateur 2, image vmware: installation à la vanille, problème ne peut pas être reproduit.

Les deux ordinateurs sont UEFI Secure Boot et ont un partitionnement identique/similaire. le même comportement de mise à jour est rencontré par les différents grub.cfg, mais sur l’image vmware, grub respecte le fichier / boot/grub/grub.cfg, lors de l’installation matérielle, grub respecte le / boot/efi/EFI/ubuntu/grub.cfg.

EDIT 2:

  • L'ordinateur 1 a maintenant été réinstallé à la fois avec le partitionnement manuel du système de fichiers et ensuite avec le partitionnement d'origine (disque de 250 Go, 120 Go utilisés, reste laissé libre). Ni l'un ni l'autre ré-installer pourrait reproduire le problème d'origine, donc maintenant le problème a disparu. Les trois installations sur l'ordinateur provenaient de la même clé ISO/USB.
3
blaufish

cause première: erreur de l'utilisateur.

J'ai accidentellement copié /boot/grub/grub.cfg dans /boot/efi/EFI/ubuntu/grub.cfg alors que j'essayais de déboguer certains paramètres de grub qui ne prenaient pas effet. À partir de ce moment, le comportement n'était plus standard sur mon système.

merci à oldfred de m'avoir aidé à réaliser le fichier original /boot/efi/EFI/ubuntu/grub.cfg qui venait d’être un fichier de trois lignes faisant référence à /boot/grub.cfg.

0
blaufish

blaufish note que

le fichier original /boot/efi/EFI/ubuntu/grub.cfg venait tout juste d’être un fichier de trois lignes faisant référence à /boot/grub.cfg.

Ce trois-lignes grub.cfg est non utilisé, au moins sur mon grub 2.02-2ubuntu8.6 avec btrfs. La 2ème ligne lit

set prefix=($root)'/@/boot/grub'

Il n'y a maintenant plus de @ on $ root et il n'y en avait pas non plus lors de l'exécution de grub-install. (@ est une installation instable qui a été corrompue et supprimée il y a quelque temps.) À la place, le chemin d'accès grub à grub.cfg est écrit dans l'exécutable grubx64.efi. On pourrait voir ce que c'est en courant

strings grubx64.efi | tail

Je mentionne cela parce que quelqu'un pourrait imaginer, comme je l'ai déjà fait une fois, qu'il serait utile de changer ce fichier grub.cfg pour qu'il pointe ailleurs. J'utilise l'option --boot-directory pour grub-install pour le définir. J'ai la racine btrfs montée (subvolid = 5, subvol = /) sur/mnt/top et je souhaite démarrer sur/@ grub:

--boot-directory =/mnt/top/@ grub/boot

(Je ne suis pas sûr que cela ait toujours fonctionné. Lorsque j'ai essayé de configurer grub indépendamment de toute installation sur btrfs, j'ai eu des problèmes et j'ai fini par utiliser un instantané à partir duquel je pouvais démarrer pour que grub-install écrive ce que je voulais. Mais c'est bon maintenant.)

3
JohnLittle

Je suis tombé dessus aussi. Pour mettre à jour votre fichier EFI grub.cfg, vous souhaitez effectuer les tâches suivantes:

grub-install --efi-directory=/boot/efi

Si votre EFI est monté sur /boot/efi.

2
dpb

Juste pour fermer la boucle sur cette requête - j'avais besoin de mises à jour de /boot/efi/EFI/ubuntu/grub.cfg parce que j'avais changé l'emplacement de mon répertoire /boot (UUID modifié). update-grub ne met pas à jour ce fichier, mais

Sudo dpkg-reconfigure grub-efi-AMD64

déclenchera une réécriture, après avoir répondu à certaines questions.

0
Greg

J'ai changé /boot/efi/EFI/ubuntu/grub.cfg en utilisant vi. Là vous avez besoin de changer uniquement UID et gpt. Fonctionne bien. Fais attention.

0
Borkowski