Initial commit
This commit is contained in:
commit
e12f7ced02
4 files changed
+125
No files matched your search
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env xdg-open
|
||||
[Desktop Entry]
|
||||
Categories=Utility;System;
|
||||
Comment[de_DE]=Bootet direkt nach Windows oder setzt den GRUB-Boot-Eintrag für den nächsten Start
|
||||
Comment=Bootet direkt nach Windows oder setzt den GRUB-Boot-Eintrag für den nächsten Start
|
||||
Exec=/home/thorsten/Scripte/shell_boot-to-windows/boot-to-windows.sh
|
||||
GenericName[de_DE]=
|
||||
GenericName=
|
||||
Icon=/home/thorsten/Scripte/shell_boot-to-windows/boot-to-windows.png
|
||||
MimeType=
|
||||
Name[de_DE]=Boot to Windows
|
||||
Name=Boot to Windows
|
||||
Path=
|
||||
PrefersNonDefaultGPU=false
|
||||
StartupNotify=true
|
||||
Terminal=true
|
||||
TerminalOptions=
|
||||
Type=Application
|
||||
Version=1.0
|
||||
X-KDE-SubstituteUID=false
|
||||
X-KDE-Username=
|
||||
@@ -0,0 +1,26 @@
|
||||
# GRUB Boot zu Windows
|
||||
|
||||
Dieses Skript identifiziert dynamisch den **Windows-Boot-Manager** in der **GRUB-Konfiguration** und setzt ihn für den nächsten Neustart als Ziel. Es unterstützt sowohl **GRUB** als auch **GRUB2** und bietet eine optionale Benutzerabfrage, ob das System sofort nach Windows booten soll.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- **Bash** ist installiert.
|
||||
- **GRUB** oder **GRUB2** ist konfiguriert.
|
||||
- Das Skript erfordert root zum Bearbeiten der GRUB-Konfigurationsdateien und zum Neustarten des Systems.
|
||||
|
||||
|
||||
## Verwendung
|
||||
|
||||
1. Script ausführbar machen:
|
||||
```bash
|
||||
chmod +x boot-to-windows.sh
|
||||
```
|
||||
2. Bearbeite die Datei `Boot to Windows.desktop` und passe die Zeilen `Exec=` und `Icon=` entsprechend deiner Skript- und Icon-Pfade an.
|
||||
3. Speichere die angepasste `Boot to Windows.desktop`-Datei wahlweise in:
|
||||
```bash
|
||||
~/.local/share/applications/
|
||||
```
|
||||
Alternativ kann das Skript direkt im Terminal ausgeführt werden:
|
||||
```bash
|
||||
sudo ./boot-to-windows.sh
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 111 KiB |
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Überprüfen, ob das Skript mit Root-Rechten läuft
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
# Root Rechte anfordern und neu starten
|
||||
exec sudo "$0" "$@"
|
||||
fi
|
||||
|
||||
# Ermitteln, ob grub oder grub2 verwendet wird
|
||||
if [[ -d "/boot/grub2" ]]; then
|
||||
GRUB_DIR="/boot/grub2"
|
||||
GRUB_CFG="/boot/grub2/grub.cfg" # Setze den richtigen Pfad zu grub.cfg
|
||||
GRUB_VERSION="grub2" # Setze die Version auf grub2
|
||||
elif [[ -d "/boot/grub" ]]; then
|
||||
GRUB_DIR="/boot/grub"
|
||||
GRUB_CFG="/boot/grub/grub.cfg" # Setze den richtigen Pfad zu grub.cfg
|
||||
GRUB_VERSION="grub" # Setze die Version auf grub
|
||||
else
|
||||
echo "Weder grub noch grub2-Konfigurationsordner gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Überprüfen, ob die GRUB-Konfigurationsdatei existiert
|
||||
if [[ ! -f "$GRUB_CFG" ]]; then
|
||||
echo "GRUB-Konfigurationsdatei nicht gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Suche nach dem Windows Boot Manager Eintrag und bereinige den Eintrag
|
||||
WINDOWS_ENTRY=$(grep -i "menuentry 'Windows Boot Manager" "$GRUB_CFG" | head -n 1 | sed "s/^menuentry '//" | sed "s/'$//" | cut -d"'" -f1)
|
||||
|
||||
# Überprüfen, ob der Eintrag gefunden wurde
|
||||
if [[ -z "$WINDOWS_ENTRY" ]]; then
|
||||
echo "Windows Boot Manager nicht gefunden!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Gebe den gefundenen Eintrag aus
|
||||
echo "Gefundener Windows-Eintrag: $WINDOWS_ENTRY"
|
||||
|
||||
# Erste Abfrage: Soll beim nächsten Start nach Windows gebootet werden?
|
||||
while true; do
|
||||
read -p "Soll beim nächsten Start nach Windows gebootet werden? [Y/N] " user_input
|
||||
user_input=${user_input:-Y} # Wenn leer (Enter), dann "Y" als Default-Wert
|
||||
if [[ "$user_input" =~ ^[Yy]$ ]]; then
|
||||
if [[ "$GRUB_VERSION" == "grub" ]]; then
|
||||
# Für GRUB (grub1) verwenden wir grub-reboot
|
||||
sudo grub-reboot "$WINDOWS_ENTRY"
|
||||
echo "GRUB wird beim nächsten Neustart in die Windows-Partition booten."
|
||||
elif [[ "$GRUB_VERSION" == "grub2" ]]; then
|
||||
# Für GRUB2 verwenden wir grub2-set-default
|
||||
sudo grub2-reboot "$WINDOWS_ENTRY"
|
||||
echo "GRUB wird beim nächsten Neustart in die Windows-Partition booten."
|
||||
fi
|
||||
break
|
||||
elif [[ "$user_input" =~ ^[Nn]$ ]]; then
|
||||
echo "Abgebrochen. Script wird beendet."
|
||||
exit 0
|
||||
else
|
||||
echo "Ungültige Eingabe. Bitte Y oder N eingeben."
|
||||
fi
|
||||
done
|
||||
|
||||
# Zweite Abfrage: Sofort nach Windows booten oder nur den GRUB Eintrag setzen?
|
||||
while true; do
|
||||
read -p "Jetzt sofort nach Windows booten? [Y/N] " user_input
|
||||
user_input=${user_input:-Y} # Wenn leer (Enter), dann "Y" als Default-Wert
|
||||
if [[ "$user_input" =~ ^[Yy]$ ]]; then
|
||||
echo "Das System wird jetzt nach Windows neu gestartet..."
|
||||
sudo reboot
|
||||
break
|
||||
elif [[ "$user_input" =~ ^[Nn]$ ]]; then
|
||||
echo "Nur den GRUB Eintrag gesetzt. Script wird beendet."
|
||||
exit 0
|
||||
else
|
||||
echo "Ungültige Eingabe. Bitte Y oder N eingeben."
|
||||
fi
|
||||
done
|
||||
Reference in new issue
Block a user