82 lines
2.9 KiB
Bash
Executable File
82 lines
2.9 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 || {
|
|
echo "WARNUNG: Das Paket 'plymouth' ist nicht installiert. Es wird versucht, es zu installieren..."
|
|
sudo apt update && sudo apt install -y plymouth || {
|
|
echo "WARNUNG: Das Paket 'plymouth' konnte nicht installiert werden. Überspringe diesen Schritt."
|
|
false
|
|
}
|
|
}; then
|
|
# Überprüfen, ob die Variable PLYMOUTH_THEME gesetzt ist
|
|
if [[ -n "$PLYMOUTH_THEME" ]]; 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. Überspringe diesen Schritt."
|
|
fi
|
|
else
|
|
echo "WARNUNG: Die Variable PLYMOUTH_THEME ist nicht gesetzt. Überspringe diesen Schritt."
|
|
fi
|
|
else
|
|
echo "WARNUNG: Der Befehl 'plymouth-set-default-theme' ist nicht verfügbar. Überspringe diesen Schritt."
|
|
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."
|