Ich betreibe einen Dateiserver auf einem Ubuntu-Server mit Dual-Boot mit Windows 7. Jetzt möchte ich ein Skript, das den Server um Mitternacht neu starten und Windows 7 starten kann. Ich habe ein benutzerdefiniertes Skript in mein Windows 7 eingefügt, sodass es nachts von Windows 7 ausgeführt werden kann und morgens, wenn ich den Server starte, automatisch mit dem Ubuntu-Server startet.
Bitte führen Sie mich durch die Ausführung per Skript
Dank im Voraus.
Antwort1
Hier ist eine Lösung, mit der Sie arbeiten können sollten. Sie ist nicht schön und erfordert ein wenig Arbeit und kann je nach verwendeter Ubuntu-Version unterschiedlich sein. Ich bin mit 16.04 darauf gekommen. Ich habe dies auch gerade getestet, um in einen anderen Kernel zu booten, da ich auf dieser Box kein Windows installiert habe. Da Sie einen Dual-Boot haben, muss ich davon ausgehen, dass Sie bereits ein Grub-Menü und hoffentlich einen Windows-Eintrag im Hauptmenü haben, nicht in einem Untermenü, wie ich später noch erläutern werde.
Zuerst müssen Sie Ihre /etc/default/grub
Datei bearbeiten
Suchen Sie nach dem Eintrag GRUB_DEFAULT="#"
, der wahrscheinlich 0 ist. Ändern Sie ihn in „+“ und GRUB_DEFAULT="saved"
fügen Sie darunter eine Zeile mit dem Inhalt „+“ hinzu.GRUB_SAVEDEFAULT="true"
Es sollte ungefähr wie folgt aussehen:
GRUB_DEFAULT="saved"
GRUB_SAVEDEFAULT="true"
...and so on...
Speichern Sie die Datei und führen Sie sie in einem Terminal aussudo update-grub
Jetzt kommt der Teil, den ich vermute. Wenn Sie den Computer booten und sich im GRUB-Menü befinden ... Auf meiner VM-Box, die ich zum Testen verwendet habe, werden die folgenden Einträge angezeigt
Ubuntu
Advanced options for Ubuntu
Memory test (memtest86+)
Memory test (memtest86+,serial console)
Test1
Test1 entry
Damit das funktioniert, musste ich das erstellen , aber ich habe das Gefühl, dass Sie Windows entry
irgendwo auf dieser Liste ein haben, aber ich weiß nicht, wo es hingehört. Sie müssen zählen, wo dieser Menüpunkt in der Liste hingehört. Wenn Ihr beispielsweise Windows entry
dort ist, wo meines Test1 entry
ist, dann wäre es an Position 4 (Ubuntu ist an Position 0, nicht an Position 1).
Nachdem wir das nun haben, müssen wir eine Datei erstellen. startwin
In diesem Beispiel werde ich startwin
sie in Ihrem bevorzugten Editor öffnen und Folgendes eingeben:
#!/bin/bash
grub-reboot 4
reboot now
(4 ist natürlich die Zahl, die Sie als Windows entry
Position für Ihr Objekt ermittelt haben) Speichern Sie die Datei und öffnen Sie das Terminal. Wechseln Sie in das Verzeichnis, in dem startwin
sich befindet, und stellen Sie sicher, dass es auf ausführbar eingestellt ist.
sudo chmod +x startwin
Jetzt können Sie es ausprobieren. Öffnen Sie das Terminal, wechseln Sie in das Verzeichnis, in dem sich die Datei befindet, und geben Sie sudo ./startwin
natürlich „Speichern Sie Ihre gesamte Arbeit“ ein. Schließen Sie alle geöffneten Dateien, da der Computer dadurch neu gestartet wird. Es sollte in Windows starten und wenn Sie Windows zum Neustart auffordern, sollte es wieder zu Ubuntu zurückkehren.
Wenn es funktioniert hat, müssen Sie lediglich einen Cron-Job einrichten, damit es um Mitternacht ausgeführt wird.
Bearbeiten /etc/crontab
Fügen Sie den Eintrag unten hinzu
00 00 * * * root path/to/startwin/startwin
und erstellen Sie eine Windows-Aufgabe zum Neustart, wenn Sie etwa um 7 Uhr morgens wieder zu Ubuntu zurückkehren möchten.
Jetzt wird Ihre Windows-Aufgabe um 7 Uhr morgens automatisch in Ubuntu neu gestartet und um Mitternacht wird Ihr Ubuntu-Skript automatisch in Windows neu gestartet.