Dans notre système, deux systèmes d'exploitation Ubuntu sont installés.
Au démarrage, GRUB demande à quelle Ubuntu démarrer, mais je dois maintenant ajouter un nouvel élément de menu dans GRUB et cet élément de menu permettra à l'utilisateur de modifier le démarrage par défaut de Linux.
Dans l'image ci-dessus, je dois ajouter un troisième élément de menu. Ce menu permet à l'utilisateur de sélectionner le nouveau système d'exploitation par défaut. Si l'utilisateur sélectionne "Définir Linux 2 comme valeur par défaut", la prochaine fois, lors de l'ordre de redémarrage, sera comme dans l'image ci-dessous.
J'ai trouvé des documentations sur la modification de l'ordre de démarrage mais ces documents décrivent le processus sous Ubuntu. Je souhaite y parvenir au sein de GRUB lui-même. Comment puis je faire ça?
Nous pouvons y parvenir en utilisant Environment-block de Grub. Le bloc d'environnement est stocké dans /boot/grub/grubenv
et ce fichier est un peu spécial. Il a une taille préallouée de 1024 octets. Nous ne devrions pas éditer ce fichier avec un éditeur de texte, même si vous pouvez l'ouvrir avec un éditeur de texte pour en afficher le contenu.
Nous pouvons éditer /boot/grub/grubenv
avec différents outils:
Commande de terminal Sudo grub-editenv [OPTION...] FILENAME COMMAND
, voir aussi man grub-editenv
Commande de saisie de menu save_env [-f file] var
, voir les détails dans GNU Manuel Grub
Si le fichier /boot/grub/grubenv
ne se ferme pas, vous pouvez le créer avec
Sudo grub-editenv/boot/grub/grubenv crée
Nous devrons créer des entrées de menu personnalisées, https://help.ubuntu.com/community/Grub2/CustomMenus fournit des informations utiles sur la procédure à suivre. Éditez /etc/grub.d/40_custom
pour qu'il ressemble à ceci:
#!/bin/sh exec tail -n +3 $ 0 # Ce fichier permet d'ajouter facilement des entrées de menu personnalisées. Tapez simplement les entrées de menu # Que vous souhaitez ajouter après ce commentaire. Veillez à ne pas modifier # Le sous-menu "Exécuter par défaut" au-dessus du sous-menu # "Définir les valeurs par défaut d'amorçage" { "Définir la première entrée par défaut" { set saved_entry = 0 save_env saved_entry redémarrez } menuentry 'Définit la deuxième entrée comme valeur par défaut' { set Saved_entry = 1 Save_env saved_entry Redémarrez } }
Si nous avons déjà des entrées de menu personnalisées dans le fichier, nous ajoutons simplement les lignes après les lignes de commentaires à notre fichier. Les commandes dans les entrées de menu agissent comme suit:
set saved_entry définit la variable d'environnement saved_entry sur la valeur spécifiée. Save_env saved_entry enregistre la variable saved_entry dans /boot/grub/grubenv. reboot redémarre l'ordinateur.
De plus, nous devrons éditer /etc/default/grub
qui contient la configuration de base Grub. Encore une fois, dans le GNU Grub Manual, nous trouverons informations détaillées .
Dans /etc/default/grub
nous devons changer la valeur de GRUB_DEFAULT
en GRUB_DEFAULT=saved
. Cela forcera Grub à charger l'entrée de menu par défaut à partir de /boot/grub/grubenv
lors du démarrage. Si vous trouvez une ligne avec GRUB_SAVEDEFAULT=true
, supprimez cette ligne.
Pour appliquer les modifications apportées au fichier de configuration principal de Grub /boot/grub/grub.cfg
, nous devons exécuter Sudo update-grub
.
La prochaine étape consiste à exécuter Sudo grub-editenv - set saved_entry=0
dans un terminal. Nous faisons cela pour éviter les conflits, lorsque Grub démarrera la prochaine fois, Grub recherchera saved-entry
dans /boot/grub/grubenv
et pourra le trouver.
Maintenant, nous pouvons redémarrer, lorsque le menu Grub apparaît, nous verrons le sous-menu ajouté dans la liste, nous l'ouvrirons et sélectionnerons l'une des entrées. Grub définira save_entry sur la valeur spécifiée, l'enregistrera sur /boot/grub/grubenv
, puis redémarrera. Le menu Grub apparaît à nouveau et nous verrons que la nouvelle valeur par défaut est sélectionnée automatiquement.
Une dernière chose à considérer
Dans quel système d'exploitation devons-nous apporter ces modifications? Nous avons deux distributions Linux installées et les deux sont livrées avec Grub. Avec les informations provenant d'un Résumé d'informations de démarrage et de la commande de terminal findmnt
, nous devrions être en mesure d'identifier la distribution qui contient et contrôle les fichiers de configuration. Dans cette distribution, nous devons alors effectuer les étapes ci-dessus. Dans l'autre distribution, Grub n'est pas nécessaire et doit être supprimé ou même purgé, afin d'éviter tout type de conflit.
Informations complémentaires:
Testé cela sur mon système avec la version Grub 2.02~beta2-36ubuntu3.8
.
cd/etc/default /
vim Grub
remplacez GRUB_DEFAULT = par celui que vous souhaitez.
OR
cd/boot/grub
vim grub.cfg
ici, soyez prudent lors de l'édition
Réorganisez les fonctions des menus et vous pourrez le voir sur le chargeur de démarrage.