Portál AbcLinuxu, 21. května 2025 11:21
2440921089 164 361 2440921090 167 151 2440921091 0 14 2440921092 0 66 2440921093 0 344 2440921094 0 204 2440921095 0 137 2440921096 0 166 2440921097 305 177 2440921098 231 212 2440921099 0 265 2440921100 0 33 2440921101 0 311 2440921102 0 320 2440921103 0 223 2440921104 0 11 2440921105 0 122 2440921106 0 311 2440921107 0 101 2440921108 0 345 2440921109 0 103 2440921110 0 112 2440921111 0 30 2440921112 0 174 2440921113 0 341 2440921114 0 164 2440921115 0 141 2440921116 0 204 2440921117 0 245 2440921118 0 253 2440921119 0 20 2440921120 0 212 2440921121 0 266 2440921122 0 100 2440921123 0 32 2440921124 0 42 2440921125 0 333 2440921126 0 176 2440921127 0 313 2440921128 0 225 2440921129 251 306 2440921130 223 146 2440921131 0 315 2440921132 0 177 2440921133 0 341 2440921134 0 176 2440921135 0 320 2440921136 0 245 2440921137 11 241 2440921138 6 333 2440921139 0 233 2440921140 0 342 2440921141 0 312 2440921142 0 24 2440921143 0 364 2440921144 0 246 2440921145 23 226 2440921146 0 121 2440921147 0 154 2440921148 0 304 2440921149 0 326 2440921150 0 325 2440921151 0 166 2440921152 0 116To vypadalo na hardwarovou chybu RAM, podloženou navíc tím, že jsem nedávno upgradoval z 1x 4GB DDR3 na 2x 4GB DDR3. Zkusil jsem tedy 'memtest' tří různých verzí (včetně té od PassMarku), nechal je jet několik hodin (i přes noc), ale žádná chyba se neprojevila. Uvědomil jsem si ale, že jsem již na podobně poškozený soubor narazil ještě před upgradem paměti a že mi ještě dříve, po výměně bezproblémového Debianu 8 za Debian 9, začal velmi často padat Firefox. Tam by mohla být souvislost. Zdálo se tedy, že se chyba projevuje jen v běžícím systému. Provedl jsem tedy kontrolu integrity systému pomocí nástroje 'md5sums' (vše OK) a následně nainstaloval balíček 'memtester', který umí testovat paměť z běžícího systému. Z principu funkce sice nemůže otestovat celou RAM, ale přesto se v něm chyba poměrně rychle projevila:
FAILURE: 0xfffffffffff7ffff != 0x0000ee25 at offset 0x26f5f7f8. FAILURE: 0xfffffffffff7ffff != 0x0001ab24 at offset 0x26f5f800. FAILURE: 0xfffffffffff7ffff != 0x00000000 at offset 0x26f5f808. FAILURE: 0xfffffffffff7ffff != 0x00000000 at offset 0x26f5f810. FAILURE: 0xfffffffffff7ffff != 0x00000000 at offset 0x26f5f818. FAILURE: 0xfffffffffff7ffff != 0x000185ef at offset 0x26f5f820. FAILURE: 0xfffffffffff7ffff != 0x0000250a at offset 0x26f5f828. FAILURE: 0xfffffffffff7ffff != 0x0000002b at offset 0x26f5f830.Obdobná chyba se projevovala při různých testech (tahle je z Walking Ones), v rámci jednoho běhu memtesteru se neměnil offset, stále šlo o přepis přesně 64 bajtů a nová data měla stále stejnou strukturu zaplnění jednotlivých bytů. Tedy stejná místa s nulami, zbytek hodnot jiných, např. další průchod při stejném běhu (proto stejný offset), test Block Sequential, vypadal takto:
FAILURE: 0x1b1b1b1b1b1b1b1b != 0x000420e6 at offset 0x26f5f7f8. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x0010a507 at offset 0x26f5f800. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x00000000 at offset 0x26f5f808. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x00000000 at offset 0x26f5f810. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x00000000 at offset 0x26f5f818. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x00105991 at offset 0x26f5f820. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x00004b2e at offset 0x26f5f828. FAILURE: 0x1b1b1b1b1b1b1b1b != 0x00000048 at offset 0x26f5f830.Nastudoval jsem si, jak se dá s pomocí '/proc/PID/maps' a '/proc/PID/pagemap' přepočítat offset na fyzickou adresu modulu RAM, ale než jsem to použil, tak jsem zkusil spustit 'memtester' na systému s 4GB RAM. Nejprve pouze se starým modulem v prvním slotu, pak pouze s novým modulem v druhém slotu. Chyba se projevila v obou případech a opět vypadala úplně stejně! Tím jsem mohl vyloučit HW chybu obou modulů RAM. Zkusil jsem tedy (již opět s 2x 4GB) přepočet offsetu na fyzickou adresu RAM a po každém rebootu jsem dostal jiné místo v paměti (i když zrovna v tomto jsem mohl udělat chybu, protože výpočet je poměrně komplikovaný a není jej jak ověřit). To mi jen potvrdilo, že paměti jsou OK. Dále jsem zkusil spustit 'memtester' v Debianu 8, který mám prozřetelně jen odsunutý na partiton na mechanickém disku. Běžel celou noc a žádná chyba se neprojevila. Na disku mám i Windows 7 kvůli několika málo hrám (paměť jsem upgradoval kvůli Flight Sim World) a ani v nich jsem nikdy nenarazil na nic, co by ukazovalo na chybu paměti. Něco v Debianu 9 však těch 64 bajtů paměti neustále přepisovalo. Ale co a za jakých okolností? Možností, co může přepisovat paměť RAM je více, ale žádná není dostupná aplikacím. Může to být jen nějaký kernelový modul, neposlušný PCI hardware a nebo SMM. Následovaly pokusy:
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.