Comment contrôler à distance quel OS Grub démarre?


10

Considérez la configuration à double démarrage suivante:

  • Grub est installé sur /dev/sda
  • /dev/sda1 est monté comme /boot
  • /dev/sda6 est monté comme /
  • Windows 10 est installé sur /dev/sdb2

À l'heure actuelle, Grub sélectionne Ubuntu par défaut au démarrage et je peux me connecter à distance via SSH. Il est également possible de sélectionner Windows au démarrage de Grub et je peux me connecter à distance via RDP.

Le problème est que je n'ai aucun moyen de sélectionner le système d'exploitation à démarrer lorsque je ne suis pas physiquement présent.

Cette question décrit une méthode permettant à Grub de démarrer automatiquement le dernier système d'exploitation sélectionné. Cependant, cela ne fonctionnera pas . Si je sélectionne Windows, je n'ai aucun moyen de redémarrer le PC à distance et de démarrer Ubuntu.

Existe-t-il un moyen de contrôler à distance quel système d'exploitation démarre?


@Takkat du côté Windows? (Puis-je exécuter Windows et avoir une sorte de programme ou de script demandant à Grub de démarrer Ubuntu?)
Nathan Osman

@Takkat oh, je vois ce que tu dis ... ça pourrait marcher.
Nathan Osman

Avez-vous pensé à démarrer via PXE? Ensuite, vous pouvez laisser votre configuration de démarrage sur un autre serveur auquel vous pouvez accéder à tout moment et ajuster en conséquence, puis redémarrer l'autre machine pour démarrer le système d'exploitation spécifié?
Ziazis

Réponses:


11

Nous pouvons redémarrer à une entrée de démarrage du menu Grub donnée en utilisant grub-reboot . Cela peut également être fait à partir d'une session à distance, par exemple via SSH.

Pour démarrer dans un autre système d'exploitation, choisissez la position dans laquelle il est représenté dans le menu Grub à partir de 0:

sudo grub-reboot <num>

entrez la description de l'image ici

Dans ce cas, mon Windows est en position 4. Donc lors de l'émission

sudo grub-reboot 4 && sudo reboot

La machine redémarrera vers Windows après le délai que nous avons défini dans les paramètres de Grub.

Après le redémarrage à partir de Windows, la machine démarrera dans le système d'exploitation par défaut. Cela peut être défini avec

sudo grub-set-default <num>

Pour que cela fonctionne, nous devrons peut-être définir GRUB_DEFAULT=saveddans notre /etc/default/grubmais sur mon système, il a également fonctionné avec les paramètres par défaut.

Malheureusement, le redémarrage de Windows à partir de Windows ne peut pas être fait par cela.


3

Une autre idée grâce à la réponse de takkat :

  1. Le démarrage par défaut est Ubuntu
  2. grub-reboot NNest l'entrée de démarrage Windows
  3. Le redémarrage de Windows vous ramènera au démarrage par défaut: Ubuntu.

Inconvénient : pour redémarrer Windows, vous devez redémarrer deux fois: Redémarrez Windows, laissez Ubuntu redémarrer et grub-reboot Nencore! :-(


Plus d'idées s'il vous plaît. :)
AB

1

Vous pouvez définir le système d'exploitation par défaut avec grub en fonction de l'heure, voir GRUB peut-il être planifié? Cela signifie: changer automatiquement «l'entrée» par défaut (connexion automatique) à des périodes définies automatiquement? . Ainsi, par exemple, vous pouvez configurer grub pour démarrer sur Windows lorsque $ MINUTE est impair et démarrer sur Linux lorsque $ MINUTE est pair.

insmod datehook
if [ $MINUTE -eq 0 -o $MINUTE -eq 2  -o $MINUTE -eq 4 -o $MINUTE -eq 6 -o $MINUTE -eq 8]; then
    set default="Ubuntu"
else
    set default="Windows"
fi

Si vous souhaitez un système d'exploitation spécifique; attendez que son heure soit venue.

L'utilisation de cette méthode doit prendre en compte le temps nécessaire pour atteindre Grub. L'utilisation d'un délai de 5 minutes est probablement plus fiable.


Je pense qu'il est également possible d'alterner entre les entrées de démarrage. Quelque chose comme :

if [ $default = "Ubuntu" ]; then
  set default="Windows"
else
  set default="Ubuntu"
fi

lorsque grub est configuré pour se souvenir du dernier système d'exploitation démarré ( Comment faire pour que grub2 se souvienne du dernier choix? )

Si votre PC ne démarre pas dans le système d'exploitation que vous souhaitez, redémarrez simplement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.