Vorausgesetzt Sie haben die Kernelquellen und die benötigten Entwicklungswerkzeuge (Compiler usw.) installiert, können Sie mit dem folgenden kleinen Skript die Systemstabilität sehr gut überprüfen:
#!/bin/bash # # Adapted from http://www.bitwizard.nl/sig11 # #set -x cd /usr/src/linux t=1 while [ -f log.$t ] do t=`expr $t + 1` done if [ ! -r .config ]; then echo -e echo -e "There was no .config file found in /usr/src/linux ." echo -e "This means that the kernel sources have not been configured yet." echo -e "If you continue \"make cloneconfig\" will be executed to create" echo -e "a kernel configuration based on the currently running kernel." echo -e "\n" echo -e "Press <Ctrl>-<C> to abort or <ENTER> to continue ..." read make cloneconfig fi touch log.1 watch "ls -lt log.*" & while true do make clean &> /dev/null make -k bzImage > log.$t 2> /dev/null t=`expr $t + 1` done
Das Original dieses Skripts finden Sie unter http://www.bitwizard.nl/sig11. Dort wird auch der Hintergrund dieses Tests erläutert.
Vorteile dieser Überprüfung gegenüber anderen Methoden (z.B. memtest86) sind
Das Skript lässt in einer Endlosschleife die Kernelquellen übersetzen (make bzimage) und speichert die Ausgabe von make für jeden Durchlauf in einer eigenen Logdatei (die übrigens recht groß wird).
Normalerweise wäre zu erwarten, dass der make Prozess bei jedem Durchlauf exakt die gleichen Ausgaben erzeugt.
Das Skript zeigt während es läuft einen ständig aktualisierten Blick auf
ls -l /usr/src/linux/log.*
Das könnte z.B. so aussehen:
Every 2s: ls -lt log.* Wed Aug 8 15:22:02 2001 -rw-r--r-- 1 root root 5472 Aug 8 15:22 log.4 -rw-r--r-- 1 root root 127120 Aug 8 15:21 log.3 -rw-r--r-- 1 root root 127120 Aug 8 15:12 log.2 -rw-r--r-- 1 root root 127120 Aug 8 15:04 log.1
In diesem Beispiel sind die ersten drei Durchläufe bereits abgeschlossen. Dass sich die Dateigröße der ersten drei Log-Dateien nicht unterscheidet ist bereits ein gutes Zeichen. Wer sicher gehen will sollte das Skript allerdings bis zu 24 Stunden laufen lassen und sich nicht nur auf die Dateigröße verlassen. Mit md5sum steht ein geeignetes Werkzeug zur Verfügung um zu überprüfen, ob die Logdateien tatsächlich identisch sind:
linux:/usr/src/linux # md5sum log.* 51e25c01370ce034b2c00d4c71995f02 log.1 51e25c01370ce034b2c00d4c71995f02 log.2 51e25c01370ce034b2c00d4c71995f02 log.3 a014cc76b1fb46a3cc5b84484403a1b7 log.4
Dass die vierte Logdatei eine unterschiedliche Prüfsumme ergibt muss nicht wundern, da dieser Durchlauf noch nicht abgeschloosen ist. Die Prüfsummen der bereits abgeschlossenen Durchläufe sollte allerdings identisch sein.
Anmerkung: Unter bestimmten Umständen kann es vorkommen, dass der erste Durchlauf ein leicht unterschiedliches Resultat im Vergleich zu den weiteren Durchläufen liefert. Als Faustregel kann also gelten, dass alle Durchläufe mit Ausnahme des ersten und des letzten (noch nicht abgeschlossen) identische Ergebnisse liefern müssen.