Ich suche nach einer Möglichkeit, Windows von Ubuntu auf einem 10.10 / Vista-Dual-Boot-System neu zu starten. Der spezielle Anwendungsfall ist, dass ich in der Lage sein möchte, in meine laufende Ubuntu-Instanz zu ssh und einen Befehl auszugeben, der einen Neustart direkt in Windows initiiert.
Ich habe einen vielversprechenden Blog-Beitrag gefunden , aber das darin enthaltene Skript funktioniert nicht:
#!/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
Es ist nicht viel Hilfe, aber es scheint mich in die richtige Richtung zu führen:
Legen Sie den Standard-Starteintrag für GRUB fest, und zwar nur für den nächsten Start
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER
Dies gibt den erwarteten Wert zurück, aber beim Neustart wird der erste Menüeintrag immer noch hervorgehoben. Irgendwelche Ideen, warum dies nicht funktioniert, oder Vorschläge für andere Lösungen?
sudo reboot now
sollte die Maschine in den ersten Punkt in der Stichliste neu starten.Antworten:
Sie müssen zuerst Ihre Made bearbeiten.
Suchen Sie nach der Zeile GRUB_DEFAULT = 0 und ändern Sie sie in GRUB_DEFAULT = gespeichert
Aktualisiere deinen Grub mit dem folgenden Befehl.
Erstellen Sie nun eine Skriptdatei,
Fügen Sie dann diese Zeilen hinzu.
Machen Sie das Skript ausführbar.
Und jetzt können Sie dieses Skript vom Terminal ausführen, um Windows neu zu starten.
Oder Sie können den folgenden Befehl in Ihrem Terminal ausführen
Wobei X die Menüeintragsposition des Betriebssystems ist, in dem Sie über das GRUB-Menü neu starten möchten (beginnend mit 0 als erstem Eintrag).
Beispielsweise:
sudo grub-reboot 5
quelle
grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2
sudo grub-reboot "$ WINDOWS_TITLE" sudo rebootEs gibt einen Grub-Befehl, nur um das zu tun
grub-reboot
.Es scheint nur zu funktionieren, wenn Sie grub so konfiguriert haben, dass es mit dem zuletzt gespeicherten Eintrag beginnt. Also, wenn Sie dies noch nicht getan haben, ändern
/etc/default/grub
und einstellendann aktualisiere die grub Konfigurationsdatei:
Von nun an startet bei jedem Boot-Grub der zuletzt verwendete Eintrag.
Wenn Sie jetzt im Voraus festlegen möchten, welches System das nächste Mal gestartet werden soll, verwenden Sie
Dabei kann es
ENTRY
sich beispielsweise um eine Zahl relativ zu einem Menüeintrag (nummeriert ab 0) oder um einen genauen Menüeintragstitel handelnDieser Befehl kann einfach als Startprogramm zur Verfügung gestellt werden
aber ich weiß nicht, wie es in das Systemmenü integriert werden könnte.
Den verfügbaren Menüeintragstitel erhalten Sie mit
quelle
GRUB_DEFAULT=saved
, es würde Ihre Konfiguration durcheinander bringen. Was roden-Neustart tut , ist zu schreiben ,next_entry=ENTRY
zu/boot/grub/grubenv
. Das ist nichtsaved_entry=ENTRY
. Der nächste Neustart wird jedoch in Ordnung sein, liest Grubnext_entry
. Die folgendensaved-entry=ENTRY
Aufladungen können fehlschlagen, wenn kein Eintrag wie in grubenv gespeichert wird.Ich denke, ich habe einen noch schöneren Weg für Leute gefunden, die gleichzeitig lokal an ihrem PC ohne ssh arbeiten wollen.
Eine Lösung zum Neustart in einem bestimmten System, das über einen Unity-Launcher ausgewählt wurde, wurde gerade auf webupd8 veröffentlicht. Sehen http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html
Ich weiß, dass dies nicht genau das ist, worum es in der Frage geht, aber falls jemand später eine ähnliche Frage hat, könnte dies hilfreich sein.
quelle
Soweit ich verstanden habe, wird dies nicht genau das sein, was Sie wollen, aber ich denke, ziemlich nahe. Folgen Sie einfach dem Link webupdate article .
quelle
Für mich war es das Beste, folgendes Skript mit dem
grub-reboot
Befehl zu erstellenquelle
Alle Informationen waren für mich hilfreich, aber am Ende konnte ich die Standardeinstellung für Grub immer noch nicht ändern und dann mit einem Klick neu starten. Nachdem ich 2 Stunden lang herumgebastelt habe, entdecke ich dieses Programm, das genau dasselbe ist, das wir alle zu erstellen versuchen, und in 5 Minuten starte ich Windows neu. Vielen Dank an alle hier ist der Betrüger Link für diejenigen, die auch aufgeben. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html
quelle
Ich bin mir nicht sicher, ob dies zu 100% auch in Ubuntu funktionieren wird, aber ich habe es einmal auf einem Centos-Rechner gemacht
im grunde musst du grub sagen welche id # von grub.conf als nächstes laufen soll. Die ID-Nr. Finden Sie unter
In meinem Fall würde dies zB "4-1" ausgeben, da der vierte Eintrag in meiner grub.conf den Text "Windows" enthält. (Ersetzen Sie dies durch den tatsächlichen Eintragsnamen (auch teilweise), den Sie verwenden möchten. Dann können Sie dies wie folgt an grub weitergeben:
und beim nächsten Neustart sollte es automatisch den Eintrag booten, den Sie ihm mitgeteilt haben.
Dies alles kann in einem Skript wie dem folgenden zusammengefasst werden:
Das Skript ermittelt automatisch, welcher Eintrag aus Ihrer grub.conf dem Text "Windows" entspricht, gibt diesen an grub weiter, um zu bestimmen, was beim nächsten Start geladen werden soll, und startet Ihren PC neu.
Für eine GUI können Sie beispielsweise ein Verknüpfungssymbol auf Ihrem Desktop hinzufügen, um dies zu erreichen.
quelle
Bearbeiten
/boot/grub/grub.cfg
und ändern Sie einfach den Standardeintrag, um auf den Eintrag zu verweisen, den Sie booten möchten. Der Wert kann entweder die Ordnungszahl des Eintrags sein (beginnend mit Null für die erste) oder Sie können den vollständigen Titel des gewünschten Eintrags in Anführungszeichen setzen.quelle
boot.cfg
, es wird bei jeder manuellen oder automatischen Wiederherstellung wiederhergestelltupdate-grub
. Benutzer sollte/etc/default/grub
stattdessen ändern .