(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:
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:
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.
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.)
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
.
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.
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.