#!/bin/bash set -e # Skript bricht bei Fehlern ab # Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird if [[ $EUID -ne 0 ]]; then echo "Dieses Skript muss als root ausgeführt werden." exit 1 fi echo "🔄 Plymouth und benötigte Pakete installieren..." if ! dpkg -l | grep -qw plymouth; then apt update && apt install -y plymouth plymouth-themes else echo "✅ Plymouth ist bereits installiert." fi # Plymouth in initramfs aktivieren MKINIT_CONF="/etc/mkinitcpio.conf" if [[ -f "$MKINIT_CONF" ]]; then if grep -q "^HOOKS=" "$MKINIT_CONF"; then sed -i 's/^HOOKS=.*/HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)/' "$MKINIT_CONF" else echo 'HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)' >>"$MKINIT_CONF" fi fi # Falls Dracut genutzt wird, initramfs neu erstellen if command -v dracut &>/dev/null; then echo "🔄 Dracut erkannt, erstelle neues initramfs..." dracut -f else echo "🔄 Initramfs wird aktualisiert..." update-initramfs -u fi # Plymouth-Theme setzen PLYMOUTH_THEME="spinner" echo "🎨 Setze Plymouth-Theme auf '$PLYMOUTH_THEME'..." # Sicherstellen, dass das Paket "plymouth" installiert ist if command -v plymouth-set-default-theme &> /dev/null; then # Den Plymouth-Theme-Befehl ausführen if plymouth-set-default-theme -R "$PLYMOUTH_THEME"; then echo "Das Plymouth-Theme wurde erfolgreich auf '$PLYMOUTH_THEME' gesetzt." else echo "WARNUNG: Der Befehl 'plymouth-set-default-theme' konnte nicht ausgeführt werden. Versuche, das Theme manuell zu setzen..." fi else echo "WARNUNG: Der Befehl 'plymouth-set-default-theme' ist nicht verfügbar. Versuche, das Theme manuell zu setzen..." fi # Manuelles Setzen des Plymouth-Themes PLYMOUTH_DIR="/usr/share/plymouth/themes" PLYMOUTH_THEME_FILE="$PLYMOUTH_DIR/$PLYMOUTH_THEME/$PLYMOUTH_THEME.plymouth" PLYMOUTH_CONFIG="/etc/plymouth/plymouthd.conf" if [[ -f "$PLYMOUTH_THEME_FILE" ]]; then if [[ -f "$PLYMOUTH_CONFIG" ]]; then sudo sed -i "s|^Theme=.*|Theme=$PLYMOUTH_THEME|" "$PLYMOUTH_CONFIG" echo "Das Plymouth-Theme wurde manuell auf '$PLYMOUTH_THEME' gesetzt." else echo "WARNUNG: Die Datei '$PLYMOUTH_CONFIG' wurde nicht gefunden. Erstelle die Datei und setze das Theme..." echo -e "[Daemon]\nTheme=$PLYMOUTH_THEME\n" | sudo tee "$PLYMOUTH_CONFIG" > /dev/null echo "Die Datei '$PLYMOUTH_CONFIG' wurde erstellt und das Theme wurde gesetzt." fi else echo "WARNUNG: Das Theme '$PLYMOUTH_THEME' existiert nicht unter '$PLYMOUTH_DIR'. Überspringe diesen Schritt." fi # Initramfs aktualisieren, um die Änderungen zu übernehmen echo "🔄 Aktualisiere Initramfs..." if sudo update-initramfs -u; then echo "Initramfs wurde erfolgreich aktualisiert." else echo "WARNUNG: Initramfs konnte nicht aktualisiert werden." fi # Kernel-Boot-Parameter in GRUB anpassen GRUB_CFG="/etc/default/grub" GRUB_BACKUP="/etc/default/grub.bak" echo "🔍 Überprüfe GRUB-Einstellungen..." NEW_CMDLINE="quiet splash vt.global_cursor_default=0 loglevel=3 rd.luks.options=discard plymouth.ignore-serial-consoles" if grep -q "^GRUB_CMDLINE_LINUX_DEFAULT=.*" "$GRUB_CFG"; then sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"|" "$GRUB_CFG" echo "🔄 GRUB wird aktualisiert..." update-grub else echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"" >>"$GRUB_CFG" echo "🔄 GRUB wird aktualisiert..." update-grub fi echo "✅ Einrichtung abgeschlossen. Bitte starte das System neu, um die Änderungen zu übernehmen."