#!/bin/bash # # Prueft beim Boot, ob die Image-Platte (DEZNTRSICHERUNG) angeschlossen ist # und ein neueres Image traegt als das installierte. Wenn ja: einmaliger # Reboot in den GRUB-Eintrag "Schul-Neuinstallation" (Clonezilla, toram). # # Sicherungen gegen Fehlausloesung: # - laptop03 (Master) bespielt sich nie selbst (E-004) # - Versionsvergleich verhindert Reimage-Schleifen bei steckender Platte # set -u LABEL="DEZNTRSICHERUNG" VERSION_FILE="/etc/schul-image-version" GRUB_ENTRY="Schul-Neuinstallation" # Der Master ist tabu — doppelte Absicherung zusaetzlich zum deaktivierten Service [ "$(hostname)" = "laptop03" ] && exit 0 DEV=$(blkid -L "$LABEL" 2>/dev/null) || exit 0 [ -n "$DEV" ] || exit 0 MNT=$(mktemp -d) mount -o ro "$DEV" "$MNT" 2>/dev/null || { rmdir "$MNT"; exit 0; } NEWEST=$(find "$MNT" -maxdepth 1 -name 'schule-laptop-*' -type d -printf '%f\n' 2>/dev/null | sort | tail -1) umount "$MNT" rmdir "$MNT" [ -n "$NEWEST" ] || exit 0 INSTALLED=$(cat "$VERSION_FILE" 2>/dev/null || echo "0") if [ "$NEWEST" \> "$INSTALLED" ]; then echo "Neues Image '$NEWEST' gefunden (installiert: '$INSTALLED') — Neuinstallation beim naechsten Boot." grub-reboot "$GRUB_ENTRY" && systemctl reboot fi exit 0