Open Source

GNU / Linux Generel fejlfindingsvejledning til begyndere

GNU / Linux Generel fejlfindingsvejledning til begyndere

Fejlfinding af hardwareproblemer

Når kernen starter, indlæser den de nødvendige hardwaredrivere og moduler med alle meddelelser, der indeholder detaljer om hardwarefejl. Men meddelelserne ruller alt for hurtigt op, og det er umuligt at få et godt kig på potentielle hardwareproblemer. De meddelelser, der vises under kernel-opstartsprocessen, gemmes dog i kerneringsbufferen.

Når systemet starter op, skal du bruge dmesg kommando til at skrive disse meddelelser i en msg.txt fil.

[e-mail-beskyttet]: ~ $ dmesg> / tmp / msg.txt
[e-mail-beskyttet]: ~ $ mindre / tmp / kernel_msg.txt

De gemte meddelelser kan gennemgås senere eller sendes til nogen for at fejle problemet.

En anden måde at læse disse meddelelser på er at kontrollere / var / log / dmesg eller / var / log / beskedfiler, hvis de findes.

Nogle Linux-systemer, der understøtter systemd, gemmer disse meddelelser i systemd-journalen. Brug journalctl kommando til at kontrollere kernemeddelelserne:

[e-mail-beskyttet]: ~ $ journalctl -k | mindre

Kontroller for de meddelelser, der angiver, at hardwarefunktioner ikke fungerer, eller at drivere ikke kan indlæses.

GRUB redning

GRUB er et softwareprogram installeret af distributioner, der starter det kernelbaserede operativsystem. I øjeblikket bruger alle Linux-distributioner GRUB2-versionen. Nogle gange er det muligt, at når BIOS starter GRUB2, lander det i problemet med intet 'operativfilsystem' eller "ukendt filsystem".

Fejlen antyder, at GRUB ikke kan finde det rigtige operativsystem til at indlæse og lokalisere gruben.CFG-fil i den forkerte partition. Dette sker, når brugeren installerer Windows efter Linux OS og BIOS identificerer diske i den forkerte rækkefølge, da windows starter sin bootloader på Master Boot Record (MBR).

Fejlen ser sådan ud:

fejl: ukendt filsystem.
grub redning> _

I dette afsnit vil vi diskutere to måder at gendanne distributionen fra Grub Rescue:

METODE I

Gå ind i ls kommando i grub-redningsterminalen for at liste alle drev og tilgængelige partitioner.

grub> ls
(hd0), (hd0, msdos1) (hd0, msdos2)

Vælg den partition, der indeholder den installerede distribution. Generelt startes den fra den første partition; hvis ikke, udsender den en fejlmeddelelse. Kør følgende kommandoer for at søge i grub-konfigurationsfilen i grub2-biblioteket:

grub> ls (hd0, msdos1) /
grub> ls (hd0, msdos1) / grub2
enhed.kort skrifttyper grub.cfg grub.cfg.1590068449.rpmsave grubenv i386-pc lokalitet

Type sæt root = (hd0, msdos1) for at starte systemet. Brug nu sæt præfiks kommando til at definere stien til grub2-biblioteket. Type insmod normal kommando til at genstarte systemet. Efter genstart skal du åbne terminalen for at opdatere GRUB.

[e-mail-beskyttet]: ~ $ sudo update-grub

Det sidste trin er at installere GRUB på MBR (Master Boot Record), da windows starter sin bootloader på den. Dette trin kræver montering af rodpartitionen / dev / sda1 i / mnt-biblioteket.

[e-mail-beskyttet]: ~ $ sudo mount / dev / sda1 / mnt
[e-mail-beskyttet]: ~ $ sudo grub-install - root-directory = / mnt / / dev / sda

Systemet kan muligvis ikke starte gennem insmod normal kommando, hvilket kan ske på grund af et elendigt filsystem med manglende grub.conf-fil. Problemet kræver, at brugeren starter i systemet via en live USB / CD af distributionen. Lad os diskutere en anden ideel teknik til redning af GRUB2.

METODE II

Boot-Repair er et grafisk værktøj, der tilbyder en ideel løsning til GRUB-problemer. Start op på skrivebordet via en live flytbar USB / CD. Sørg for, at enheden er forbundet til internettet, og tryk på Ctrl + Alt + T for at åbne terminalen. Installer nu boot reparationsværktøjet:

[e-mail-beskyttet]: ~ $ sudo add-apt-repository -y ppa: yannubuntu / boot-repair
[e-mail-beskyttet]: ~ $ sudo apt-get opdatering
[e-mail-beskyttet]: ~ $ sudo apt-get install -y boot-repair && boot-repair

Følg de anbefalede muligheder for at reparere systemet. Genstart dit system, når Boot Repair har anvendt alle ændringer. OS starter normalt.

Netværksfejlfinding

For almindelige brugere sker netværksforbindelse automatisk, så snart brugeren tilslutter Ethernet-kablet eller giver loginoplysninger til et Wi-Fi-netværk. Netværksadministration og fejlfinding er dog et afgørende sæt opgaver for enhver systemadministrator. Derfor tilbyder Linux kommandolinjeværktøjer til at håndtere ledelses- og forbindelsesproblemer.

I dette afsnit diskuterer vi udgående og indgående netværksforbindelsesproblemer og dækker Linux-værktøjer til at levere løsninger til dem på en bekvem måde.

Udgående forbindelser

Linux tilbyder IP kommando som et alsidigt netværksværktøj til at konfigurere netværket og løse forbindelsesproblemer. Det manipulerer alle netværksobjekter såsom IP-adresser, ruter og links osv.

Inden du begynder, skal du bruge IP kommando for at se det fungerende netværksinterface.

[e-mail beskyttet]: ~ $ ip addr show

Hvis der ikke er nogen tilgængelig grænseflade, skal du kontrollere, om hardwaren er deaktiveret. Men hvis det er op og stadig er forbundet til værten, skal du bruge rute kommando for at kontrollere værten.

[e-mailbeskyttet]: ~ $ rute

Standardlinjen repræsenterer standardgatewayen (routeren), som maskinen har adgang til via et fungerende interface-kort. Linux tilbyder ping værktøj til at teste forbindelsen mellem din enhed og routeren.

[e-mail-beskyttet]: ~ $ ping -c 5

Fejlen antyder, at routeren enten ikke er fysisk tilsluttet eller slukket. Men hvis pingen er vellykket, skal du prøve at nå en adresse ud over routeren, for eksempel global Google DNS-server 8.8.8.8.

[e-mail-beskyttet]: ~ $ ping -c 5 8.8.8.8

En vellykket ping antyder, at problemet er med værtsnavn-til-adresse-opløsning. Den DNS-server, der bruges af systemet, tilføjes enten manuelt eller automatisk fra DHCP-serveren, når netværksgrænsefladen starter. Kontroller detaljerne (navne og IP-adresser) for DNS-serveren fra / etc / resolution.conf-fil.

navneserver 192.168.11.12
navneserver 192.168.11.253

Vi kan løse problemer med værtsnavnet som følger:

Det er muligt, at serveren er nede, eller at brugeren tildeles den forkerte DNS-serveradresse. Bemærk navneserver adresser fra beslutte.konf fil, og kontroller, om den er tilgængelig via en ping-kommando.

[e-mail-beskyttet]: ~ $ ping -c 3 192.168.11.253

Brug Domain Information groper (DIG) -værktøjet til at kontrollere, om DNS fungerer. Det vil sige kontrollere, om DNS-serveradressen 192.168.11.253 løser værtsnavnet til en IP-adresse.

[e-mail-beskyttet]: ~ $ dig @ 115.186.188.3 www.google.com

Det er lidt vanskeligt at korrigere en DNS-server. Hvis netværksadministratoren er ansvarlig for styring af tilslutningsopgaven, tilsidesætter den navneserverposter i / etc / resolution.conf-fil. Cd i / etc / sysconfig / network-scripts biblioteket for at tilføje følgende linje i ifcfg-filen for at løse problemet.

[e-mail-beskyttet]: ~ $ sudo vim / etc / sysconfig / network-scripts / ifcfg
PEERDNS = nej
DNS1 =

I tilfælde af en separat netværkstjeneste skal du tilføje PEERDNS = ingen linje at løse.conf-fil.

Indgående forbindelser

For et Linux-system konfigureret som en Apache-server skal webserveren få adgang til klienten. Hvis klienten ikke kan nå serveren via en webbrowser, kan du bruge de ovennævnte ping-, grave- eller traceroute-kommandoer uden for serveren til at spore problemer. Nogle af de andre måder at foretage fejlfinding på indgående forbindelser inkluderer:

Brug nmap for at kontrollere tilgængeligheden af ​​tjenesten via åbne porte på serveren. Brug nmap-kommandoen med værtsnavnet / IP-adressen til at inspicere åbne porte.

[e-mail-beskyttet]: ~ $ nmap

Den åbne port 80/443 STATE antyder, at netværksforbindelsen er fin. Hvis ikke, accepterer firewallen ikke pakker fra disse porte. Desuden er den ikke filtreret, og tilstanden er lukket, hvilket betyder, at tjenesten ikke er konfigureret korrekt, eller at den ikke lytter til 80/443 porte.

Hvis systemet bruger ufw og indstiller til standard firewallpolitikken, vil den blokere enhver indgående forbindelse. Indstil firewallen for at give klienter adgang til TCP 80/443 porte:

[e-mail-beskyttet]: ~ $ sudo ufw tillader 80
[e-mail-beskyttet]: ~ $ sudo ufw tillader 443

Hvis det stadig blokerer indgående forbindelser, skal du bruge sudo ufw status kommando for at lede efter de nægtede værter og få adgang til dem via følgende kommando.

[e-mail-beskyttet]: ~ $ sudo ufw tillad fra

Hvis adgang til 80/443 porte er aktiveret, og alle indgående netværk kan få adgang til serveren. Det er tid til at kontrollere serverstatus:

[e-mail-beskyttet]: ~ $ sudo systemctl status httpd

Til sidst skal du kontrollere, om serveren lytter til passende grænseflader og porte. Derfor for de tjenester som httpd, der lytter efter anmodninger om grænseflader. Rediger hovedkonfigurationsfilen for at gøre det muligt for tjenesten at lytte på port 80 for en bestemt adresse eller alle adresser.

[e-mail-beskyttet]: ~ $ sudo cd / etc / httpd / conf / httpd.konf
Lyt 80
Lyt 192.168.11.10:80

Fejlfinding af systembelastning

Linux leveres med mange værktøjer, der ser systemaktiviteter og finder ud af problemer, der ikke har nogen åbenbare grunde. Systemet fungerer altså fint, men begynder at bremse og begynder at gå ned på applikationer. Disse forskellige Linux-hjælpeprogrammer hjælper med at finde ud af processer, der forbruger hukommelsesressourcer og dræner maskinen for dens diskplads, processorer og netværksbåndbredde.

Nogle af årsagerne til system ustabilitet inkluderer begrænset kapacitet, dvs.e., lav hukommelse, diskplads, netværkskapacitet og processorkraft med forkert konfigurerede applikationer. Hjælpeprogrammerne tilbyder dog måder at administrere, manipulere og løse sådanne problemer på. Lad os foretage fejlfinding af begrænset hukommelse og overdreven CPU-forbrugsproblemer.

Hukommelsesbrug

Kør top kommando med kapital M for at klassificere procesoplysninger efter hukommelsesforbrug. Kommandooutputtet giver generel information efterfulgt af RAM, swap-plads og CPU-forbrug. Hvis det ser ud til, at systemet ikke har plads til hukommelse (OOM), skal du kigge efter disse ting:

  • Bemærk det ledige rum i Mem-linjen: det skal være nul eller tæt på det.
  • Kontroller det anvendte swap-område: det skal være ikke-nul eller vokse.
  • Siden den top kommando viser information hvert 5. sekund igen, se efter processen med en hukommelseslækage, det vil sige kontrollere, om RES-hukommelsen fortsætter med at vokse.
  • Kernen begynder at dræbe processen, når swap-pladsen løber tør.

Den mulige måde at fejlfinde sådanne problemer på er at enten:

Dræber processen

Drabkommandoen sender et dræbningssignal for at afslutte en proces. De mest anvendte signaler til fejlfinding af problemer uden for hukommelsen er SIGKILL og SIGTERM. Imidlertid reagerer forskellige processer forskelligt på signaler.

Bemærk f.eks. PID og brug dræbe kommando til at sende SIGTERM-signalet.

[e-mail-beskyttet]: ~ $ kill -15 PID

SIGTERM / -15 signalet sigter mod at afslutte processen, men lejlighedsvis dræber det ikke processen. Derfor kan dette kræve, at SIGKILL / -9-signalet dræber processen med det samme.

[e-mail-beskyttet]: ~ $ kill -SIGKILL PID

Drop caches

Slip inaktive cache-sider for at rense hukommelsen for øjeblikket. Slip cachelagrede sider, skriv et par hukommelsessider til disken, da systemet muligvis vil hente det senere, mens det kasserer resten.

Lad den øverste kommando køre i terminalen, og kør den givne kommando i en anden terminal for at se MEM-linjeskift:

[e-mail-beskyttet]: ~ $ echo 3> / proc / sys / vm / drop_caches

Brug Alt + SysRq tastetryk

Hukommelsesudmattelse kan undertiden gøre GUI eller shell fuldstændig ikke reagerer. Dette scenarie kræver brug af Alt + SysRq-tastetryk på et system, der ikke reagerer. Sådan at kernen behandler sin anmodning inden enhver anden proces.

Kør følgende kommando for at kontrollere, om den er aktiveret:

[e-mailbeskyttet]: ~ $ cat / proc / sys / kernel / sysrq
076

Værdien '0' viser, at tastetrykket ikke er aktiveret. For at aktivere dette tastetryk skal du gå til / etc / sysctl.conf-fil og indstil kerne.sysrq = 1. Eller sæt kerne.sysrq = 1 ved hjælp af følgende kommando.

[e-mail-beskyttet]: ~ $ sudo echo "1"> / proc / sys / kernel / sysrq

På de fleste tastaturer er SysRq en 'PrtSc' -tast.

Tryk på Alt + SysRq + f fra den tekstbaserede grænseflade for at dræbe processen med den højeste OOM-score. Bliv ved med at trykke på disse tastetryk, indtil systemet vender tilbage til sin normale brugbare tilstand.

CPU-belastning

De ovennævnte teknikker kan også kontrollere og rette op på processen, der forbruger for store CPU-ressourcer og fratager systemet dets funktionalitet. Linux tilbyder dog en anden metode, der begrænser systemprocesser fra at aflevere CPU-ressourcerne.

Forny processen

Brug den øverste kommando til at give alle detaljer og bemærk proces-id (PID), der anmoder om flere CPU-ressourcer. Skriv følgende kommando, der indstiller den fremragende værdi mellem -20 til 19, i.e., jo højere værdi, jo lavere bliver adgangsprocessen til CPU'en.

[e-mail-beskyttet]: ~ $ nice +18 PID

Eller bemærk PID's NI (pæne) værdi. For en lav NI-værdi skal du reducere CPU-adgangsrettighederne for den pågældende proces ved at tilbagekalde den fremragende værdi ved hjælp af renice-kommandoen:

[e-mail-beskyttet]: ~ $ renice -n +18 PID

Konklusion

Artiklen dækker alle nødvendige Linux-hjælpeprogrammer for at give begyndere mulighed for at foretage fejlfinding af Linux-problemer, der er relevante for systemindlæsning, hardwareproblemer, GRUB og netværk.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...