Dans Ubuntu (et je suppose que dans Debian aussi), il existe un script système nommé update-grub qui exécute automatiquement grub-mkconfig -o avec le chemin correct pour le fichier de configuration grub.
Existe-t-il une commande similaire pour les distributions basées sur Red Hat?
Sinon, comment le système sait-il où se trouve le fichier de configuration grub à mettre à jour lorsquune nouvelle version du noyau est installée?
Réponse
Actions spécifiques qui doivent se produire lorsquun package RPM est installé ou supprimé sont inclus dans le package RPM lui-même en pré-installation, post-installation, pré-désinstallation et post-désinstallation sections.
Pour chaque package RPM installé, vous pouvez interroger la base de données RPM pour les scripts exacts inclus avec la commande rpm:
rpm -q --scripts <package-name>
Lexécution de cette commande sur un paquet noyau pour CentOS 6 renvoie entre autres:
postinstall scriptlet (using /bin/sh): <snip> /sbin/new-kernel-pkg --package kernel --install 2.6.32-431.17.1.el6.x86_64 || exit $?
Extrait du manuel:
new-kernel-package– outil de script dinstallation du noyau
Commentaires
Réponse
Après avoir analysé les scripts dans Fedora, je me rends compte que le chemin du fichier de configuration est lu à partir du lien symbolique /etc/grub2.conf . La bonne ligne grub2-mkconfig est donc:
grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)"
Comme indiqué dans les commentaires, il peut sagir de /etc/grub2.cfg ou /etc/grub2-efi.cfg sur un système UEFI. En fait, les deux liens peuvent être présents en même temps et pointant vers des emplacements différents . Lindicateur -e à readlink affichera une erreur si le fichier cible nexiste pas, mais sur mon système les deux existaient … Vérifiez vos commandes , Je suppose.
Commentaires
- Sur CentOS 7, les liens semblent être
/etc/grub2.cfg - grub2-mkconfig –output = / boot / grub2 / grub.cfg semble être la méthode approuvée dans le manuel de fedora
- Pour plus détapes grub spécifiques à CentOS 7, consultez le wiki officiel: wiki.centos.org/HowTos/Grub2
- Si vous avez un système UEFI, ‘ Je veux
sudo grub2-mkconfig -o "$(readlink /etc/grub2-efi.cfg)" - Je ne vois aucun intérêt à faire readlink
Réponse
Sur Fedora, jutilise:
grub2-mkconfig -o "$(readlink -e /etc/grub2.cfg)"
car lexécution sans option de readlink renvoie un chemin relatif, et grub2-mkconfig donne une erreur:
$ ls -l /etc/grub2.cfg lrwxrwxrwx. 1 root root 22 Dec 10 2015 /etc/grub2.cfg -> ../boot/grub2/grub.cfg $ readlink /etc/grub2.cfg ../boot/grub2/grub.cfg $ sudo grub2-mkconfig -o "$(readlink /etc/grub2.cfg)" /usr/sbin/grub2-mkconfig: line 244: ../boot/grub2/grub.cfg.new: No such file or directory
Jutilise le -e donc que si le lien symbolique ne se résout pas en un fichier existant, la sortie saffiche sur stdout pour que je sache que quelque chose sest mal passé.
De la page de manuel de readlink:
-e, --canonicalize-existing canonicalize by following every symlink in every component of the given name recursively, all components must exist
Réponse
Dans Fedora, le lien symbolique /etc/grub2.cfg pointe vers la version du BIOS. Sur un système UEFI, utilisez:
$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Dans CentOS:
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
En général, vous pouvez utiliser à la place:
$ sudo grub2-mkconfig -o $(readlink -f /etc/grub2-efi.cfg)
Réponse
modifier le fichier grub avec vi ou vim, enregistrez les modifications et fermez léditeur avec: wq!
Voici ce que vous devez exécuter pour mettre à jour grub dans RedHat ou CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Réponse
Selon la documentation RedHat :
Les modifications apportées à
/etc/default/grubnécessitent la reconstruction du fichiergrub.cfgcomme suit:
Sur le BIOS- machines basées sur les machines, exécutez la commande suivante en tant que root:
~]# grub2-mkconfig -o /boot/grub2/grub.cfgSur les machines basées sur UEFI, problème la commande suivante en tant que root:
~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Réponse
Le script update-grub dans Ubuntu nest en fait quun stub pour grub-mkconfig , et il peut être adapté à dautres distributions sans trop de peine. Le voici dans son intégralité:
#!/bin/sh set -e exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
Cela fait effectivement ce qui est recommandé dans le wiki CentOS , et dans dautres réponses ici – la seule différence est que vous devez changer grub en grub2 dans la commande et le chemin de sortie .
Réponse
Sur Fedora 32:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Réponse
Travaillé sous CentOS Linux 8 –
sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
Réponse
Dans les directives de Fedora 33, il donne ce qui suit après avoir changé Grub
$ sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
Et oui je sais que ce post a 6 ans
/bin/kernel-installà la place. Veuillez modifier votre réponse pour inclure ces informations pour référence future