J'ai un système Linux / Windows à double démarrage, et passe souvent de l'un à l'autre. Je pensais que je pourrais ajouter un élément de menu dans l’un des menus pour redémarrer directement dans Windows, sans s’arrêter à l’invite GRUB.
J'ai vu cette question sur un forum, c'est exactement ce que je veux, mais il s'agit de lilo, ce qui n'est pas mon cas.
J'ai pensé à une solution qui modifierait l'entrée par défaut dans le menu GRUB, puis redémarrerait, mais il y a quelques inconvénients et je me demandais s'il existait une alternative plus propre.
(En outre, une solution permettant de démarrer Windows directement sous Linux pourrait m'intéresser, mais cela pourrait être plus difficile et n'a pas sa place ici. Quoi qu'il en soit, tant que je dispose le défaut.
MISE À JOUR Il semble que quelqu'un a demandé une question similaire , et si ce sont les réponses proposées, je pourrais aussi bien modifier /boot/grub/grubenv
comme grub-reboot
et grub-set-default
et grub-editenv
faire. )
Merci d'avance pour des conseils.
MISE À JOUR :
Ceci est ma version de GRUB: (GRUB) 1.99-12ubuntu5-1linuxmint1
J'ai essayé de courir grubonce
, la commande n'est pas trouvée. Et chercher dans les dépôts ne me donne rien. Je suis sur Linux Mint, alors c'est peut-être ça ...
En voyant man grub-reboot
ça, on dirait que ça fait ce que je veux, tout comme grubonce
. Il est également disponible partout (du moins pour moi, je pense que cela fait partie du paquet grub). J'ai vu deux commandes connexes: grub-editenv
et grub-set-default
.
J'ai découvert qu'après avoir lancé sudo grub-set-default 4
, grub-editenv list
vous obtenez quelque chose de similaire à:
saved_entry=4
Et en courant grub-reboot 4
, vous obtenez quelque chose comme:
prev_saved_entry=0
saved_entry=4
Ce qui signifie que les deux font la même chose (un temporaire, l'autre non).
Étonnamment, quand j'ai essayé:
sudo grub-reboot 4
sudo reboot now
Cela n'a pas fonctionné, comme si je n'avais rien fait, il m'a simplement montré le menu comme d'habitude, et a sélectionné la première entrée, en disant qu'elle démarrera cette entrée dans 10 secondes.
Je l'ai réessayé, je pensais avoir mal écrit (c'est zéro, c'est ça?). Cette fois-ci, l'écran du menu était accroché et je devais réinitialiser le PC pour pouvoir démarrer.
Si quelqu'un peut essayer cela, juste pour voir si c'est juste moi, je l'apprécierais. (La menthe m'a donné du fil à retordre, et ce serait une bonne occasion de changer: P).
En lisant le code /boot/grub/grub.cfg
, cela semble être la voie à suivre, mais d'après mes observations, il ne tient compte que de ces paramètres ...
Réponses:
Pour que la
grub-reboot
commande fonctionne, plusieurs modifications de configuration requises doivent être en place:saved
. Un emplacement possible pour cela est laGRUB_DEFAULT=
ligne dans/etc/default/grub
grub-set-default
pour définir votre entrée par défaut sur celle que vous utilisez normalement.update-grub
).Cela devrait prendre en charge la configuration initiale. Dans le futur, faites juste
grub-reboot <entry>
pour un démarrage unique de<entry>
.la source
saved
", alors que ma conservationGRUB_DEFAULT=0
suffisait également. Donc estsaved
inutile?GRUB_DEFAULT=0
parGRUB_DEFAULT=saved
sudo update-grub
votre commande sera:
une jolie fonction dans votre ~ / .bashrc ressemblera à
Si votre fichier grub.conf contient plusieurs lignes pour Windows, les fonctions suivantes ne s’occuperont que des lignes commençant par
menuentry
et ne sélectionnant que la première, en référence à Windows:la source
/boot/grub/grub.cfg
contient plus de lignes contenant "Windows", la plupart d'entre elles indiquant quelque chose comme...=1 i915.semaphores=1 acpi_osi='!Windows 2012' $vt...
ceci, donc je suppose que votre code échouera. Cela peut être corrigé par grepping pour^menuentry 'Windows
.Un moyen très facile de le faire consiste à utiliser l’ extension de shell GNOME de GRUB Reboot (c’est-à-dire si vous utilisez GNOME).
Pour utiliser l'extension, rendez-vous sur le site lié ci-dessus, puis cliquez sur la petite bascule située dans le coin supérieur droit (il est probablement indiqué Désactivé lorsque vous accédez pour la première fois à la page). Vous serez invité à confirmer que vous souhaitez télécharger et installer l'extension.
Une fois qu'il est installé, vous pouvez ouvrir votre menu Système et cliquer sur le bouton d'alimentation comme vous le feriez normalement pour un redémarrage. La fenêtre qui s'ouvre confirmant que vous souhaitez arrêter ou redémarrer a maintenant un bouton intitulé "Redémarrer à ...". Lorsque vous cliquez sur ce bouton, les éléments de votre menu de menu apparaissent dans la liste pour vous permettre de sélectionner le système d'exploitation à lancer automatiquement après le redémarrage. Si vous sélectionnez l'un de ces éléments, votre système s'arrêtera et redémarrera à l'aide des options Grub sélectionnées.
la source
J'utilise openSUSE, qui est livré avec un script appelé
grubonce
, qui fait exactement ce dont vous avez besoin - définissez l'entrée grub à utiliser lors du prochain redémarrage.Je ne sais pas quelle autre distribution (le cas échéant) propose ce script. Par conséquent, si votre distribution ne l’a pas, vous pouvez consulter cette page:
http://sidvind.com/wiki/GRUB:_Boot_another_OS_once
la source
grub-set-default
semble plus disponible (grubonce
ne figure pas dans le verset Ubuntu). Cela peut également être plus utile car Windows 7 a l'habitude de redémarrer au démarrage si les mises à jour ont été appliquées lors du dernier arrêt (c'est-à-dire qu'il démarre le démarrage, traite certaines données de mise à jour, redémarre, puis affiche la page de connexion).J'ai souvent démarré Windows 7 uniquement pour revenir et trouver Ubuntu en cours d'exécution.
la source
grub-reboot
. Je modifie ma question avec plus de détails. Merci quand même.Dans Fedora, vous pouvez utiliser le script suivant. Notez qu'il s'agit généralement de la même chose que celle décrite dans https://askubuntu.com/a/18186/149422 , avec quelques modifications pour GRUB 2 dans Fedora .
la source
J'utilise Ubuntu 16.04 et les solutions ci - dessus n'a pas fonctionné pour moi ... pour une raison quelconque
sudo grub-reboot 2
n'a jamais semblé mettre à jour le/boot/grub/grubenv
fichier, même après avoir changéGRUB_DEFAULT=0
àGRUB_DEFAULT=saved
dans les deux/etc/default/grub
et/boot/grub/menu.lst
. L'utilisation de lasavedefault --default=2 --once
commande dans grub ne semble pas non plus fonctionner ni modifier le fichier grubenv. Il revenait toujours dans le menu original, comme si de rien n'était.Donc, j'ai fini par le faire manuellement et cela a fonctionné (je ne sais pas comment cela fonctionnerait avec les disques RAID, cependant).
Où 2 est l'emplacement de l'entrée de menu de base zéro pour l'entrée Windows dans le menu de démarrage de grub.
Vous pouvez voir pourquoi cela fonctionne en examinant le
/boot/grub/grub.cfg
fichier, car il utilise la valeur next_entry, puis le réinitialise pour le prochain démarrage.la source
D'accord avec @ jw013. Et vous pouvez également donner la vignette de menu pour redémarrer grub (y compris le titre du menu parent). par exemple:
Où "Options avancées pour Ubuntu" est le menu parent, "Ubuntu, avec Linux 4.13.0-26-generic" est le sous-menu.
la source
Redémarrez l'ordinateur sur une cible d'amorçage spécifique (entrée Grub).
La cible de démarrage est sélectionnée de manière interactive avec fzf.
la source