Je cherche un moyen de redémarrer Windows à partir d'Ubuntu sur un système à double démarrage 10.10/Vista. Le cas d'utilisation spécifique est que je voudrais pouvoir utiliser SSH dans mon instance Ubuntu en cours d'exécution et émettre une commande qui initiera un redémarrage directement dans Windows.
J'ai trouvé n article de blog prometteur , mais le script qu'il suggère ne fonctionne pas:
#!/bin/bash
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
Sudo grub-reboot $MENU_NUMBER
Sudo reboot
man grub-reboot
ne m'aide pas beaucoup, mais il semble me mener dans la bonne direction:
définir l'entrée de démarrage par défaut pour GRUB, pour le prochain démarrage uniquement
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER
Cela renvoie la valeur attendue, mais au redémarrage, la première entrée de menu est toujours en surbrillance. Des idées pour lesquelles cela ne fonctionne pas ou des suggestions pour d'autres solutions?
Vous devez d'abord modifier votre vers.
Sudo gedit /etc/default/grub
Recherchez la ligne GRUB_DEFAULT = et modifiez-la en GRUB_DEFAULT = sauvegardée
Mettez à jour votre fichier en utilisant la commande suivante.
Sudo update-grub
Maintenant, créez un fichier de script,
Sudo gedit switch-to-windows.sh
Ajoutez ensuite ces lignes.
#!/bin/bash
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
Sudo grub-reboot $MENU_NUMBER
Sudo reboot
Rendre le script exécutable.
Sudo chmod +x switch-to-windows.sh
Et maintenant, vous pouvez exécuter ce script depuis un terminal pour redémarrer Windows.
./switch-to-windows.sh
Ou vous pouvez exécuter la commande suivante dans votre terminal
Sudo grub-reboot X
Où X est la position de menu du système d'exploitation que vous souhaitez redémarrer à partir du menu GRUB (en commençant par 0 comme première entrée).
Par exemple:
Sudo grub-reboot 5
Pour ce faire, il existe une commande grub, elle est grub-reboot
.
Cela ne semble fonctionner que si vous avez configuré grub pour démarrer avec la dernière entrée enregistrée. Donc, si vous ne l’avez pas déjà fait, modifiez /etc/default/grub
et définissez
GRUB_DEFAULT=saved
puis mettez à jour le fichier de configuration grub:
Sudo update-grub
A partir de maintenant, la dernière entrée utilisée sera lancée à chaque démarrage.
Maintenant, si vous voulez définir à l’avance quel devrait être le système à démarrer la prochaine fois, utilisez
Sudo grub-reboot ENTRY
où ENTRY
pourrait être un nombre relatif à une entrée de menu (numéroté à partir de 0), ou un titre d'entrée de menu exact, par exemple
Sudo grub-reboot "Microsoft Windows XP Professional (on /dev/sda1)"
Cette commande peut facilement être mise à disposition en tant que lanceur
#!/usr/bin/env xdg-open
#
# save as ~/Desktop/reboot-into-windows.desktop
#
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c 'gksu "grub-reboot 2" && gnome-session-save --shutdown-dialog'
Name=Reboot into Windows
Icon=gnome-panel-launcher
mais je ne sais pas comment cela pourrait être intégré dans le menu système.
Vous pouvez obtenir le titre d’entrée de menu disponible avec
sed -n '/menuentry/s/.*\(["'\''].*["'\'']\).*/\1/p' /boot/grub/grub.cfg
Je pense avoir trouvé un moyen encore plus agréable pour les personnes qui veulent la même chose alors qu’elles sont localement sur leur PC sans ssh.
Une solution pour redémarrer dans un système spécifique choisi via un lanceur d'unité vient d'être publiée sur webupd8. Voir http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html
Je sais que ce n'est pas exactement le sujet de la question, mais au cas où quelqu'un aurait une question similaire plus tard, cela pourrait être utile.
Autant que je sache, ce ne sera pas exactement ce que vous voulez, mais je suppose que c'est assez proche. Il suffit de suivre le lien article webupdate .
Donc, pour moi, le mieux était de créer le script suivant avec la commande grub-reboot
#!/bin/bash
WINDOWS_TITLE=$(grep -i 'windows' /boot/grub/grub.cfg|grep "^[^#;]"|cut -d"'" -f2)
Sudo grub-reboot "$WINDOWS_TITLE"
echo "Your computer will reboot on ${WINDOWS_TITLE} in 3 seconds, press Ctrl+C if you want to abord it"
sleep 3 && Sudo reboot
Les informations de tout le monde ont été utiles pour moi mais à la fin, je ne pouvais toujours pas changer le paramètre par défaut grub puis le redémarrer en un clic. Après avoir bricolé pendant 2 heures, je découvre ce programme qui est exactement la même chose que nous essayons de construire et en 5 minutes, je redémarre sous Windows. Merci à tous, voici le lien du tricheur pour ceux qui abandonnent aussi. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html