- Dvaletilstand i GNU/Linux gemmer hele RAM-tilstanden for at bytte og lukker computeren ned, mens suspendering holder hukommelsen i RAM med lavt strømforbrug.
- For at dvaletilstand kan fungere pålideligt, kræves der kerneunderstøttelse og tilstrækkelig swap-plads, enten en swap-partition eller en velkonfigureret swapfil.
- Forskellige værktøjer (systemd, pm-utils, uswsusp og PolicyKit) giver dig mulighed for at aktivere, kontrollere eller deaktivere dvaletilstand og pausetilstand afhængigt af distributions- og brugsscenariet.
- Valget mellem pause, dvale eller genstart med sessionsgendannelse afhænger af den balance, du søger mellem energibesparelser, hastigheden på tilbagevenden til arbejdet og systemstabilitet.

La dvaletilstand i GNU/Linux Det er stadig en af de funktioner, som alle har hørt om, men som ikke altid er godt forstået eller konfigureret korrekt. Mange brugere kommer hertil efter at have oplevet problemer med Windows eller bærbare computere, der lukker uventet ned, og vil vide præcis, hvad hver strømtilstand gør, og hvordan de styrer den i deres Linux-distribution.
I de seneste kerneversioner og større distributioner er tingene forbedret betydeligt, men de eksisterer stadig. Vigtige nuancer mellem dvale, suspendering og nedlukning med genåbning af dokumenterUdover tekniske detaljer såsom brugen af swap-plads (i partitioner eller filer), som er vigtige at forstå, vil vi gennemgå alt dette roligt, men på en klar og praktisk måde.
Dvaletilstand, afbrydelse og genstart med sessionsgendannelse: hvordan de adskiller sig
Før du rører ved noget i indstillingerne, er det vigtigt at forstå hvad hver energibesparende tilstand rent faktisk gørFordi koncepter ofte blandes sammen, og så kommer skræmmene med mistede data eller tomme batterier.
Når vi taler om dvaletilstand i operativsystemer, henviser vi til en proces, hvorved hele systemets tilstand frysesÅbn programmer, dokumenter, tjenester, skrivebordsindstillinger, buffere osv. Alt indhold fra RAM gemmes på et permanent lagringsmedie (normalt diskswap), og maskinen lukkes helt ned.
Dette indebærer det Dvaletilstand er ikke det samme som blot at lade filer være åbne. Det er ikke det samme som at lukke computeren ned, og det er heller ikke det samme som at sætte den i pausetilstand. Det er langsommere end at sætte den i pausetilstand på grund af RAM, men det sparer meget mere energi, fordi computeren er helt slukket uden strømforbrug.
På den anden side tilbyder nogle systemer noget, der ligner en "genstart med genåbning af dokumentet", hvor systemet lukker ned normalt, men ved genstart Applikationer, der var åbne, genstartes automatisk.I GNU/Linux efterligner mange distributioner denne skrivebordsmiljøadfærd, men dette er ikke dvaletilstand: det er stadig en kold opstart med alle tjenester startet fra bunden.
Fordelen ved dvaletilstand i forhold til genstart med app-gendannelse er, at Kernen og brugerområdet genstarter ikke fra bunden.I stedet gendannes et komplet billede af den tidligere tilstand. Når alt fungerer korrekt, kan du derfor genoptage dit arbejde præcis der, hvor du slap, uden at genåbne dokumenter eller omkonfigurere vinduer.
Hvad er suspension i Linux, og hvorfor er det værd at bruge?
I dvaletilstand genererer operativsystemet et levende billede af den nuværende tilstand (dine programmer, dine dokumenter, skrivebordet), men i stedet for at skrive det til disken, efterlades det i RAM, som er ustabil.
Når kernen suspenderer, slukker den stort set alle hardwareenheder: disk, skærm, det meste af chipsættet... Den eneste komponent, der forbliver tændt, er RAM og minimumsspecifikationer for bundkortet så den kan "vågne op", når du trykker på en tast, bevæger musen eller åbner låget på den bærbare computer.
Denne tilstand er fantastisk, når du vil en næsten øjeblikkelig tilbagevenden til skrivebordet Og du er ikke så bekymret for energiforbruget, mens computeren er inaktiv. En moderne bærbar computer kan forblive i dvaletilstand i en til tre dage på batteristrøm, men i den tid bruger den stadig noget energi for at holde RAM'en kørende.
Standardaffjedring anbefales især, hvis du har mere end 2 GB RAM og begrænset diskplads (for eksempel på små SSD'er) eller hvis du snart skal bruge computeren igen. Dette er typisk, når du lukker låget i et par minutter mellem timer eller spiser frokost.
Hybridophæng: en blanding af RAM og disk
Der er en tredje, mindre kendt måde: hybrid affjedringI dette tilfælde gennemgår systemet hele dvaletilstandsprocessen (det dumper indholdet af hukommelsen til disken, normalt for at bytte), men i stedet for at lukke helt ned, går det i en suspenderet tilstand i RAM.
Dette skaber et blandet scenarie: hvis batteriet holder, Du hæver systemet lige så hurtigt som en normal affjedring.Hvis strømmen løber ud, vil det gemte billede på disken dog give mulighed for at gendanne sessionen, som om den havde været i dvaletilstand.
Bagsiden af dette er, at Det tager længere tid at komme ind og ud. Det er mere end ren suspendering, fordi det skriver til disk og også holder RAM'en kørende. Derfor bruges det ofte på servere eller arbejdsstationer, der har brug for et ekstra sikkerhedsniveau mod tilstandstab.
Hvordan dvaletilstand fungerer internt i GNU/Linux
Når du sætter et GNU/Linux-system i dvale, udfører kernen en række ret veldefinerede trin for at indfange og gendanne maskinens komplette tilstandDet handler ikke bare om at "gemme RAM'en i en fil", og det er det.
Den typiske proces ved ophæng til disk (ophæng-til-disk) Denne generelle rækkefølge følger:
- Brugerprocesser er stoppet at fryse dens tilstand og forhindre den i at fortsætte med at ændre hukommelsen, mens optagelsen foretages.
- Hardwareenheder fryses eller stoppes for at forhindre hukommelsesændringer forbundet med controllere og DMA.
- Billedet af dvaletilstand skabes: Hele indholdet af RAM kopieres med afbrydelser deaktiveret.
- Hardwareenhederne genaktiveres på en kontrolleret måde.
- Billedet er skrevet i bytteplads, som derefter betragtes som et suspensionsområde (swsusp eller linux-suspend).
- Endelig er alle enheder i pausetilstand, og computeren er helt slukket.
Ved genstart starter startsystemet Tjek om der er et gyldigt dvalebillede:
- Ja der er, Den starter ikke normalt.men læser billedet fra swap'en.
- Enhederne fryses igen for at forhindre interferens.
- Billedet kopieres fra swap til RAM og genaktiver processer og enheder som de var før de gik i dvale.
En mærkelig detalje observeret i virkelige tests: efter dvaletilstand vises den gamle "linux-swap-partition" som mærket som linux-suspend eller swsusp i værktøjer som GParted eller parted. Denne ændring af type er et af de spor, systemet bruger til at vide, om det skal gendannes fra dvaletilstand eller starte forfra.
Vigtigheden af at bytte under dvale
Hele denne mekanisme involverer ét nøglekrav: at gå i dvale i Linux Du har brug for en passende byttepladsbåde i størrelse og konfiguration. Uden swap vil systemet ikke have noget sted at gemme RAM-billedet.
Byttet kan være:
- en dedikeret partition med systemtypen linux-swap.
- Un swap-fil placeret i et normalt filsystem (for eksempel i /swapfile).
Af praktiske årsager behandler kernen begge dele som swap-plads transparent. Men for at bruge en swapfile som dvaledestination Du skal fortælle kernen, via boot manager, parametre som f.eks. resume= (enhed) og resume_offset= (forskydning inden for filen). Hvis dette ikke gøres, starter systemet fra bunden og gendanner ikke billedet, selvom det skrives til disken.
Med hensyn til størrelse er den klassiske anbefaling for pålidelig dvaletilstand, at swap'en skal have mindst størrelsen af den fysiske RAMDet er sandt, at hvis systemet er stærkt underudnyttet, kan man nogle gange gå i dvale med en lidt mindre swap-plads, men det er ikke sikkert og bør ikke generaliseres. På systemer med 32 GB eller 64 GB RAM eller mere fraråder mange administratorer dvaletilstand helt på grund af tids- og lagerbegrænsninger.
Det er også værd at huske, at der findes mekanismer som f.eks. zram eller zswapsom opretter et komprimeret swap-område i selve RAM'en. De er fantastiske til at forbedre ydeevnen på systemer med begrænset hukommelse, men de er ikke egnede som dvaletilstand: da de er ustabile, Billedet ville forsvinde, når strømmen blev afbrudt..
Dvaletilstand på swap-partition vs. swapfile
I årevis blev det betragtet som nærmest obligatorisk at have en dedikeret swap-partition Hvis du ville gå i dvale uden komplikationer, var kernens og værktøjers opførsel som initramfs meget baseret på den klassiske model.
Mange moderne distributioner, såsom Ubuntu i nyere versioner, er dog skiftet til at bruge det som standard. en swapfil i stedet for en partitionDet betyder ikke, at evnen til at gå i dvale går tabt, det ændrer blot, hvor tilstanden gemmes.
I begge tilfælde er den underliggende proces den samme: Billedet fra RAM'en går til et permanent swap-områdeForskellen er, at systemet med en swapfile skal kende den præcise blok på disken, hvor filen starter (deraf parameteren). resume_offset) for at kunne læse billedet tidligt under opstart.
Praktiske eksperimenter på Debian og afledte maskiner har vist, at hvis Swap-partitionen er formateret eller slettet Der hvor dvaletilstandsbilledet blev gemt, vil den næste opstart være ren, som om dvaletilstand aldrig havde fundet sted. Dette bekræfter, at billedet faktisk er gemt i swap-pladsen og ikke et andet sted på disken.
Kernelkrav og support i distributioner
Ud over udvekslingsområdet er det nødvendigt, at Linux-kernen har dvaletilstandsunderstøttelse aktiveretHvis du kompilerer din egen kerne og deaktiverer denne indstilling, vil du ikke kunne gå i dvale, uanset hvor meget du justerer distributionens konfiguration.
I praksis bruger de fleste distributioner kernen, der er pakket af selve projektet, og i disse tilfælde Dvaletilstand er normalt aktiveret som standard. sammen med resten af de sædvanlige strømstyringsfunktioner og drivere.
Det er dog ikke alle distributioner, der altid viser knappen "Dvale" i deres grafiske menuer. Nogle, som f.eks. Ubuntu i visse versioner, De skjuler som standard indstillingen på skrivebordet. selvom kernen og dvaletilstandsinfrastrukturen er fuldt operationelle.
Sådan aktiverer du dvaletilstand i Ubuntu ved hjælp af PolicyKit
På Ubuntu-systemer, hvor dvaletilstandsindstillingen ikke vises i nedlukningsmenuen, kan du at rehabilitere på en relativt simpel måde Ved at ændre nogle PolicyKit-regler er ideen at give almindelige brugere tilladelse til at aktivere dvaletilstandshandlingerne upower og logind.
Den typiske procedure involverer oprettelse af en konfigurationsfil, for eksempel com.ubuntu.enable-hibernate.pklamed indhold der ligner dette (tilpasset den syntaks, der bruges af dine værktøjer):
Identitet=unix-bruger:*
Action=org.freedesktop.upower.hibernate
ResultatAktivt=ja
Identitet=unix-bruger:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultatAktivt=ja
Når filen er oprettet, skal den placeres i /etc/polkit-1/lokalmyndighed/50-lokal.d/For at gøre dette kan du åbne din filhåndtering som administrator (for eksempel med gksudo nautilus i miljøer, der stadig understøtter det) og indsæt det i den mappe.
Efter genstart af systemet, Ubuntu-skrivebordet vil vise dvaletilstandsindstillingen Sammen med funktionerne for at lukke ned, genstarte eller suspendere, er det naturligvis stadig nødvendigt med et tilstrækkeligt stort swap-område og en kerne med dvaletilstand.

Dvale- og suspenderingskommandoer fra terminalen
Hvis du foretrækker terminalen eller bruger letvægtsmiljøer (Fluxbox, IceWM, Openbox, JWM osv.), hvor der ikke er forudkonfigurerede tænd/sluk-knapper, kan du styre dvale og pause direkte med kommandoer.
Brug af pm-utils
I mange klassiske Debian/Ubuntu-distributioner er pakken pm-utils Den tilbyder flere enkle kommandoer:
- pm-suspendDette suspenderer maskinen til RAM. De fleste enheder slukkes, og tilstanden bevares i hukommelsen. Strømforbruget reduceres betydeligt, men der bruges stadig energi.
- pm-dvale: sætter systemet i dvale ved at gemme RAM på disken (swap) og lukke computeren helt ned.
- pm-suspend-hybridDen udfører dvaletilstand på disken, og i stedet for at lukke ned, sætter den RAM i dvaletilstand, hvorved der opnås en "hybrid dvale".
Den grundlæggende brug ville være:
sudo pm-suspend
sudo pm-dvaletilstand
sudo pm-suspend-hybrid
På Arch Linux-afledte systemer og andre, der vedligeholder det i deres repositories, kan du også bruge disse kommandoer, selvom pm-utils er blevet opgivet til fordel for systemd i mange moderne distributioner.
Brug af systemd (systemctl)
I distributioner med systemd (OpenSUSE, mange versioner af Arch og derivater, moderne Debian osv.) er den anbefalede metode at bruge systemctl:
- systemctl suspendere: suspenderer RAM.
- systemctl dvale: går i dvale på disken.
- systemctl hybrid-søvn: aktiverer hybridaffjedring.
For eksempel kan du i OpenSUSE eller et hvilket som helst typisk systemd-system kalde direkte:
sudo systemctl dvale
I mange distributioner, hvis du foretrækker at opretholde kompatibilitet med ældre værktøjer, pm-dvale Den forbliver tilgængelig og delegerer eller sameksisterer blot med systemd afhængigt af konfigurationen.
Brug af uswsusp: s2ram, s2disk og s2both
En anden familie af værktøjer, der er mindre almindelige nu om dage, er uswsuspsom leverer kommandoerne s2ram, s2disk og s2both. Den var tilgængelig i Debian og Ubuntu op til visse versioner (Debian 10; Ubuntu 20.04 og senere har udfaset den).
- s2ram: suspenderer systemet til RAM (S3-tilstand). Det svarer til pm-suspend eller systemctl suspend.
- s2diskgemmer den komplette tilstand på disken og lukker maskinen ned (klassisk dvaletilstand).
- s2bothkombinerer begge ting: skriver billedet til disken og suspenderer derefter til RAM, hvilket opnår hybrid adfærd.
Kommandoerne ville være:
sudo s2ram
sudo s2disk
sudo s2both
Disse værktøjer kræver korrekt initramfs-konfiguration, så de ved opstart genoptagelsesmekanismen kaldes (genoptagelse) og gendanne billedet, hvis det findes.
Sådan deaktiverer du slumretilstand og dvaletilstand på GNU/Linux-systemer
I nogle miljøer, såsom klasseværelser, delte computere eller offentlige arbejdsstationer, kan pause og dvale forårsage uventede nedlukninger, netværksproblemer eller blokeringer, der er vanskelige at forklare for brugerneI disse tilfælde er det nogle gange mest praktiske at deaktivere disse funktioner helt.
Deaktiver ved hjælp af systemd (målmaske)
Hvis dit system bruger systemd, skal du blot masker mål relateret til søvn og dvale så de ikke kan aktiveres fra hverken grafiske menuer eller terminalen:
sudo systemctl maske sleep.target suspend.target hibernate.target hybrid-sleep.target
Dette omdirigerer disse mål til / Dev / nullMed andre ord sender det dem symbolsk "i skraldespanden". Efter en genstart vil ethvert forsøg på at suspendere eller dvale mislykkes fuldstændigt.
Hvis du senere ønsker at genoprette normal adfærd, skal du kun bruge:
sudo systemctl afmask sleep.target suspend.target hibernate.target hybrid-sleep.target
Deaktiver dvaletilstand og suspendér knapper med PolicyKit
En anden, bedre mulighed er at bruge PolicyKit til at fjerne tilladelser til suspendering/dvaletilstand til alle brugere. For eksempel kan du oprette filer i /etc/polkit-1/localauthority/90-mandatory.d/ som:
/etc/polkit-1/localauthority/90-mandatory.d/disable-suspend.pkla
Identitet=unix-bruger:*
Action=org.freedesktop.upower.suspend
ResultActive = nej
ResultatInaktiv=nej
ResultatAny=nej
Identitet=unix-bruger:*
Action=org.freedesktop.login1.suspend
ResultActive = nej
Identitet=unix-bruger:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive = nej
Og til hibernación:
/etc/polkit-1/localauthority/90-mandatory.d/disable-hibernate.pkla
Identitet=unix-bruger:*
Action=org.freedesktop.upower.hibernate
ResultActive = nej
ResultatInaktiv=nej
ResultatAny=nej
Identitet=unix-bruger:*
Action=org.freedesktop.login1.hibernate
ResultActive = nej
Identitet=unix-bruger:*
Action=org.freedesktop.login1.hibernate-multiple-sessions
ResultActive = nej
Efter genstart forsvinder knapperne for pause og dvale fra de grafiske menuer. forhindrer brugeren i at aktivere dem utilsigtet.
Bloker tastaturgenveje og direkte kommandoer
Selv hvis du skjuler knapperne, har nogle stationære computere og tastaturer dem stadig. særlige slumre-/dvaletilstandstaster som kan fortsætte med at fungere. I ældre miljøer med klassisk GNOME kunne dette justeres med kommandoer som:
gconftool -s /apps/gnome-power-manager/buttons/hibernate -t string interaktiv
Derudover kan du oprette scripts i /etc/pm/sleep.d/Som /etc/pm/sleep.d/000cancel-hibernate-suspendhvilket simpelthen Annuller ethvert forsøg på pause eller dvaletilstand vender tilbage til systemet med kontrol. Et typisk skelet ville være:
#! / Bin / sh
# forhindrer dvale og suspendering
«$PM_FUNCTIONS»
tilfælde «${1}» i
suspendere|sætte i dvale)
hæmme
;;
optøning)
Afslut 0
;;
at C
Glem ikke at give den udførelsestilladelser:
chmod 0755 /etc/pm/sleep.d/000cancel-hibernate-suspend
Hvornår er det passende at gå i dvale, og hvornår er det ikke?
Med al denne teori på bordet, står den praktiske del tilbage: Hvornår er det virkelig umagen værd at gå i dvale i GNU/Linux? Der er ikke et enkelt svar, men der er nogle fornuftige retningslinjer.
Hvis din absolutte prioritet er spare energi (For eksempel på en bærbar computer, som du ikke bruger i mange timer), og du har masser af diskplads til hukommelsesbilledet, er dvaletilstand en meget attraktiv mulighed; du kan læse, hvordan du vælger mellem Sluk, sæt din pc i dvale eller sluk denEnergiforbruget i dvaletilstand er nul, og når du vender tilbage, starter du meget hurtigere end fra en koldstart.
Hvis det, du ønsker, er ren hastighed, når du vender tilbage til skrivebordet, og du vil lade computeren være inaktiv. bare et kort øjeblikDet kan være mere praktisk at suspendere til RAM. Maskinen vil stadig bruge noget batteristrøm, men genoptagelsen vil ske næsten øjeblikkeligt.
På systemer med meget RAM, eller hvor stabilitet ved genoptagelse ikke er garanteret (visse usædvanlige hardwaretilstande, eksotiske drivere osv.), er det ofte værd at opgive dvaletilstand og vælge en god pausefunktion og en ... ren genstart med dokumentgendannelse når det er nødvendigt.
I sidste ende giver en grundig forståelse af, hvordan de er afhængige af swap, hvad kernen gør under motorhjelmen, og hvordan man styrer dem med værktøjer som systemd, pm-utils, uswsusp eller PolicyKit dig mulighed for at behandle dvaletilstand og suspension som ... værktøjer til din fordelog ikke som mystiske funktioner, der nogle gange virker og nogle gange efterlader den bærbare computer "fastlåst" uden nogen åbenlys forklaring.
Indholdsfortegnelse
- Dvaletilstand, afbrydelse og genstart med sessionsgendannelse: hvordan de adskiller sig
- Hvad er suspension i Linux, og hvorfor er det værd at bruge?
- Hybridophæng: en blanding af RAM og disk
- Hvordan dvaletilstand fungerer internt i GNU/Linux
- Vigtigheden af at bytte under dvale
- Dvaletilstand på swap-partition vs. swapfile
- Kernelkrav og support i distributioner
- Sådan aktiverer du dvaletilstand i Ubuntu ved hjælp af PolicyKit
- Dvale- og suspenderingskommandoer fra terminalen
- Sådan deaktiverer du slumretilstand og dvaletilstand på GNU/Linux-systemer
- Hvornår er det passende at gå i dvale, og hvornår er det ikke?
