Błędy pamięci w Ubuntu, ale nie w MemTest86 +

8

Mam błędy btrf i ext4. Po podjęciu decyzji o przetestowaniu pamięci RAM otrzymałem następujące powtarzające się błędy z memtester . Zawsze uzyskuję podobne błędy po uruchomieniu memtester . Zwykle za godzinę, ale zajęło to 4-5 godzin w jednym czasie.

Pamięci RAM mojego komputera są lutowane. Dostałem dodatkowy pusty slot. W BIOS-ie nie ma ustawień do wyłączania wbudowanej pamięci RAM.

Uruchomiłem:

  • Memtest86 + za 8 przebiegów (~ 8 godzin)
  • MemTest86 na 18 przebiegów (~ 9 godzin)
  • memtester i stressapptest na domyślnej Fedorze 27, zainstalowane na pendrivie (~ 10 godzin)
  • memtester i stressapptest na Ubuntu 17.10 Ustawienia domyślne na żywo (~ 2 godziny)
  • memtester i stressapptest na Ubuntu 17.10 na pamięci USB (~ 8 godzin)
  • # debsums --changed Jedynym zmienionym plikiem był obraz motywu.

Nie wydrukowali żadnych błędów.

Używam Ubuntu 17.10 (uaktualniony od 17.04) z domyślnym jądrem. Kernel nie jest skażony. To laptop ASUS z Intel Haswell i3.

  • Testowany również z Linux 4.14.13 i 4.15.0-rc3, rc4, mainline.
  • Przetestowano także z oczyszczonym pakietem intel-microcode.

Błąd jest powtarzalny, albo Nouveau jest wyłączone lub włączone, nie załadowano sterowników binarnych nvidia.

Na czarnej liście znajdują się następujące moduły: mtd intel_spi_platform intel_spi , ponieważ nie są one ładowane podczas domyślnej instalacji Fedory 27 i wydają się zamykać niektóre laptopy Lenova. Błędy nie zostały zatrzymane.

Wynik

uname -a

Linux hostname 4.13.0-19-generic #22-Ubuntu SMP Mon Dec 4 11:58:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Wynik

# lsmod

link

Wyjście% # lsmod Fedory 27

link

Aktualna sytuacja

Włożyłem mój dysk twardy do laptopa (zapasowy laptop), który uważam za dobry i przeprowadziłem tam testy. Mam błędy. Teraz jestem prawie pewien, że jest to problem z oprogramowaniem. Nigdy nie byłem w stanie wyzwolić błędów na moim laptopie ze świeżym Ubuntu ani z Fedorą próbującą wiele godzin.

Co powinienem zrobić?

Próbka błędów:

Loop 6:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : testing 262
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94000.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94008.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94010.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94018.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94020.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94028.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94030.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94038.
  Walking Ones        : ok         
  Walking Zeroes      : ok         
  8-bit Writes        : ok
  16-bit Writes       : ok

Podobny błąd w obu gniazdach pamięci RAM jest pełny:

Loop 1:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : testing   4
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80000.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80008.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80010.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80018.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80020.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80028.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80030.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80038.
  Bit Flip            : setting 141

Błąd stressapptest :

Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e000(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e008(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e010(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e018(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e020(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e028(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e030(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e038(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a

Podejrzewam, że konfiguracja Ubuntu w połączeniu ze sprzętem mojego laptopa jest odpowiedzialna za te błędy. Prawie za każdym razem w paczkach po osiem.

Nieważne, luźno powiązane informacje poniżej

O błędach btrfs; Używałem 17.04. Pytałem w btrfs 'irc. Powiedziano mi, że może to być błąd sprzętowy lub w jakiś sposób błąd zarządzania pamięcią. Część strony z metadanymi btrfs została wypełniona zerami, tak jak teraz. Zrobiłem memtester kilka razy, przerzuciłem się na ext4 i obwiniłem sterownik binarny nvidia.

Polecenia i ich parametry, których używam:

# stressapptest -M 10000 -s 1800

10000 to dostępna pamięć, którą mogę przetestować. Dostaję to przez free -m -s to sekundy.

# memtester 4096

Procesor laptopa ma 2 rdzenie, więc zwykle zaczynam dwa wystąpienia. 4096    jest połową obecnej dostępnej pamięci przez free -m

    
zadawane Artyom 05.12.2017, 18:16
źródło

1 odpowiedź

1

Usunięta odpowiedź była bliska

Odpowiedź została usunięta na tym pytaniu i odpowiedzi:

  

Czy próbowałeś już ponownie zainstalować Ubuntu, ponieważ brzmi jak system operacyjny   błąd zarządzania pamięcią poziomu

Moja odpowiedź jest podobna, ponieważ dotyczy zarządzania pamięcią na bardzo niskim poziomie; KASLR na poziomie jądra.

Co robi KASLR

KASLR oznacza K ernela A S S tempo L ayout R andomizacja. Nigdy nie słyszałem, żeby było głośno, ale w moim umyśle wymawiam "Casler". Pomyśl przyjaznego ducha w maszynie. KASLR jest miarą bezpieczeństwa, która pozwala losować, które lokalizacje pamięci rezydują w modułach jądra. Teoria jest trudniejsza do zhakowania jądra, gdy nie można polegać na tym samym kodzie zawsze znajdującym się w tym samym miejscu pamięci.

Operacja KASLR może być uważana za przeciwieństwo testerów pamięci, które powtarzalnie odczytują i zapisują w tych samych lokalizacjach pamięci, które nie oczekują ŻADNYCH ZMIAN. Są to przeciwieństwa, przyciąga mnie (idiom zauważył), do wyszukiwania google na KASLR i błędów pamięci. Jeden w szczególności pozornie niepowiązany może zasługiwać na wiadomość o github z linkami do tego pytania i odpowiedzi. Powodem jest to, że uważają, że są jedynymi, których skutkiem jest zmiana adresów pamięci (jeśli czytam poprawnie ich wątek). Pierwsze trzy hity pochodzą od RedHata , którego nie lubię linkować, ponieważ ich strony internetowe są częściowymi wpisami, aby uzyskać roboty wyszukiwania w Google, a potem każą ci płacić za przeczytanie.

Znane są problemy, gdy KASLR ładuje jądro "stuff" do środka mapy pamięci, której nie powinien wykonywać. Niestety nie mogę sobie przypomnieć linku, który znalazłem w zeszłym tygodniu, aby dołączyć do dzisiejszej odpowiedzi. Łącze miało łatkę / obejście dla kierowania KASLR, aby nie używać określonych lokalizacji pamięci.

Po potwierdzeniu znanych problemów z KASLR i lokalizacjami w pamięci skomentowałem pod pytaniem, aby wyłączyć KASLR i powtórzyć testy pamięci. Odpowiedź stwierdzała, że ​​wydaje się być skuteczna, więc publikuję tę odpowiedź.

Jak wyłączyć KASLR

Chociaż od kilku lat używam opcji wiersza poleceń jądra "grublr", stała się ona domyślną wersją jądra, ponieważ przynajmniej wersja 4.12 . Aby wyeliminować ładowanie KASLR z ładowania, edytuj /etc/default/grub i zmień ten wiersz:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

Możesz mieć inne opcje oprócz "cichych" i "plusk". Ważnym krokiem jest dodanie "nokaslr" i pozostawienie innych opcji na miejscu.

Następnie zapisz plik i uruchom:

sudo update-grub

Oczywiście innym sposobem wyłączenia KASLR jest użycie starszego jądra jak 4.4.0 w Ubuntu 16.04.1, gdy KASLR nie został automatycznie włączony.

    
odpowiedział WinEunuuchs2Unix 29.12.2017, 01:32
źródło

Przeczytaj inne pytania na temat tagów