Skript für Dual-Boot

Skript für Dual-Boot

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/grubDatei 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 entryDamit das funktioniert, musste ich das erstellen , aber ich habe das Gefühl, dass Sie Windows entryirgendwo 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 entrydort ist, wo meines Test1 entryist, 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. startwinIn diesem Beispiel werde ich startwinsie 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 entryPosition für Ihr Objekt ermittelt haben) Speichern Sie die Datei und öffnen Sie das Terminal. Wechseln Sie in das Verzeichnis, in dem startwinsich 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 ./startwinnatü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/crontabFü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.

verwandte Informationen