Ich habe vier 512 MB RAM-Module in einem Server. Das vierte RAM zeigt nur für ein Bit einen Fehler an, wenn ich memtest86+ verwende, um die RAMs zu testen. Selbst wenn ich das RAM im vierten Steckplatz mit einem anderen RAM austausche, erhalte ich immer noch einen RAM-Fehler im vierten Steckplatz an genau derselben Stelle. Daher wollte ich eine bestimmte Adresse (oder 4-KB-Seite, falls erforderlich) des RAM blockieren, damit der Server sie nicht verwenden kann. Der Server läuft unter Fedora 11 und wird nur zu Testzwecken verwendet. Er hostet keine Benutzeranwendungen. Irgendeine Idee, wie ich die Verwendung eines bestimmten Teils des RAM blockieren kann? Oder was dazu führt, dass der Fehler bei einem bestimmten Byte auftritt, unabhängig vom installierten RAM-Modul.
Antwort1
Ich habe kürzlich herausgefunden, dass es einen Kernelparameter gibt (der beim Booten bereitgestellt werden muss, beispielsweise in der Grub-Konfiguration).
memmap=[Betrag]M$[Startort]M
Sie können es mehrfach angeben, um Teile des Speichers zu sperren.
z.B.
memmap=3M$217M
sperrt Megabyte von 217 bis 219
Antwort2
Früher gab es den Patch „BadMEM“ für Linux, allerdings wäre ein gewisser Aufwand erforderlich gewesen, um ihn auf einen aktuellen Kernel zu aktualisieren.
Antwort3
Das klingt nach einem möglicherweise fehlerhaften Steckplatz auf der Hauptplatine, wie Ihre Tests gezeigt haben. Ich habe noch nie einen Weg gesehen, dies zu umgehen, außer diesen Steckplatz einfach nicht zu verwenden. Meines Wissens gibt es keine einfache Antwort. Ich nehme an, es könnte eine Software erstellt werden, aber wie Nik sagte, wäre das eher eine SO-Frage.
Antwort4
Sie könnten eine Kernel-Erweiterung schreiben, die beim Laden einfach diese Seite zuweist und dann nichts anderes tut.
Leider weiß ich nicht, wie das geht. Als ich noch am VM-System von IBM gearbeitet habe, war das integriert, aber das hilft natürlich nicht.