Odbudowuję trzyletni system AMD Athlon 5000, który ma płytę główną „ASRock NF7G-FullHD” z 4 gniazdami pamięci, oznaczonymi „DDR2 800”, o łącznej pojemności 8 GB. Oprócz 550 W PS i 500 GB dysku kupiłem „dopasowaną parę” 2 ea. 2 GB DIMM s, które niestety mają trwałe błędy jednobitowe w kilku miejscach (patrz rysunek).
Jaki byłby efekt uruchomienia Linuksa na tym systemie z taką pamięcią? To znaczy. , jak prawdopodobna jest niestabilność, niewykryty błąd lub niska wydajność? Czy będą awarie systemu operacyjnego, segfaults, różne awarie aplikacji, czy co? Czy istnieje sposób mapowania lub wyłączania uszkodzonych fragmentów pamięci RAM?
Uwaga: 4 gniazda pamięci są oznaczone jako DDRII_1,2,3,4; 1 i 2 są żółte, 3 i 4 są pomarańczowe. Powyższy obrazek Memtest86 został zrobiony, gdy miejsca zostały wypełnione (nowe, stare, nowe, stare). Błędy występują również na podobnych adresach z kolejnością wypełniania (stare, stare, nowe, nowe), z taką samą szybkością dostępu do pamięci (około 2,9 GB / s), jak na zdjęciu. Wypełnione (stare, stare, -, -) lub (stare, -, stare, -) lub (nowe, -, nowe, -) żadne błędy nie wystąpiły w ciągu kilku godzin testowania, ale (nowe, nowe, -, -) z jakiegoś powodu nie dostał się do BIOSu ani przez niego, a przycisk resetowania wydawał się nie mieć żadnego efektu i nie było sygnału wideo. Z 3 szczelinami wypełnionymi na przykład (nowy1, stary, nowy0, -) wystąpił jeden błąd (znajdujący się w pierwszych GB pamięci RAM) w ciągu 1,5 godziny testowania; z (stary, stary, nowy0, -), brak błędów w 2 godzinach testów. Problem z wydajnością w konfiguracjach 6 GB to szybkość dostępu do pamięci wynosząca tylko 1,7 GB / s.
Podsumowanie pytania: Jaki byłby efekt uruchomienia Linuksa w tym systemie z pamięcią uzależnioną od niektórych błędów jednobitowych? Czy istnieje poprawka inna niż wymiana pamięci RAM?
źródło
Odpowiedzi:
Szybkość dostępu do pamięci jest niższa przy tylko 3 układach, ponieważ pamięć dwukanałowa powinna być zawsze instalowana parami.
Błędy pojedynczego bitu mogą spowodować, że wszystko się wydarzy. Jak prawdopodobne jest, że zależy to od tego, jak bardzo Twoja pamięć zniknęła, ale nie jest to dobry pomysł. Niestabilność systemu jest tym, na co powinieneś mieć nadzieję. Możesz również zapisać krytyczny plik systemowy (lub inny ważny dla Ciebie plik) w tej części pamięci, zmodyfikować go i zastąpić oryginalny plik. Tak więc błąd jednobitowy może zepsuć cały system operacyjny.
Są szanse, że tylko jeden z pendrive'ów jest uszkodzony (prawdopodobnie nowy1). Pamięć PYG objęta jest dożywotnią gwarancją, więc możesz spróbować uzyskać działającą. Słyszałem bardzo złe rzeczy na temat pamięci PYG i obsługi klienta, ale nie wiem na pewno.
źródło
Jak już powiedziano, pojedynczy błąd pamięci może spowodować, że prawie wszystko pójdzie nie tak lub nigdy nie zauważysz tego.
Miałem przed sobą kiepski dysk pamięci, a zły punkt w pamięci RAM oznaczał, że Windows czasami działał, ale zepsułby się dość regularnie. Nigdy nie możesz przewidzieć, co zostanie przydzielone do dowolnego miejsca w pamięci RAM w systemie (ze względu na sposób przydzielania pamięci przez system operacyjny) i chociaż możesz mieć szczęście i tylko złamać jakiś nieistotny program lub uszkodzić jedną grafikę, jest dobre szansa, że zrobi to o wiele gorzej i ryzykujesz swoimi danymi przy użyciu złej pamięci RAM.
Linux ma wsparcie dla BadMem co, jeśli dobrze pamiętam, może oznaczać, że możesz „zmapować” zły blok pamięci. Nie mogłem sprawdzić, czy obsługuje najnowsze jądro, aby sprawdzić, czy jest ono dla Ciebie przydatne.
Moja rada jest następująca: w krótkim czasie bądź przygotowany na utratę danych i ogólną niestabilność systemu, w dłuższej perspektywie powinieneś dowiedzieć się, który kij jest wadliwy i zastąpić go.
źródło
Aby móc uruchamiać programy, komputer pobiera instrukcje dotyczące tego, co robić z pamięci. (programy są ładowane do pamięci). Instrukcje są po prostu sekwencjami liczb i są językiem komputerów.
Zbudujmy prosty język, w którym 1 = kopia, 3 = od, 4 = do
1 (kopia), 50,3 (od), 100,4 (do), 200;
Tak więc sekwencja liczbowa 1,50,3,100,4,200 może oznaczać dla komputera skopiowanie 50 bajtów danych z lokacji pamięci 100 do lokacji pamięci 200. Jest to to samo, co przeniesienie 50 skarpet z jednej szuflady do drugiej.
Teraz, jeśli pamięć jest wadliwa i występuje błąd pojedynczego bitu, liczba może na przykład zmienić się z 1 na 129. Zakładając więc, że dowolna liczba w powyższej sekwencji może zostać zmieniona, może dojść do wielu interesujących błędów. Jeśli 50 zostanie zmienione na 35 lub 188 lub cokolwiek innego, łatwo jest zrozumieć, że ilość danych, które mają zostać skopiowane, będzie błędna i może zastąpić inne dane (które mogą być instrukcjami) w pamięci. jeśli 1 zostanie zmienione na 5, komputer może nawet nie zrozumieć, że ma cokolwiek kopiować. Tak jak wykazano, błąd pojedynczego bitu może prowadzić nie tylko do pojedynczego błędu, ale także do innych błędów spowodowanych przez pierwszy błąd.
Linux (lub jakikolwiek inny system operacyjny) jest zasadniczo taki sam jak reszta programów uruchamianych na komputerze: sekwencja liczb, która mówi komputerowi, co robić. Jeśli ta sekwencja zostanie uszkodzona, programy nie sprawią, że komputer zrobi to, co było zamierzone, a zatem mogą wystąpić różnego rodzaju problemy.
Pamiętaj również, że muzyka, wideo lub obrazy to także tylko ciąg liczb, więc obowiązuje również ta sama zasada. Warto dodać, że w zależności od pliku uszkodzenie może nie być zauważalne (na przykład zły piksel na zdjęciu), ale nie oznacza to, że plik jest w porządku. W tekście, który czytasz na stronie internetowej, może nawet pojawić się literówka, jeśli dany znak jest przechowywany w złym miejscu w pamięci.
Istnieją układy scalone zaprojektowane do odzyskiwania błędów pojedynczych bitów i wykrywające błędy dwubitowe (pamięć ECC).
Mam nadzieję, że to wyjaśnia, dlaczego dowolny system operacyjny nie będzie działać, jeśli pamięć zawierająca jego dane i / lub instrukcje są uszkodzone. Najbezpieczniejszym sposobem rozwiązania tego problemu jest wymiana uszkodzonego barana. W międzyczasie możesz chcieć zmapować zły obszar pamięci za pomocą parametru jądra memmap (poniższy tekst został skopiowany z odpowiedzi, którą otrzymałem na inne pytanie).
źródło
Miałem ten sam problem, ale okazało się, że dostępne odpowiedzi są mylące i niekompletne, więc przygotowałem przewodnik krok po kroku, zakładając jak najmniejsze tło.
źródło
man sudoers
, „W przeciwieństwie do su (1), gdy sudoers wymaga uwierzytelnienia, sprawdza poświadczenia wywołującego użytkownika, a nie poświadczenia użytkownika docelowego (lub roota)”, chyba że sudoer zaznaczy inaczej