Hallo,
wir haben ein Problem mit einem fehlerhaften Bios bei Server zu denen es nicht so einfach ist physikalischen Zugriff zu bekommen.
Es äussert sich darin das nach einer uptime von ca. mehr als 100 Tagen beim Versuch zu rebooten die Kisten komplett tot sind, bis sie physikalisch
ein und ausgeschalten wurden. RLM/iKVM/iLO etc. ist nicht vorhanden. Das Bios können wir remote momentan nicht upgraden.
Bei einem "Kaltstart" durch ein und ausschalten ist das Problem erstmal weg, eben diesen Kaltstart möchte ich nun gerne haben, z.B. als kleinen Programm.
Man kann dem Kernel eine Option mitgeben "reboot=cold" - leider muss der Server dazu gebootet werden, was ja eben nicht funktioniert.
in reboot.c im Kernel Sourcecode steht in etwa sowas:
#define __va(x) ((void *)((unsigned long) (x)))
*((unsigned short *)__va(0x472)) = 0x0000;
Der Wert kann 0x1234 (warm Start) oder 0x0000 (Kaltstart sein).
Eingewickelt in eine main-Funktion kompiliert das Problemlos, beim Versuch es aufzurufen gibt es aber einen Coredump.
Ebenso als kleines Assembler Programm (movw $0x1234,0x0000) kompiliert es und erzeugt einen Coredump.
Ich vermute das ganze ist irgendwie abgesichert vom Linux Kernel aus.
Habt ihr einen Tip das hinzubekommen??
Alfred
Hard Reboot?
Re: Hard Reboot?
Nein, denn es fehlen jegliche Infos. Selbst ob es sich überhaupt um ein Debian handelt, können wir nur vermuten...
Re: Hard Reboot?
Mir fällt dazu noch https://en.wikipedia.org/wiki/Magic_SysRq_key (b) ein:
Wenn du kannst, mach das vorher mit s und u, siehe Wiki-Seite. Das ist ziemlich universell, man kann das aber einzeln abschalten (und nicht alle sind in allen Systemen freigeschaltet).
Code: Alles auswählen
# echo b > /proc/sysrq-trigger
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht