HOWTOS & TEXTE

RAM checken


Nachdem die HDDs Ok sind testen wir jetzt den Arbeitsspeicher!
Hier ein kleines Script dafür!

#!/bin/bash

# Target configuration
target_user="root"

# Ensure memtester is installed
if ! command -v memtester >/dev/null; then
    echo "Installiere memtester..."
    sudo apt update && sudo apt install -y memtester
fi

# Get free memory in MB (minus a small safety margin for the OS)
free_mem=$(free -m | awk '/^Mem:/{print $4}')
test_mem=$((free_mem - 128))

if [ $test_mem -le 0 ]; then
    echo "Fehler: Zu wenig freier Speicher zum Testen."
    exit 1
fi

echo "--- ECC RAM Belastungstest ---"
echo "Teste $test_mem MB in 2 Durchgängen..."
echo "Parallel dazu wird auf ECC-Fehlermeldungen geprüft."

# Start background monitoring for ECC errors
(
    while true; do
        if [ -d /sys/devices/system/edac/mc ]; then
            for mc in /sys/devices/system/edac/mc/mc*; do
                ce=$(cat "$mc/ce_count")
                if [ "$ce" -gt 0 ]; then
                    echo "!!! ECC WARNING: $ce Correctable Errors detected on $(cat $mc/mc_name) !!!"
                fi
            done
        fi
        sleep 5
    done
) &
monitor_pid=$!

# Run memtester
if ! sudo memtester "${test_mem}M" 2; then
    echo ""
    echo "🟡 Warnung: Zugriff verweigert / Fehlende Rechte"
    echo "Datei: memtester binary / memory access"
    echo ""
    echo "Mögliche Lösung:"
    echo "Bitte prüfe im Skript-Header, ob die Variable target_user korrekt gesetzt ist (aktuell: target_user=\"$target_user\")."
    echo ""
    echo "Manuelle Reparatur:"
    echo "Führe das Skript mit 'sudo' aus oder prüfe die Berechtigungen für /dev/mem."
    kill $monitor_pid
    exit 1
fi

# Cleanup
kill $monitor_pid
echo "Test beendet. Bitte dmesg auf 'EDAC' Einträge prüfen."
#hier ist schluss