Rozwiązywanie problemów w systemie Linux: kompletny i praktyczny przewodnik

Ostatnia aktualizacja: 23 kwietnia 2026
  • Dobra diagnostyka systemu Linux opiera się na zbieraniu danych, analizowaniu dzienników i wdrażaniu zmian w sposób uporządkowany i odwracalny.
  • Narzędzia systemowe (journalctl, dmesg, smartctl, lm-sensors, fsck, ethtool, htop itp.) umożliwiają lokalizację usterek oprogramowania i sprzętu.
  • Zrozumienie typów błędów (jądra, systemu plików, sieci, aplikacji i sprzętu) pomaga w wyborze odpowiednich testów w każdym przypadku.
  • Kopie zapasowe, regularne aktualizacje i odpowiednia dokumentacja redukują ryzyko i ułatwiają szybsze rozwiązywanie przyszłych problemów.

Diagnozowanie problemów w systemie Linux

Jeśli korzystasz z Linuksa codziennie, prędzej czy później natkniesz się na dziwne błędy: system się nie uruchamia, usługa zawiesza się bez wyraźnego powodu, połączenie Wi-Fi ciągle się zrywa lub dysk twardy zaczyna wydawać niepokojące dźwięki. Te problemy wcale nie są tragedią, a wręcz fantastyczną okazją, by poznać wewnętrzne mechanizmy działania systemu i opracować… solidna metodologia diagnozowania problemów w systemie Linux.

W przeciwieństwie do bardziej zautomatyzowanego podejścia innych systemów (takich jak narzędzia do rozwiązywania problemów systemu Windows lub polecenia takie jak DISM/SFC), Linux oferuje bardzo wydajny ekosystem narzędzia diagnostyczne, szczegółowe dzienniki i narzędzia monitorująceSztuka nie polega tylko na zapamiętywaniu poleceń, ale na zrozumieniu procesu: jak zbierać informacje, jak je interpretować i jak działać, aby nie pogorszyć sytuacji.

Ogólne podejście do diagnozowania problemów w systemie Linux

Rozwiązywanie problemów w systemie Linux nie powinno polegać na podejściu typu „zobaczymy, co się stanie, jeśli dotknę tego miejsca”, lecz raczej uporządkowany i powtarzalny proces oparty na logice i obserwacjiIm bardziej będziesz systematyczny, tym szybciej dotrzesz do źródła problemu i tym mniejsze ryzyko, że coś po drodze zepsujesz.

Podstawową zasadą jest zebranie jak największej ilości informacji o usterce przed dotknięciem czegokolwiek. Obejmuje to zanotowanie Dokładny komunikat o błędzie, kiedy się pojawia i co robiłeś przedtemSzczegóły takie jak „problem zaczął się po aktualizacji”, „problem występuje tylko podczas korzystania z tego programu” lub „problem występuje, gdy podłączę to urządzenie USB” są bezcenne w przypadku diagnostyki.

Warto również zwrócić uwagę, czy problem powtarza się konsekwentnie, czy też pojawia się okresowo. Wiedza o tym, czy możesz spowodować błąd, kiedy tylko chcesz Pozwoli Ci to na testowanie rozwiązań w sposób kontrolowany i potwierdzenie, czy rzeczywiście zadziałały.

Podczas zbierania danych niezwykle ważne jest, aby uruchomić swoją bardziej spostrzegawczą stronę: komunikaty na ekranie, kontrolki diagnostyczne płyty głównej, nietypowe dźwięki mechaniczne dochodzące z dysków twardych lub wentylatorów, zapachy spalenizny, obszary nadmiernie gorące w dotyku… Twoje zmysły (wzrok, słuch, węch i dotyk) również stanowią część zestawu diagnostycznegoszczególnie jeśli podejrzewasz problem ze sprzętem fizycznym.

Mając już wstępne informacje, kolejnym logicznym krokiem jest aby ustalić przyczynę awariiCzy to problem z oprogramowaniem (jądrem, systemem plików, usługami, aplikacjami), konfiguracją (siecią, uprawnieniami, sterownikami), czy sprzętem (pamięcią RAM, dyskiem, temperaturą, zasilaniem, kartą sieciową, kartą graficzną itp.)? Ta klasyfikacja pomoże Ci znaleźć odpowiednie narzędzia w każdym przypadku.

Kluczowe zasady rozwiązywania problemów w systemie Linux

Narzędzia do diagnozowania problemów w systemie Linux

Dobra diagnoza opiera się na kilku podstawowych zasadach, które należy jak najszybciej przyswoić. Pierwsza to zbierać dane metodycznieNie wystarczy powiedzieć „moje Wi-Fi zawodzi”. Musisz wiedzieć, czy występują przerwy w działaniu sieci, czy problem dotyczy tylko Twojego sprzętu, czy dotyczy konkretnej usługi czy całej łączności, co zawiera dziennik systemowy, czy występują błędy sterowników itp.

Kolejnym etapem jest analiza zebranych informacji za pomocą odpowiednich narzędzi. W systemie Linux masz dostęp do bardzo szczegółowe dzienniki systemowe, polecenia monitorowania zasobów oraz specjalistyczne narzędzia sieciowe i sprzętowePowszechną praktyką jest łączenie kilku źródeł, np. poprzez użycie journalctl y dmesg aby przejrzeć komunikaty i usługi jądra, góra lub góra aby sprawdzić obciążenie i narzędzia sieciowe, takie jak ping, ss lub tcpdump aby zobaczyć co się stanie z połączeniami.

Gdy masz już rozsądną hipotezę, czas na przemyślane testowanie rozwiązań. Oznacza to, Wprowadzaj zmiany pojedynczo, sprawdzaj rezultaty i jeśli nie zadziałają, cofnij zmiany.Nigdy nie należy wprowadzać „koktajlu” jednoczesnych zmian, ponieważ jeśli problem zniknie, nie będzie wiadomo, która zmiana go rozwiązała, a jeśli sytuacja się pogorszy, nie będzie też wiadomo, co go zepsuło.

Kolejnym fundamentalnym filarem, o którym wielu zapomina, jest dokumentacja. Rejestrowanie wykonywanych poleceń, modyfikowanych plików i uzyskiwanych wyników pozwala... Wykorzystaj rozwiązanie, które zadziałało, podziel się nim z innymi i nie marnuj czasu na ponowne badanie tego samego zagadnienia kilka tygodni później.Ponadto, gdy dzielisz się swoimi notatkami na forach lub wiki, przyczyniasz się do rozwoju społeczności Linux.

Na koniec pamiętaj o zasadzie prostoty. Im bardziej złożony jest system, z usługami, demonami i warstwami abstrakcji, tym większe prawdopodobieństwo, że coś pójdzie nie tak. Zawsze, gdy to możliwe, Utrzymuj swój system tak prostym i czystym, jak to możliweMniej zbędnych usług, mniej zbędnego oprogramowania, mniej egzotycznych warstw. To zmniejsza powierzchnię, na której mogą pojawić się problemy i znacznie upraszcza diagnostykę.

Przygotuj system przed dotknięciem czegokolwiek: kopie zapasowe i aktualizacje

Zanim zaczniesz modyfikować konfiguracje, naprawiać systemy plików lub aktualizować jądra, upewnij się, że w razie problemów będziesz mógł odzyskać swoje dane. Kopie zapasowe w systemie Linux to Twoja siatka bezpieczeństwaszczególnie jeśli zamierzasz pracować z krytycznymi partycjami, dyskami lub usługami.

Bardzo elastyczną opcją jest użycie rsync do tworzenia przyrostowych kopii zapasowych. Zwykle łączy się je z opcjami takimi jak: -a (tryb pliku, zachowuje uprawnienia, właściciela i daty), -v (szczegółowy wynik) oraz parametr postępu, aby zobaczyć postęp kopiowania. Ważne jest, aby mieć dostępny katalog docelowy z wystarczającą ilością miejsca, najlepiej na dysku zewnętrznym lub partycji oddzielonej od systemu.

Jeśli wolisz spakować wszystko do jednego pliku, możesz użyć smołaużywając parametrów takich jak -c tworzyć, -z skompresować za pomocą gzip, -v aby zobaczyć postęp i -f aby określić nazwę wynikowego pliku. Następnie zaleca się sprawdzenie integralności kopii, wyświetlając jej zawartość za pomocą polecenia tar, aby mieć pewność, że Plik kopii zapasowej nie jest uszkodzony..

Jeśli chodzi o miejsce docelowe, kluczowe jest, aby kopia nie znajdowała się na tym samym dysku, co system, który chcesz chronić. zewnętrzny dysk USB, pamięć masowa w chmurze za pomocą narzędzi takich jak rclone lub osobna partycja To rozsądne wybory. Chodzi o to, że jeśli Twój główny dysk twardy ulegnie awarii lub system stanie się bezużyteczny, będziesz mieć z czego go przywrócić.

Kolejnym wysoce zalecanym wstępnym krokiem jest zaktualizować systemWiele problemów znika po prostu poprzez instalację poprawionych wersji pakietów i jąder. W Debianie/Ubuntu powszechną praktyką jest uruchomienie sekwencji aktualizacji listy pakietów, a następnie aktualizacja zainstalowanych pakietów i sprawdzenie wyników pod kątem błędów. W Fedorze i jej pochodnych polecenia aktualizacji pakietów pełnią podobną funkcję i to samo dotyczy... pacman-Suyu W przypadku Arch Linuxa szczególnie ważne jest aktualizowanie systemu, ponieważ jest to dystrybucja udostępniana w trybie ciągłym.

  Format konserwacji naprawczej: Czym jest i jak go stosować?

Podstawowe kontrole sprzętu: procesora, pamięci RAM, dysków i czujników

Gdy system działa bardzo wolno, zawiesza się losowo lub restartuje bez wyraźnego powodu, nie zakładaj od razu, że to wina oprogramowania. Często przyczyna problemu leży w... zdegradowany sprzęt, nadmierne temperatury lub wadliwe moduły pamięci.

Aby uzyskać przegląd sprzętu, możesz użyć poleceń takich jak Lshw (szczegółowe informacje o urządzeniu), lsblk (lista dysków i partycji) lub określone narzędzia, takie jak dmidecode, który wyodrębnia dane z BIOS-u/UEFI. Na przykład za pomocą dmidecode -t pamięć Otrzymujesz informacje o zainstalowanych modułach pamięci RAM (typ DDR, pojemność itp.), podczas gdy w przypadku dmidecode -t 16 Czy możesz ją zobaczyć maksymalna pojemność pamięci obsługiwana przez płytę głównąAby głębiej zagłębić się w aspekty operacyjne pamięci, zapoznaj się z zarządzanie pamięcią w systemie Linux.

Jeśli chcesz szybko podsumować elementy pamięci, lshw -short -C pamięć Oferuje krótki przegląd i dmidecode –type memory | grep -E «Speed|Skonfigurowana prędkość zegara» Można porównać prędkość nominalną modułów z prędkością skonfigurowaną przez chipset. To dobry sposób na sprawdzenie, na przykład, czy moduł obsługujący 3200 MT/s działa z prędkością 2400 MT/s, ponieważ współdzieli kanał z wolniejszym modułem.

Monitorowanie temperatury to kolejny kluczowy aspekt. Dzięki pakietowi czujniki lm Możesz uzyskać odczyty temperatury i napięcia z procesora i innych czujników płyty głównej. Po instalacji zaleca się uruchomienie czujniki sudo - wykrywają aby wykryć i aktywować wszystkie dostępne czujniki, a następnie użyć poleceń takich jak oglądać -n czujniki 2 dla Monitoruj w czasie rzeczywistym, czy procesor lub pamięć RAM nie przegrzewają się..

W przypadku dysków twardych (HDD lub SATA SSD) należy użyć narzędzi takich jak: temperatura dysku twardego umożliwiają odczyt temperatury urządzenia, podczas gdy opakowanie czujnik lub narzędzia graficzne takie jak xsensory Zapewniają one historyczne i graficzne widoki temperatur. Na przykład, jeśli dysk SSD stale pracuje na granicy swojego zakresu temperatur, jest to wyraźny sygnał, że coś jest nie tak z wentylacją lub obciążeniem.

Diagnostyka stanu dysków i systemu plików

Awarie dysków i błędy systemu plików są przyczyną niezliczonych problemów, od uszkodzonych plików po problemy z uruchomieniem systemu. Linux oferuje kilka narzędzi do rozwiązywania tych problemów. sprawdź stan fizyczny dysku i jego logiczną integralność system plików.

Na początek możesz wyświetlić listę podłączonych urządzeń pamięci masowej za pomocą poleceń takich jak lsblk-fm o fdisk -lW razie potrzeby możesz odfiltrować wirtualne dyski pętli zwrotnej. Pozwala to zweryfikować, które dyski i partycje są rozpoznawane przez system, ich systemy plików i punkty montowania.

następujący smartmontools (Użycie polecenia smartctl) jest niezbędne do wykorzystania technologii SMART wbudowanej w nowoczesne dyski twarde. Najpierw należy upewnić się, że SMART jest włączony na dysku za pomocą odpowiedniego polecenia aktywacji. Następnie można sprawdzić atrybuty, takie jak: Godziny_włączenia_zasilania aby sprawdzić, ile godzin dysk był uruchomiony lub uruchomić smartctl -H aby uzyskać szybką ocenę stanu urządzenia.

Oprócz natychmiastowych kontroli smartctl umożliwia uruchomienie automatyczne testy diagnostyczneKrótki test do szybkiej kontroli i długi lub rozszerzony test do znacznie dokładniejszej analizy. Następnie możesz przejrzeć wyniki i szczegółowe atrybuty za pomocą polecenia wyświetlającego wszystkie informacje o dysku. Jeśli wykryjesz realokację sektorów, narastające błędy lub stan „przed awarią”, czas pomyśleć o wymianie dysku.

Kolejnym ważnym narzędziem jest fsckfsck odpowiada za sprawdzanie i naprawianie błędów logicznych w systemach plików. Uruchomienie fsck na partycji wiąże się z pewnym ryzykiem, jeśli zawiera ona ważne dane, dlatego konieczne jest jego wcześniejsze uruchomienie. mieć poprzednią kopię zapasową. Można to połączyć z złe bloki aby zlokalizować i oznaczyć uszkodzone sektory, tak aby system unikał ich używania w przyszłości, chociaż jeśli zacznie pojawiać się wiele uszkodzonych bloków, rozsądnie będzie wymienić dysk.

Aby zdiagnozować problemy przestrzenne, df -h Pokazuje wykorzystanie partycji w gigabajtach, podczas gdy df-i Ujawnia procent zużytych inodów. Jest całkiem możliwe, że masz wolne gigabajty, ale 100% inodów jest zajętych, co spowoduje Nieudane tworzenie nowych plików pomimo dostępnego miejscaJest to typowa sytuacja na serwerach, które obsługują miliony małych plików.

Analiza pamięci: błędy ECC, testowanie i stabilność

Wadliwa pamięć RAM może powodować szeroki zakres objawów, od prostych, losowych awarii po ukryte uszkodzenie danych. Jeśli Twój system korzysta z pamięci ECC, sam sprzęt może naprawić pewne błędy, ale to nie znaczy, że możesz zapomnieć o problemie. Poprawione błędy są oznaką, że moduł zaczyna szwankować..

Systemy Linux mogą udostępniać te informacje za pośrednictwem podsystemu EDACPo zainstalowaniu odpowiednich modułów w logach systemowych pojawią się komunikaty rozróżniające błędy naprawione (CE, Corrected Error) i błędy niemożliwe do naprawienia (UE, Uncorrected Error). Te pierwsze oznaczają, że sprzęt naprawił uszkodzony bit, podczas gdy te drugie zazwyczaj powodują błąd. Natychmiastowy alarm paniki jądra zapobiegający zapisaniu uszkodzonych danych na dysku.

Prostym sposobem sprawdzenia, czy jądro zarejestrowało błędy EDAC, jest przejrzenie wyników dmesg | grep EDACJeśli w tym samym module znajdziesz powtarzające się kody CE, oznacza to jasno, który bank pamięci należy wymienić, zanim błędy staną się nie do naprawienia. Aby poznać zaawansowane techniki i narzędzia, zapoznaj się z tym przewodnikiem. debugowanie pamięci w systemie Linux.

Do dokładniejszego testowania zazwyczaj stosuje się narzędzia zewnętrzne, takie jak memtest86Narzędzia te, uruchamiane poprzez rozruch z zewnętrznego nośnika (USB lub podobnego), poddają pamięć RAM intensywnym procesom odczytu/zapisu. wykrywać usterki, które podczas normalnego użytkowania mogą pozostać niezauważone przez wiele miesięcyAby mieć pewność, zaleca się przeprowadzenie testu kilka razy.

Można również poddać komputer ogólnemu obciążeniu, korzystając z narzędzi takich jak: stresTesty te pozwalają na obciążenie procesora, wejścia/wyjścia i pamięci na określony czas, obserwując, czy występują zawieszenia, błędy jądra lub paniki. Jeśli system powtarzalnie ulega awarii pod obciążeniem, prawdopodobnie występuje problem fizyczny (temperatura, zasilanie, pamięć RAM) lub niestabilność jądra lub sterowników.

  Kompletny przewodnik po aktywacji licencji systemu Windows 11 i używaniu kluczy uniwersalnych

Monitorowanie systemu: procesor, procesy, wejście/wyjście i procesor graficzny

Aby zrozumieć, co dzieje się na Twoim komputerze w danym momencie, potrzebujesz dobrych narzędzi monitorujących. Linux oferuje kilka narzędzi konsolowych, które pozwalają na szybki podgląd sytuacji. Które procesy wykorzystują najwięcej zasobów procesora, pamięci, operacji wejścia/wyjścia na dysku lub procesora graficznego?.

Klasyczne polecenia takie jak Top lub jego bardziej przyjazna użytkownikowi wersja htop Pokazują aktywne procesy, użycie procesora, użycie pamięci i średnie obciążenie. Aby dokładnie monitorować aktywność dysku dla każdego procesu, jotop jest bardzo pomocny, podczas gdy nmon Zapewnia globalny widok wielu podsystemów (procesor, pamięć, sieć, dysk) w bardzo kompletnym interfejsie tekstowym.

W obszarze grafiki, wykorzystanie GPU może stać się wąskim gardłem w systemach obsługujących aplikacje intensywnie korzystające z grafiki lub zadania wymagające przyspieszonego przetwarzania. W przypadku kart Intel, pakiet narzędzia Intel GPU Zawiera polecenia takie jak: intel_gpu_top, które w czasie rzeczywistym pokazują obciążenie procesora graficznego, kolejki zadań i wykorzystaną pamięć.

Jeśli pracujesz z kartami graficznymi NVIDIA, możesz używać narzędzi Python, takich jak gpustat lub na ogólnych monitorach, takich jak spojrzenia (z włączoną obsługą GPU), które pokazują zużycie pamięci wideo, wykorzystanie GPU i procesy z niego korzystające. W przypadku GPU AMD Radeon narzędzia takie jak radeontop Oferują coś podobnego, z paskami wykorzystania dla różnych wewnętrznych jednostek układu scalonego.

Jeżeli podejrzewasz, że przyczyną problemu jest sterownik graficzny (nie można wejść do środowiska graficznego, program zawiesza się podczas używania kompozytorów itp.), zaleca się sprawdzenie zainstalowanego sprzętu wideo za pomocą poleceń takich jak: lspci -vnn | grep VGA -A 12, lshw -C wyświetlacz o inxi-Gi sprawdź, czy używasz darmowych, zastrzeżonych czy przestarzałych sterowników. W dystrybucjach takich jak Ubuntu możesz włączyć określone repozytoria sterowników graficznych (na przykład dla Radeon) i Zaktualizuj do nowszych wersji zoptymalizowanych pod kątem Twojego procesora graficznego.

Diagnostyka sieci: karta sieciowa, utrata pakietów i konfiguracja

Problemy z siecią mogą obejmować komunikaty od „brak połączenia” do „wszystko działa wolno poza tą usługą”. Aby uniknąć przytłoczenia, pierwszym krokiem jest ustalenie, czy problem leży po stronie komputera, sieci lokalnej, czy internetu. Linux oferuje kilka warstw narzędzi do tego celu. Testuj łączność, przeglądaj statystyki kart sieciowych i wykrywaj utratę pakietów, i to Przewodnik diagnostyczny sieci IP i DNS zagłęb się w kontrole i rozwiązania.

Podstawowe polecenia takie jak świst Umożliwiają sprawdzenie, czy łączysz się z konkretnym hostem (na przykład routerem lub domeną zewnętrzną), podczas gdy traceroute Pokazuje ścieżkę, którą pakiety pokonują do celu, co jest przydatne do sprawdzenia, na którym przeskoku są tracone. Aby sprawdzić, które porty są otwarte i które procesy z nich korzystają, ss Jest to nowoczesny zamiennik polecenia netstat, oferujący opcję wyświetlania listy aktywnych połączeń TCP/UDP.

Jeśli podejrzewasz, że problem leży w samej karcie sieciowej, skorzystaj z narzędzi takich jak ettool Są bardzo cenne. Dzięki poleceniom wyświetlającym szczegółowe statystyki możesz monitorować błędy RX/TX, utracone pakiety, problemy z buforem lub przepełnienia FIFO w czasie rzeczywistym, korzystając z kombinacji z zegarek aby stale odświeżać gniazdko i wykrywać wzorce utraty pakietów.

Innym bardzo ilustratywnym sposobem jest przegląd liczników błędów interfejsów z netstat -ni (lub równoważnych, bardziej nowoczesnych narzędzi). Zobaczysz tam kolumny pakietów odebranych i wysłanych pomyślnie, wraz z pakietami utraconymi. Jeśli odsetek utraconych pakietów (RX-DRP/RX-OK lub TX-DRP/TX-OK pomnożony przez 100) przekracza niewielkie wartości, takie jak 0,2%, Wpływ na wydajność połączenia może być drastyczny, nawet zmniejszając efektywną prędkość o połowę lub nawet gorzej.

Nierzadko zdarza się, że nowo zakupione karty sieciowe z powodu wad fabrycznych lub konstrukcyjnych wykazują niedopuszczalny poziom błędów. Zmiana modelu i powtórzenie testów zazwyczaj ostatecznie potwierdza, że ​​wąskim gardłem była karta sieciowa. Dlatego tak ważne jest, aby mieć… obiektywne dane o stratach i błędach zanim obwinisz dostawcę Internetu lub router.

Dobrym pomysłem jest również sprawdzenie stanu urządzeń radiowych, takich jak Wi-Fi czy Bluetooth, za pomocą poleceń takich jak zabij, które wskazują, czy są zablokowane programowo, czy sprzętowo. W przypadku danych o producencie, modelu i możliwościach interfejsu sieciowego, lshw -C sieć o inxi -Nx Dostarczają bardzo szczegółowych informacji, podczas gdy ethtool nazwa_interfejsu | grep -i speed Informuje o prędkości łącza karty (10/100/1000 Mb/s itd.).

Dzienniki systemowe i poziomy ważności w systemie Linux

Logi systemowe to Twoja księga historii: wszystko, co się wydarzyło (lub prawie wszystko), jest tam rejestrowane. Zrozumienie, jak działają i jak je filtrować, oszczędza mnóstwo czasu. W nowoczesnych systemach opartych na systemd, journalctl Jest to centralne narzędzie do konsultacji dziennika binarnego, podczas gdy w bardziej tradycyjnych systemach nadal można znaleźć pliki tekstowe w /var/log.

Do najczęściej spotykanych plików należą: / var / log / syslog o / var / log / messagesktóre zbierają ogólne zdarzenia systemowe i /var/log/auth.log Do celów uwierzytelniania możesz użyć narzędzi takich jak: mniej y grep Aby filtrować je według słów kluczowych (błąd, awaria, przekroczenie limitu czasu itp.). Podczas pracy z dziennikiem systemd można przeglądać komunikaty z ostatniego uruchomienia z określonymi opcjami, przeglądać logi z określonej usługi lub filtrować według przedziałów czasowych (na przykład sprzed dwóch godzin).

Polecenie dmesg Wyświetla bufor komunikatów jądra, bardzo przydatny do wykrywania problemów sprzętowych, nieudanych prób załadowania sterowników, błędów magistrali PCI, ostrzeżeń dotyczących pamięci itp. Za pomocą tego parametru -T Otrzymujesz czytelne znaczniki czasu, a filtrując według poziomów ważności, możesz skupić się na tym, co najważniejsze. Co więcej, dzięki dmesg -w Można na bieżąco obserwować, jak generowane są komunikaty, co jest bardzo przydatne podczas podłączania/odłączania urządzeń lub gdy podejrzewa się błąd poprzedzający panikę jądra.

Wiadomości są kategoryzowane według poziomów ważności, co ułatwia ich priorytetyzację. Poziomy wahają się od 0 (awaryjny)co oznacza wyjątkowo poważną sytuację, która może powodować upadki lub poważną niestabilność, w tym 1 (alert), 2 (krytyczne) y 3 (błąd niekrytyczny)...aż do ostrzeżeń (poziom 4), ważnych powiadomień (poziom 5), komunikatów informacyjnych (poziom 6) i komunikatów debugowania (poziom 7). Zrozumienie tych poziomów pozwala Odfiltruj hałas i skup się na tym, co naprawdę ważne gdy logi są bardzo szczegółowe.

Używanie rur z grep Z logów tekstowych można wyodrębnić tylko wiersze z określonego poziomu, natomiast narzędzia systemd oferują określone parametry filtrowania według priorytetu w dzienniku. Opanowanie tych filtrów to różnica między zagubieniem się w tysiącach wierszy a znalezieniem w kilka sekund wiadomości, która da Ci potrzebną wskazówkę.

  Jak odzyskać usunięte pliki z Androida za pomocą komputera

Rodzaje błędów w systemie Linux: jądro, system plików, sieć, aplikacje i sprzęt

Aby postawić dokładną diagnozę, warto dokładnie wiedzieć, jaki typ błędu występuje. Problemy z Linuksem można ogólnie podzielić na błędy jądra, systemu plików, sieci, aplikacji i sprzętuchociaż często są ze sobą powiązane.

L błędy jądra Mogą to być proste ostrzeżenia lub sytuacje krytyczne, takie jak błędy jądra i paniki jądra. jądro ups To poważna awaria, w której jądro zamyka proces, który spowodował naruszenie, ale próbuje kontynuować działanie. Może to być objawem niewystarczającej ilości pamięci, wadliwych sterowników, niezgodności, uszkodzenia danych lub błędów. Jeśli problem dotyczy krytycznego podsystemu, ta awaria może przerodzić się w… panika jądraktóry jest odpowiednikiem klasycznego niebieskiego ekranu występującego w innych systemach w systemie Linux.

El panika jądra To „twarda panika”: system niemal całkowicie się zawiesza, na ekranie wyświetla się komunikat o błędzie (często zagadkowy), a w zależności od konfiguracji może wymusić automatyczny restart. Zazwyczaj jest to spowodowane nieprawidłowym dostępem do pamięci, awarią niezbędnych sterowników, niedostępnością partycji głównej, poważnymi problemami z pamięcią RAM, awariami procesu init, błędami w initramfs, nieprawidłowo zainstalowanymi lub nieobsługiwanymi jądrami lub niestabilnymi poprawkami. Samo jądro może wykonać zrzut pamięci (ang. Kernel Crash Dump) w celu późniejszej analizy.

L błędy systemu plików Problemy te objawiają się brakiem możliwości zamontowania partycji, komunikatami o uszkodzeniach, niemożnością odczytu plików lub utratą danych. Przyczyną mogą być nagłe wyłączenia systemu, przerwy w dostawie prądu, uszkodzone sektory lub błędy w sterowniku systemu plików. W takich sytuacjach pomocne są fsck, smartctl i wszelkie kopie zapasowe wykonane przed wprowadzeniem jakichkolwiek zmian.

W dziedzinie sieciObjawy mogą obejmować sporadyczne rozłączenia, niską prędkość transferu, wysokie opóźnienia lub całkowity brak możliwości połączenia. Przyczynami mogą być nieprawidłowa konfiguracja (IP, routing, DNS, zapora sieciowa), wadliwe sterowniki kart sieciowych, zakłócenia Wi-Fi, błędy w okablowaniu fizycznym lub przeciążenie sieci na pewnym odcinku trasy. Omówione przez nas narzędzia diagnostyczne sieci pomagają zidentyfikować warstwę, w której występuje awaria.

L błędy aplikacji Problemy te obejmują nieoczekiwane zamykanie się programów, brak możliwości ich uruchomienia, wyświetlanie komunikatów o braku bibliotek lub brak reakcji. Często są one spowodowane uszkodzonymi zależnościami, niezgodnymi wersjami bibliotek, błędami w kodzie, źle napisanymi skryptami lub sytuacjami wyścigu. Narzędzia takie jak strace (aby śledzić wywołania systemowe) lub lsof (do przeglądania otwartych plików i połączeń sieciowych procesu) może dostarczyć cennych informacji.

wreszcie błędy sprzętowe Należą do nich zarówno luźne złącza, uszkodzone kable, zepsute porty, jak i nagromadzony brud, a także awarie elektroniki spowodowane przegrzaniem, wilgocią lub starzeniem się sprzętu. Dotyczy to również konfliktów między komponentami (IRQ, DMA itp.) oraz problemów z zasilaniem lub wydajnością (ograniczenie termiczne, niewystarczająca ilość pamięci RAM, niedostateczna moc procesora). Ponownie, wykorzystanie zmysłów w połączeniu z narzędziami monitorującymi i testami obciążeniowymi pomoże Ci zidentyfikować, który element fizyczny ulega awarii.

Praktyczne kroki w celu uporządkowanego procesu diagnostycznego

Chociaż każdy problem jest unikalny, można zastosować pewien „szkielet” kroków, który można dostosować do niemal każdej sytuacji. Pierwszy, wspomniany już, to precyzyjnie zdefiniować problemCo jest uszkodzone, od kiedy, w jakich warunkach i co zostało zmienione tuż przedtem (instalacja oprogramowania, aktualizacja, wymiana sprzętu itp.). Jeśli uda Ci się odtworzyć awarię, tym lepiej.

Drugim krokiem jest sprawdzenie stanu systemu i logów: użyj journalctl y dmesg Aby wyszukać istotne komunikaty (szczególnie na poziomie błędu, krytycznym lub alertu), sprawdź obciążenie za pomocą góra/góra, zwolnij pamięć za pomocą poleceń wykorzystania pamięci, wykorzystanie dysku za pomocą df i logi specyficzne dla danej usługi lub aplikacji. Wyszukaj słowa kluczowe, takie jak błąd, awaria, panika lub przekroczenie limitu czasu Zazwyczaj daje bardzo szybkie wskazówki.

Po trzecie, warto zbadać źródła zewnętrzne. Dobrze sformułowane wyszukiwanie komunikatu o błędzie (na przykład „Rozłączenia Wi-Fi w Ubuntu 20.04”) często doprowadzi Cię do wątków na forum, wiki dotyczących Twojej dystrybucji lub raportów o błędach, w których inni użytkownicy już doświadczyli tego samego problemu. Nie zapomnij ich sprawdzić. strony podręcznika (man), oficjalna dokumentacja, HOWTO i wikiSłynny „RTFM” pozostaje jedną z najlepszych porad.

Po postawieniu kilku hipotez przechodzimy do etapu testowania: ponownego uruchomienia określonej usługi, tymczasowej modyfikacji pliku konfiguracyjnego (z kopią zapasową), wyłączenia modułu jądra, uruchomienia z innym jądrem dostępnym w menedżerze rozruchu, przetestowania innego urządzenia fizycznego itd. Kluczem jest tutaj wprowadzać odwracalne i kontrolowane zmiany, jedną po drugieji sprawdź po każdym kroku, czy problem nadal występuje.

Gdy w końcu znajdziesz rozwiązanie eliminujące problem, pozostaje jeszcze jeden, ostatni krok, który często jest najbardziej niedoceniany: sprawdź stabilność w czasie i udokumentuj to, co zrobiłeśNajlepiej zrestartuj komputer (jeśli problem dotyczył uruchamiania) lub pozostaw system na chwilę pod obciążeniem, sprawdź, czy w logach nie pojawiają się ponownie żadne błędy i zanotuj rozwiązanie we własnym dzienniku technicznym. To doświadczenie pomoże Ci zapobiec ponownemu wystąpieniu problemu lub rozwiązać go w ciągu kilku minut następnym razem.

Dzięki całemu zestawowi pomysłów, narzędzi i metod Linux przestaje być tajemniczą czarną skrzynką i staje się środowiskiem, w którym można Diagnozuj wszystko, od prostego alertu dziennika po panikę jądra lub awarię pamięci RAM, z dużą dokładnościąNie chodzi o zapamiętywanie tysiąca komend, ale o przyswojenie sobie systematycznego podejścia, poleganie na dokumentacji i społeczności oraz o to, by nie bać się zaglądać „pod maskę”, gdy coś pójdzie nie tak.

Problemy z siecią IP DNS
Podobne artykuły:
Problemy z siecią IP i DNS: szczegółowa diagnostyka i rozwiązania