v0.1
This commit is contained in:
9
Boot to Windows.desktop
Executable file
9
Boot to Windows.desktop
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Boot to Windows
|
||||||
|
Comment=Bootet direkt nach Windows oder setzt den GRUB-Boot-Eintrag
|
||||||
|
Exec=pkexec /home/thorsten/Scripte/boot-to-windows/boot-to-windows.sh
|
||||||
|
Icon=/home/thorsten/Scripte/boot-to-windows/boot-to-windows.png
|
||||||
|
Terminal=true
|
||||||
|
Type=Application
|
||||||
|
Categories=Utility;System;
|
||||||
BIN
boot-to-windows.png
Normal file
BIN
boot-to-windows.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 111 KiB |
60
boot-to-windows.sh
Normal file → Executable file
60
boot-to-windows.sh
Normal file → Executable file
@@ -3,22 +3,25 @@
|
|||||||
# Ermitteln, ob grub oder grub2 verwendet wird
|
# Ermitteln, ob grub oder grub2 verwendet wird
|
||||||
if [[ -d "/boot/grub2" ]]; then
|
if [[ -d "/boot/grub2" ]]; then
|
||||||
GRUB_DIR="/boot/grub2"
|
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
|
elif [[ -d "/boot/grub" ]]; then
|
||||||
GRUB_DIR="/boot/grub"
|
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
|
else
|
||||||
echo "Weder grub noch grub2-Konfigurationsordner gefunden!"
|
echo "Weder grub noch grub2-Konfigurationsordner gefunden!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Suche die GRUB-Konfigurationsdatei
|
# Überprüfen, ob die GRUB-Konfigurationsdatei existiert
|
||||||
GRUB_CFG="$GRUB_DIR/grub.cfg"
|
|
||||||
if [[ ! -f "$GRUB_CFG" ]]; then
|
if [[ ! -f "$GRUB_CFG" ]]; then
|
||||||
echo "GRUB-Konfigurationsdatei nicht gefunden!"
|
echo "GRUB-Konfigurationsdatei nicht gefunden!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Suche den GRUB-Eintrag für Windows dynamisch
|
# Suche nach dem Windows Boot Manager Eintrag und bereinige den Eintrag
|
||||||
WINDOWS_ENTRY=$(grep -i "Windows Boot Manager" "$GRUB_CFG" | head -n 1 | awk -F\' '{print $2}')
|
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
|
# Überprüfen, ob der Eintrag gefunden wurde
|
||||||
if [[ -z "$WINDOWS_ENTRY" ]]; then
|
if [[ -z "$WINDOWS_ENTRY" ]]; then
|
||||||
@@ -26,17 +29,44 @@ if [[ -z "$WINDOWS_ENTRY" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Setze den nächsten Boot-Eintrag
|
# Gebe den gefundenen Eintrag aus
|
||||||
echo "Gefundener Windows-Eintrag: $WINDOWS_ENTRY"
|
echo "Gefundener Windows-Eintrag: $WINDOWS_ENTRY"
|
||||||
grub-reboot "$WINDOWS_ENTRY"
|
|
||||||
echo "GRUB wird beim nächsten Neustart in die Windows-Partition booten."
|
|
||||||
|
|
||||||
# Benutzerabfrage, ob direkt neugestartet werden soll
|
# Erste Abfrage: Soll beim nächsten Start nach Windows gebootet werden?
|
||||||
read -p "Soll das System jetzt direkt nach Windows neu starten? [Enter für Ja, andere Eingabe für Nein] " user_input
|
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-set-default "$WINDOWS_ENTRY"
|
||||||
|
echo "GRUB2 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
|
||||||
|
|
||||||
if [[ -z "$user_input" ]]; then
|
# Zweite Abfrage: Sofort nach Windows booten oder nur den GRUB Eintrag setzen?
|
||||||
echo "Das System wird neu gestartet..."
|
while true; do
|
||||||
reboot
|
read -p "Jetzt sofort nach Windows booten? [Y/N] " user_input
|
||||||
else
|
user_input=${user_input:-Y} # Wenn leer (Enter), dann "Y" als Default-Wert
|
||||||
echo "Neustart abgebrochen. GRUB bleibt für den nächsten Start auf Windows eingestellt."
|
if [[ "$user_input" =~ ^[Yy]$ ]]; then
|
||||||
fi
|
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