web-dev-qa-db-fra.com

Comment puis-je obtenir mon menu GRUB masqué ET que les touches Maj ou Échap affichent le menu masqué GRUB au démarrage

J'utilise Ubuntu 16.10 et j'essaie de cacher mon menu GRUB à la mise sous tension/au démarrage, et je souhaite que le menu n'apparaisse que lorsque je clique sur le bouton Shift ou Esc clés.

Je change les options appropriées dans /etc/default/grub et il ne cache toujours pas le menu.

En recherchant cela, j'ai trouvé ce post de 2013 le menu caché de GRUB ne fonctionnait pas qui indique que le problème existe depuis un moment et suggère un changement en /etc/grub.d/30_os-prober que je préférerais ne pas résoudre. Ce code suggère que, depuis la découverte de plusieurs systèmes d'exploitation, il va quand même définir le GRUB_TIMEOUT=10.

Voici un extrait de ce que j'ai maintenant dans /etc/default/grub... un menu avec un compte à rebours de 10 secondes ...

 GRUB_DEFAULT = sauvegardé 
 GRUB_SAVEDEFAULT = true 
 GRUB_HIDDEN_TIMEOUT_QUIET = true 
 # GRUB_HIDDEN_TIMEOUT = 0 [.____. GRUB_TIMEOUT> 10 
 -i -s 2>/dev/null || echo Debian` 
 GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash" 

Si je ne commente pas #GRUB_HIDDEN_TIMEOUT=0, alors Sudo update-grub insiste pour que je mette également GRUB_TIMEOUT=10 à GRUB_TIMEOUT=0. Je le fais et je vois toujours le menu GRUB.

Dans terminal, saisir info -f grub -n 'Simple configuration' décrit les différentes options. À la toute fin de l’information, il indique que certaines des commandes en cours ont été amorties et suggère que les remplacements les plus récents sont meilleurs.

Est-ce que quelqu'un sait comment je peux obtenir mon menu GRUB à masquer en 16.10 ET le faire reconnaître Shift ou Esc clés au démarrage?

9
heynnema

OK, voici la réponse ... pour obtenir un menu caché GRUB dans les configurations à double démarrage ... deux modifications ... et un Sudo update-grub...

Edit # 1

Pour obtenir un menu caché GRUB dans une configuration à démarrage multiple, nous devons d’abord éditer /etc/default/grub. Ouvrez ce fichier en utilisant la commande ci-dessous:

Sudo editor /etc/default/grub

Une fois le fichier ouvert, remplacez ces lignes

GRUB_HIDDEN_TIMEOUT_QUIET=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

avec ces:

GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT_STYLE=countdown
#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=3

Cela entraînera GRUB afficher un compte à rebours de 3 secondes à l'écran. En faisant cela, un utilisateur peut frapper le Esc touche pour afficher le menu par défaut. Sinon, le système d'exploitation par défaut démarrera.

Si vous souhaitez que le système d'exploitation par défaut soit défini sur le dernier système d'exploitation, ajoutez les deux lignes ci-dessous sous "GRUB_TIMEOUT = 3" ci-dessus:

GRUB_DEFAULT=saved    # change an existing line to this
GRUB_SAVEDEFAULT=true # add this line

Edit # 2

Ensuite, le vérificateur de système d'exploitation doit être mis à jour pour désactiver la fonction de démarrage rapide. Pour ce faire, ouvrez /etc/grub.d/30_os-prober dans votre éditeur favori et modifiez la ligne ci-dessous (ligne 23 dans 17.04) en remplaçant le 1 par un 0:

quick_boot="1"

Lorsque vous avez terminé, la ligne devrait se lire comme suit:

quick_boot="0"

Enregistrez les fichiers, puis exécutez la commande ci-dessous pour reconfigurer le chargeur de démarrage et appliquer vos modifications:

Sudo update-grub
7
heynnema
  1. Je suppose que vous voulez essayer "tout" disponible via /etc/default/grub. Avez-vous lu ce lien,

    help.ubuntu.com/community/Grub2/Setup#Configuring_GRUB_2

  2. Je vous suggère d'essayer de supprimer les lignes suivantes de /boot/grub/grub.cfg,

    ...
    set timeout_style=menu
    if [ "${timeout}" = 0 ]; then
      set timeout=10
    fi
    ### END /etc/grub.d/30_os-prober ###
    

    Oui, je sais, vous devriez le faire à chaque fois que update-grub est exécuté, mais vous pouvez créer un script pour cela.

3
sudodus

Je crois que ce problème peut être dû à plusieurs systèmes d’exploitation, selon cet extrait de wiki Grub2 :

Si aucun autre système d'exploitation n'est détecté, GRUB 2 démarrera directement dans le système d'exploitation par défaut et aucun menu ne sera affiché. Si un autre système d'exploitation est détecté, le menu GRUB 2 s'affiche .

ET

Il est possible de sauvegarder un système d'exploitation en exécutant Sudo grub-set-default si GRUB_DEFAULT = saved est défini dans/etc/default/grub. Il peut également être enregistré si GRUB_SAVEDEFAULT = true est également défini dans/etc/default/grub. Dans ce cas, le système d'exploitation par défaut reste en place jusqu'à ce qu'un nouveau système d'exploitation soit sélectionné manuellement à partir du menu GRUB 2 ou de la commande grub-set-default. est exécuté.

Le wiki Grub2 indique également: Remarque: Il existe un bogue confirmé de longue date sur la fonctionnalité de menu masqué dans GRUB. 1,97 à GRUB 1,99. Le menu peut ne pas être masqué comme spécifié dans la description de cette page. Bien que l'édition du script 30_os-prober puisse résoudre ce problème, cela dépasse le cadre de cette page.

Pour contourner le problème, vous pouvez définir le GRUB_TIMEOUT="1" et vous ne verrez le menu que pendant une seconde. Si je dois passer à un autre système d'exploitation, il suffit d'appuyer sur la flèche vers le bas dans la seconde et le menu apparaît jusqu'à ce que je fasse un choix.

Il peut y avoir un problème de syntaxe potentiel associé au bogue. Je ne suis pas un expert de Grub2, mais dans mon fichier grub, chaque ligne de commande se termine par = "certains paramètres cités" . devaient passer une chaîne où les non guillemets passaient de simples valeurs numériques aux variables. Je ne suis pas UP dans les nouvelles techniques de code. par exemple. Voici quelques unes de mes sorties:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="Ubuntu"
#GRUB_HIDDEN_TIMEOUT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="1"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

Je cherche ceci Grubbug :) pour plus d'informations ainsi que This Bug Ces deux sont liés à Grub2 âgé de 2 ans. Une partie de cela pourrait être liée au code MBR avant le transfert à Grub2

3
xtrchessreal