Hibernacija u GNU Linuxu: Potpuni i praktični vodič

Zadnje ažuriranje: 14 siječnja 2026
  • Hibernacija u GNU/Linuxu sprema cijelo stanje RAM-a u swap i gasi računalo, dok suspendiranje zadržava memoriju u RAM-u s niskom potrošnjom energije.
  • Za pouzdan rad hibernacije potrebna je podrška kernela i dovoljno swap prostora, bilo swap particija ili dobro konfigurirana swap datoteka.
  • Različiti alati (systemd, pm-utils, uswsusp i PolicyKit) omogućuju vam omogućavanje, kontrolu ili onemogućavanje hibernacije i suspenzije ovisno o distribuciji i scenariju korištenja.
  • Izbor između suspendiranja, hibernacije ili ponovnog pokretanja s vraćanjem sesije ovisi o ravnoteži koju tražite između uštede energije, brzine povratka na rad i stabilnosti sustava.

Hibernacija u GNU/Linuxu

Hibernacija u GNU/Linuxu ostaje jedna od onih značajki za koje su svi čuli, ali koja nije uvijek dobro shvaćena ili ispravno konfigurirana. Mnogi korisnici dolaze ovdje s problemima s Windowsima ili prijenosnim računalima koja se neočekivano gase i žele znati točno što svaki način rada napajanja radi i kako ga kontrolirati u svojoj Linux distribuciji.

U najnovijim verzijama kernela i glavnim distribucijama stvari su se znatno poboljšale, ali ostaju važne nijanse između hibernacije, obustave i gašenja s ponovnim otvaranjem dokumenata , kao i tehnički detalji poput korištenja swapa (particije ili datoteke) koje vrijedi razumjeti. Razložimo sve ovo smireno, ali na jasan i praktičan način.

Hibernacija, suspenzija i ponovno pokretanje s vraćanjem sesije: kako se razlikuju

Prije nego što se bilo što dotakne u postavkama, ključno je razumjeti što svaki način rada za uštedu energije zapravo radi , jer se koncepti često miješaju, a onda dolaze šokovi s izgubljenim podacima ili praznim baterijama.

Kada govorimo o hibernaciji u operativnim sustavima, mislimo na proces koji zamrzava cijelo stanje sustava : otvorene programe, dokumente, usluge, postavke radne površine, međuspremnike itd. Sav taj sadržaj iz RAM-a sprema se na trajni medij za pohranu (obično swap disk) i računalo se potpuno isključuje.

To znači da hibernacija nije isto što i jednostavno ostavljanje datoteka otvorenima i gašenje računala, niti je isto što i stavljanje računala u stanje mirovanja. Sporija je od stavljanja računala u RAM memoriju, ali štedi znatno više energije jer je računalo potpuno isključeno, bez potrošnje električne energije.

S druge strane, neki sustavi nude nešto slično "ponovnom pokretanju s ponovnim otvaranjem dokumenata", gdje se sustav normalno isključuje, ali nakon ponovnog pokretanja, aplikacije koje su bile otvorene automatski se ponovno pokreću . U GNU/Linuxu, mnoge distribucije oponašaju ovo ponašanje okruženja radne površine, ali to nije hibernacija: to je i dalje hladno pokretanje sa svim servisima pokrenutim ispočetka.

Prednost hibernacije u odnosu na ponovno pokretanje s vraćanjem aplikacije je u tome što se jezgra i korisnički prostor ne pokreću ispočetka ; umjesto toga, vraća se potpuna slika prethodnog stanja. Stoga, kada sve ispravno radi, možete nastaviti s radom točno tamo gdje ste stali, bez ponovnog otvaranja dokumenata ili ponovne konfiguracije prozora.

Načini napajanja u GNU Linuxu

Što je suspenzija u Linuxu i zašto se isplati koristiti je?

U stanju mirovanja, operativni sustav generira sliku trenutnog stanja (vaših programa, dokumenata, radne površine), ali umjesto da je zapiše na disk, ostavlja je u RAM-u, koji je nestabilan.

Kada se sustav zaustavi, kernel isključuje gotovo sve hardverske uređaje: disk, ekran, većinu čipseta… Jedine komponente koje ostaju pod napajanjem su RAM i minimum matične ploče kako bi se mogla "probuditi" kada pritisnete tipku, pomaknete miš ili otvorite poklopac prijenosnog računala.

Ovaj način rada je izvrstan kada želite gotovo trenutni povratak na radnu površinu i niste previše zabrinuti zbog potrošnje energije dok je računalo u stanju mirovanja. Moderno prijenosno računalo može ostati u stanju mirovanja jedan do tri dana na bateriju, ali tijekom tog vremena troši određenu energiju za održavanje RAM-a u radu.

Normalni način rada za spavanje posebno se preporučuje ako imate više od 2 GB RAM-a i ograničen prostor na disku (na primjer, na malim SSD-ovima) ili ako ćete vrlo brzo ponovno koristiti računalo. To je tipično kada zatvorite poklopac na nekoliko minuta između nastave ili stanete za ručak.

Hibridni ovjes: mješavina RAM-a i diska

Postoji i treći, manje poznati način rada: hibridna obustava . U ovom slučaju sustav izvodi cijeli proces hibernacije (zapisivanje sadržaja memorije na disk, obično u swap prostor), ali umjesto da se potpuno isključi, ulazi u stanje obustave u RAM-u.

  Besplatni operativni sustavi za poslužitelje

To stvara mješoviti scenarij: ako baterija traje, probudit ćete sustav jednako brzo kao i kod normalnog spavanja ; ali ako nestane struje, spremljena slika diska omogućit će vam da vratite sesiju kao da je bila u hibernaciji.

Nedostatak ovog načina rada je što ulazak i izlazak traje dulje nego čista obustava rada, jer zapisuje na disk, a ujedno i održava RAM napajanjem. Zbog toga se često koristi na poslužiteljima ili radnim stanicama kojima je potrebna dodatna razina sigurnosti od gubitka stanja.

Kako hibernacija funkcionira interno u GNU/Linuxu

Kada hibernirate GNU/Linux sustav, kernel izvršava niz dobro definiranih koraka za snimanje i vraćanje potpunog stanja stroja . Nije stvar samo u "spremanju RAM-a u datoteku" i to je to.

Tipičan proces suspendiranja na disk slijedi ovaj opći slijed:

  • Korisnički procesi su zaustavljeni kako bi se zamrznulo njegovo stanje i spriječilo daljnje mijenjanje memorije tijekom snimanja.
  • Hardverski uređaji su zamrznuti ili zaustavljeni kako bi se spriječile promjene memorije povezane s kontrolerima i DMA-om.
  • Slika hibernacije se stvara: Cijeli sadržaj RAM-a se kopira s onemogućenim prekidima.
  • Hardverski uređaji se ponovno aktiviraju na kontrolirani način.
  • Slika je napisana u prostor za razmjenu, što se tada smatra područjem suspenzije (swsusp ili linux-suspend).
  • Konačno, svi uređaji su suspendirani i računalo je potpuno isključeno.

Nakon ponovnog pokretanja, sustav za pokretanje provjerava postoji li valjana slika hibernacije :

  • Ako postoji jedan, Ne počinje normalno.ali čita sliku iz swapa.
  • Uređaji su ponovno zamrznuti kako bi se spriječile smetnje.
  • Slika se kopira iz swapa u RAM i ponovno aktiviranje procesa i uređaja kao što su bili prije hibernacije.

Jedan zanimljiv detalj uočen u testiranju u stvarnom svijetu jest da se nakon hibernacije bivša "linux-swap particija" u alatima poput GParted ili parted pojavljuje označena kao linux-suspend ili swsusp . Ova promjena vrste particije jedan je od znakova koje sustav koristi za određivanje treba li se vratiti iz hibernacije ili izvršiti čisto pokretanje.

Važnost zamjene tijekom hibernacije

Cijeli ovaj mehanizam uključuje ključni zahtjev: za hibernaciju u Linuxu potreban vam je odgovarajući swap prostor , i po veličini i po konfiguraciji. Bez swapa, sustav neće imati gdje pohraniti RAM sliku.

Zamjena može biti:

  • Una namjenska particija s tipom sustava linux-swap.
  • Un datoteka za razmjenu nalazi se u normalnom datotečnom sustavu (na primjer, u /swapfile).

Iz praktičnih razloga, kernel transparentno tretira oba kao swap prostor. Međutim, za korištenje swapfile kao odredište za hibernaciju Kroz boot manager morate kernelu reći parametre kao što su resume= (uređaj) i resume_offset= (pomak unutar datoteke). Ako se to ne učini, sustav će se pokrenuti ispočetka i neće vratiti sliku, čak i ako je zapisana na disk.

Što se tiče veličine, klasična preporuka za pouzdanu hibernaciju je da swap prostor treba biti barem veličine fizičkog RAM-a . Istina je da ako je sustav pod velikim opterećenjem, ponekad možete hibernirati s nešto manjim swap prostorom, ali to nije sigurna stvar i ne treba se generalizirati. Na sustavima s 32 GB ili 64 GB RAM-a ili više, mnogi administratori savjetuju da se uopće ne hibernira zbog vremenskih i prostornih ograničenja.

Također je vrijedno zapamtiti da mehanizmi poput zrama ili zswapa stvaraju komprimirano područje za swap unutar samog RAM-a. Oni su fantastični za poboljšanje performansi na sustavima s ograničenom memorijom, ali nisu prikladni za hibernaciju: budući da su nestabilni, slika bi nestala kada se prekine napajanje.

Hibernacija na swap particiji u odnosu na swap datoteku

Godinama se smatralo da je posjedovanje namjenske swap particije gotovo obavezno ako ste željeli hibernirati bez komplikacija. Ponašanje kernela i alata poput initramfsa uvelike se temeljilo na tom klasičnom modelu.

Međutim, mnoge moderne distribucije, poput novijih verzija Ubuntua, prešle su na korištenje swap datoteke prema zadanim postavkama umjesto particije . To ne znači da gubite mogućnost hibernacije; jednostavno se mijenja mjesto gdje se sprema stanje sustava.

  Kako optimizirati Windows 11 za igranje i poboljšati performanse

U oba slučaja, osnovni proces je isti: Slika iz RAM-a ide u trajni swap prostorRazlika je u tome što kod swap datoteke sustav treba znati točan blok na disku gdje datoteka počinje (otuda parametar). resume_offset) kako bi se slika mogla pročitati rano tijekom pokretanja.

Praktični eksperimenti na Debianu i računalima temeljenim na Debianu pokazali su da formatiranje ili brisanje swap particije na kojoj je pohranjena slika hibernacije rezultira čistim pokretanjem, kao da hibernacija nikada nije ni nastupila. To potvrđuje da je slika doista pohranjena u swapu, a ne negdje drugdje na disku.

Zahtjevi za kernel i podrška u distribucijama

Uz swap prostor, Linux kernel mora imati omogućenu podršku za hibernaciju . Ako kompajlirate vlastiti kernel i onemogućite ovu opciju, bez obzira na to koliko konfiguracija prilagodite u distribuciji, nećete moći hibernirati.

U praksi, većina distribucija koristi kernel koji je pakirao sam projekt, a u tim slučajevima hibernacija je obično omogućena prema zadanim postavkama zajedno s ostalim uobičajenim funkcijama i upravljačkim programima za upravljanje napajanjem.

Međutim, ne prikazuju sve distribucije uvijek gumb "Hibernacija" u svojim grafičkim izbornicima. Neke, poput Ubuntua u određenim verzijama, prema zadanim postavkama skrivaju opciju na radnoj površini iako su kernel i infrastruktura hibernacije u potpunosti operativni.

Kako omogućiti hibernaciju u Ubuntuu pomoću PolicyKita

Na Ubuntu sustavima gdje se opcija hibernacije ne pojavljuje u izborniku za isključivanje, može se relativno lako ponovno omogućiti izmjenom nekih PolicyKit pravila. Ideja je ovlastiti obične korisnike da pozovu radnje hibernacije upower i logind.

Tipičan postupak uključuje stvaranje konfiguracijske datoteke, na primjer com.ubuntu.enable-hibernate.pklasa sličnim sadržajem (prilagođeno sintaksi koju koriste vaši alati):


Identitet=unix-korisnik:*
Akcija=org.freedesktop.upower.hibernate
RezultatAktivno=da


Identitet=unix-korisnik:*
Akcija=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
RezultatAktivno=da

Nakon što je datoteka kreirana, mora se smjestiti u /etc/polkit-1/localauthority/50-local.d/Da biste to učinili, možete otvoriti upravitelj datoteka kao administrator (na primjer s gksudo nautilus u okruženjima koja ga još uvijek podržavaju) i zalijepite ga u taj direktorij.

Nakon ponovnog pokretanja sustava, Ubuntu radna površina će prikazati opciju hibernacije uz opcije gašenja, ponovnog pokretanja i obustave. Naravno, i dalje su potrebni dovoljno veliki swap prostor i kernel s podrškom za hibernaciju.

Konfiguracija hibernacije u GNU Linuxu

Naredbe za hibernaciju i obustavu iz terminala

Ako preferirate terminal ili koristite lagana okruženja (Fluxbox, IceWM, Openbox, JWM itd.) gdje nema unaprijed konfiguriranih tipki za napajanje, hibernaciju i spavanje možete izravno kontrolirati naredbama.

Korištenje pm-utils

U mnogim klasičnim Debian/Ubuntu distribucijama, paket pm-utils nudi nekoliko jednostavnih naredbi:

  • pm-obustavaOvo suspendira stroj u RAM memoriju. Većina uređaja je isključena, a stanje se održava u memoriji. Potrošnja energije je značajno smanjena, ali se energija i dalje koristi.
  • pm-hibernacija: hibernira sustav spremanjem RAM-a na disk (swap) i potpunim isključivanjem računala.
  • pm-suspend-hibridIzvodi hibernaciju na disku i, umjesto gašenja, stavlja RAM u stanje mirovanja, čime se postiže "hibridno spavanje".

Osnovna upotreba bi bila:

sudo pm-suspend
sudo pm-hibernacija
sudo pm-suspend-hybrid

Na sustavima temeljenim na Arch Linuxu i drugima koji ga održavaju u svojim repozitorijima, također možete koristiti ove naredbe, iako je pm-utils napušten u korist systemd-a u mnogim modernim distribucijama.

Korištenje systemd-a (systemctl)

U distribucijama sa systemd-om (OpenSUSE, mnoge verzije Archa i derivata, moderni Debian itd.), preporučeni način je korištenje systemctl-a :

  • suspendiranje systemctl-a: obustavlja RAM.
  • systemctl hibernacija: hibernira na disk.
  • systemctl hibridno spavanje: aktivira hibridni ovjes.

Na primjer, u OpenSUSE-u ili bilo kojem tipičnom systemd sustavu, možete izravno pozvati:

sudo systemctl prezimiti

U mnogim distribucijama, ako želite zadržati kompatibilnost sa starijim alatima, pm-hibernate je i dalje dostupan i jednostavno delegira ili koegzistira sa systemd-om ovisno o konfiguraciji.

Korištenje uswsusp-a: s2ram, s2disk i s2both

Druga obitelj alata, danas rjeđa, je uswsusp , koji nudi naredbe s2ram, s2disk i s2both. Bio je dostupan u Debianu i Ubuntuu do određenih verzija (Debian 10; Ubuntu 20.04 i novije verzije su ga ukinule).

  • s2ram: suspendira sustav u RAM (S3 način rada). Ekvivalentno je suspendiranju naredbi pm-suspend ili systemctl.
  • s2disk: sprema kompletno stanje na disk i isključuje stroj (klasična hibernacija).
  • oboje: kombinira obje stvari: zapisuje sliku na disk, a zatim se suspendira u RAM, postižući hibridno ponašanje.
  Uklonite upozorenje o 'malo prostora na disku' u sustavu Windows: Ispravno ga onemogućite i izbjegnite probleme

Naredbe bi bile:

sudo s2ram
sudo s2disk
sudo s2both

Ovi uslužni programi zahtijevaju pravilnu konfiguraciju initramfs-a tako da se, prilikom pokretanja, pozove mehanizam za nastavak rada i slika se vrati ako postoji.

Kako onemogućiti spavanje i hibernaciju na GNU/Linux sustavima

U nekim okruženjima, kao što su učionice, dijeljena računala ili javne radne stanice, stanje mirovanja i hibernacije mogu uzrokovati neočekivana gašenja, probleme s mrežom ili zamrzavanja koje je teško objasniti korisnicima . U takvim slučajevima, ponekad je najpraktičnije rješenje potpuno onemogućavanje tih funkcija.

Onemogući korištenje systemd-a (ciljna maska)

Ako vaš sustav koristi systemd, jednostavno maskirajte ciljeve povezane sa spavanjem i hibernacijom tako da se ne mogu aktivirati ni iz grafičkih izbornika ni iz terminala:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Ovo preusmjerava te ciljeve na /dev/null , simbolično ih šaljući "u smeće". Nakon ponovnog pokretanja, svaki pokušaj suspendiranja ili hibernacije će potpuno propasti.

Ako kasnije želite vratiti normalno ponašanje, trebat će vam samo:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

Onemogućite gumbe za hibernaciju i obustavu pomoću PolicyKita

Druga, bolja opcija je korištenje PolicyKit za uklanjanje dozvola za obustavu/hibernaciju svim korisnicima. Na primjer, možete stvoriti datoteke u /etc/polkit-1/localauthority/90-mandatory.d/ kao:

/etc/polkit-1/localauthority/90-mandatory.d/disable-suspend.pkla


Identitet=unix-korisnik:*
Akcija=org.freedesktop.upower.suspend
RezultatAktivno=ne
RezultatNeaktivno=ne
RezultatAny=ne


Identitet=unix-korisnik:*
Akcija=org.freedesktop.login1.suspend
RezultatAktivno=ne


Identitet=unix-korisnik:*
Akcija=org.freedesktop.login1.suspend-multiple-sessions
RezultatAktivno=ne

A za hibernaciju :

/etc/polkit-1/localauthority/90-mandatory.d/disable-hibernate.pkla


Identitet=unix-korisnik:*
Akcija=org.freedesktop.upower.hibernate
RezultatAktivno=ne
RezultatNeaktivno=ne
RezultatAny=ne


Identitet=unix-korisnik:*
Akcija=org.freedesktop.login1.hibernate
RezultatAktivno=ne


Identitet=unix-korisnik:*
Akcija=org.freedesktop.login1.hibernate-multiple-sessions
RezultatAktivno=ne

Nakon ponovnog pokretanja, tipke za obustavu i hibernaciju nestat će iz grafičkih izbornika, što će spriječiti korisnika da ih slučajno aktivira.

Blokiraj prečace na tipkovnici i izravne naredbe

Čak i ako sakrijete gumbe, neke radne površine i tipkovnice imaju posebne tipke za spavanje/hibernaciju koje i dalje mogu funkcionirati. U starijim okruženjima s klasičnim GNOME-om, to se može prilagoditi naredbama poput:

gconftool -s /apps/gnome-power-manager/buttons/hibernate -t ​​​​interactive string

Osim toga, možete kreirati skripte u /etc/pm/sleep.d/Kao /etc/pm/sleep.d/000cancel-hibernate-suspend, što jednostavno Otkazivanje svakog pokušaja suspenzije ili hibernacije vraćanje kontrole sustavu. Tipičan kostur bi bio:

# / Bin / sh
# sprječava hibernaciju i obustavu rada
. «$PM_FUNCTIONS»
slučaj «${1}» u
obustaviti|hibernirati)
spriječiti
;;
nastaviti|odmrznuti)
izlaz 0
;;
ESAC

Ne zaboravite mu dati dozvole za izvršavanje:

chmod 0755 /etc/pm/sleep.d/000cancel-hibernate-suspend

Kada je prikladno hibernirati, a kada nije?

Nakon što je sva ova teorija iznesena, ostaje praktični dio: kada se zaista isplati hibernirati u GNU/Linuxu? Ne postoji jedinstven odgovor, ali postoje neke razumne smjernice.

Ako vam je glavni prioritet ušteda energije (na primjer, na prijenosnom računalu koje ne koristite satima) i imate dovoljno prostora na disku za memorijsku sliku, hibernacija je vrlo atraktivna opcija; možete pročitati kako odabrati između isključivanja, suspendiranja ili hibernacije računala . Potrošnja energije u načinu hibernacije je nula, a kada nastavite s radom, pokreće se puno brže nego iz hladnog pokretanja.

Ako želite čistu brzinu pri povratku na radnu površinu i računalo ćete ostaviti neaktivnim samo kratko vrijeme , prebacivanje u RAM memoriju moglo bi biti praktičnije. Računalo će i dalje trošiti dio baterije, ali nastavak rada bit će gotovo trenutan.

Na računalima s puno RAM-a ili na sustavima gdje stabilnost nakon ponovnog pokretanja nije zajamčena (određeni neobičan hardver, egzotični upravljački programi itd.), često se isplati odustati od hibernacije i odlučiti se za dobar način mirovanja i čisto ponovno pokretanje s vraćanjem dokumenata kada je to potrebno.

U konačnici, razumijevanje kako se oslanjaju na swap, što kernel radi "ispod haube" i kako ih kontrolirati alatima poput systemd, pm-utils, uswsusp ili PolicyKit omogućuje vam da hibernaciju i suspendiranje tretirate kao alate u svoju korist , a ne kao misteriozne funkcije koje ponekad rade, a ponekad ostavljaju prijenosno računalo "zaglavljenim" bez ikakvog vidljivog objašnjenja.

isključite suspendiranje ili hibernaciju računala tijekom životnog vijeka
Povezani članak:
Isključivanje, suspendiranje ili hibernacija računala: što je najbolje za produljenje njegovog vijeka trajanja