97 lines
3.6 KiB
Bash
Executable File
97 lines
3.6 KiB
Bash
Executable File
#!/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."
|