Il arrive que des petits morceaux de RAM se mettent "en grève" et déclenchent des arrêts intempestifs de certains programmes. Cela se manifeste le plus souvent lors de traitements intensifs telles les compilations de noyaux. C'est ce qui m'est arrivé sur une machine assez ancienne pour laquelle je voulais installer un noyau récent. Le script de compilation abandonnait en route en signalant diverses erreurs telles des segfault; gcc visiblement se trouvais perdu, j'ai même eu un "oops" du noyau.
J'ai donc chargé le programme "memtest86" (apt-get memtest86) en prenant la version la plus récente disponible. Le programme s'installe pour démarrer au "boot", il ne reste alors qu'à rebooter et choisir l'exécution de "memtest86". Il faut le configurer pour une sortie des erreurs au format "BADRAM", frapper "c" au démarrage du programme et choisissez "Rapport" puis le format "BADRAM".
Après un temps certain .... prévoir une bonne heure pour un scan "consistant" et pas trop de mémoire vous pouvez voir apparaître au fur et à mesure sur l'écran les paramètres à utiliser pour BADRAM.
Le plus intéressant actuellement est d'utiliser ces valeurs dans GRUB (il faut disposer d'une version assez récente de GRUB2) sous la forme d'un paramètre "GRUB_BADRAM="0x.............,0x............" en utilisant les valeurs de la sortie écran de "memtest86".
Pour une Debian il faut aller voir dans /etc/default/GRUB où une ligne préfabriquée existe :
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"