Hibernācija GNU Linux vidē: pilnīga un praktiska rokasgrāmata

Pēdējā atjaunošana: 14 janvāris 2026
  • Hibernācijas režīmā GNU/Linux tiek saglabāts viss RAM stāvoklis, lai veiktu apmaiņu, un dators tiek izslēgts, savukārt apturēšanas režīmā atmiņa tiek saglabāta RAM ar zemu enerģijas patēriņu.
  • Lai hibernācija darbotos droši, ir nepieciešams kodola atbalsts un pietiekama mijmaiņas vieta — vai nu mijmaiņas nodalījums, vai labi konfigurēts mijmaiņas fails.
  • Dažādi rīki (systemd, pm-utils, uswsusp un PolicyKit) ļauj iespējot, kontrolēt vai atspējot hibernācijas un apturēšanas režīmu atkarībā no izplatīšanas un lietošanas scenārija.
  • Izvēle starp sesijas atjaunošanu, apturēšanu vai restartēšanu ir atkarīga no vēlamā līdzsvara starp enerģijas taupīšanu, atgriešanās darbā ātrumu un sistēmas stabilitāti.

Hibernācija GNU/Linux vidē

Hibernācija GNU/Linux joprojām ir viena no tām funkcijām, par kurām visi ir dzirdējuši, taču tā ne vienmēr ir labi izprasta vai pareizi konfigurēta. Daudzi lietotāji vēršas pie mums, ja viņiem rodas problēmas ar Windows vai klēpjdatoriem, kas negaidīti izslēdzas, un viņi vēlas precīzi uzzināt, ko dara katrs enerģijas režīms un kā to kontrolēt savā Linux distribūcijā.

Jaunākajās kodola versijās un galvenajās distribūcijās lietas ir ievērojami uzlabojušās, taču joprojām pastāv svarīgas nianses starp hibernāciju, apturēšanu un izslēgšanu ar dokumenta atkārtotu atvēršanu , kā arī tehniskas detaļas, piemēram, mijmaiņas apgabala (particijas vai faila) izmantošana, kuras ir vērts saprast. Apskatīsim visu mierīgi, bet skaidri un praktiski.

Hibernācija, apturēšana un restartēšana ar sesijas atjaunošanu: kā tās atšķiras

Pirms jebkādu darbību veikšanas iestatījumos ir svarīgi saprast, ko katrs enerģijas taupīšanas režīms īsti dara , jo jēdzieni bieži tiek jaukti, un tad rodas šoka situācijas ar datu zudumu vai izlādējušos akumulatoru.

Runājot par hibernāciju operētājsistēmās, mēs domājam procesu, kas iesaldē visu sistēmas stāvokli : atvērtās programmas, dokumentus, pakalpojumus, darbvirsmas iestatījumus, buferus utt. Viss šis RAM saturs tiek saglabāts pastāvīgā datu nesējā (parasti diska maiņas diskā), un dators tiek pilnībā izslēgts.

Tas nozīmē, ka hibernācija nav tas pats, kas vienkārši atstāt failus atvērtus un izslēgt datoru, kā arī tā nav tas pats, kas datora darbības apturēšana. Tā ir lēnāka nekā darbības apturēšana RAM atmiņā, taču tā ietaupa ievērojami vairāk enerģijas, jo dators ir pilnībā izslēgts, nepatērējot elektrību.

No otras puses, dažas sistēmas piedāvā kaut ko līdzīgu "restartēšanai ar dokumentu atkārtotu atvēršanu", kur sistēma izslēdzas normāli, bet pēc restartēšanas atvērtās lietojumprogrammas tiek automātiski palaistas atkārtoti . GNU/Linux sistēmā daudzas distribūcijas atdarina šo darbvirsmas vides darbību, taču tā nav hibernācija: tā joprojām ir aukstā palaišana, kurā visi pakalpojumi tiek startēti no jauna.

Hibernācijas priekšrocība salīdzinājumā ar restartēšanu ar lietotnes atjaunošanu ir tāda, ka kodols un lietotāja telpa netiek restartēti no jauna ; tā vietā tiek atjaunots pilnīgs iepriekšējā stāvokļa attēls. Tādēļ, kad viss darbojas pareizi, varat atsākt darbu tieši tur, kur pārtraucāt, neatverot dokumentus vai nepārkonfigurējot logus.

Jaudas režīmi GNU Linux sistēmā

Kas ir apturēšana operētājsistēmā Linux un kāpēc to ir vērts izmantot?

Miega režīmā operētājsistēma ģenerē tiešraides attēlu par pašreizējo stāvokli (programmas, dokumentus, darbvirsmu), bet tā vietā, lai ierakstītu to diskā, tā atstāj to RAM atmiņā, kas ir gaistoša.

Kad sistēma pārstāj darboties, kodols izslēdz praktiski visas aparatūras ierīces: disku, ekrānu, lielāko daļu mikroshēmojuma… Vienīgās sastāvdaļas, kas paliek darbinātas, ir RAM un mātesplates minimums , lai tā varētu “pamosties”, nospiežot taustiņu, pakustinot peli vai atverot klēpjdatora vāku.

Šis režīms ir lieliski piemērots, ja vēlaties gandrīz nekavējoties atgriezties pie darbvirsmas un neesat pārāk noraizējies par enerģijas patēriņu, kamēr dators ir dīkstāvē. Mūsdienu klēpjdators var palikt miega režīmā vienu līdz trīs dienas ar akumulatora enerģiju, taču šajā laikā tas patērē zināmu enerģiju, lai uzturētu RAM darbību.

Parastais miega režīms ir īpaši ieteicams, ja jums ir vairāk nekā 2 GB RAM un ierobežota vieta diskā (piemēram, mazos SSD diskos) vai ja datoru atkal izmantosiet ļoti drīz. Tas ir tipiski, ja starp nodarbībām uz dažām minūtēm aizverat vāku vai pārtraucat pusdienas.

Hibrīda piekare: RAM un diska sajaukums

Pastāv trešais, mazāk zināmais režīms: hibrīda apturēšana . Šajā gadījumā sistēma veic visu hibernācijas procesu (atmiņas satura ierakstīšanu diskā, parasti, lai apmainītu vietu), bet tā vietā, lai pilnībā izslēgtos, tā pāriet apturētā stāvoklī RAM.

  Kā pārvērst vecu datoru par NAS, izmantojot Unraid un citas alternatīvas

Tas rada jauktu scenāriju: ja akumulators pietiek enerģijas, sistēma tiks pamodināta tikpat ātri kā parastā miega režīmā ; bet, ja akumulators izlādējas, saglabātais diska attēls ļaus atjaunot sesiju tā, it kā tā būtu pārgājusi hibernācijas režīmā.

Šī režīma trūkums ir tāds, ka tā ieslēgšana un iziešana no tā aizņem ilgāku laiku nekā tīras apturēšanas režīms, jo tas ieraksta diskā un vienlaikus nodrošina RAM barošanu. Šī iemesla dēļ to bieži izmanto serveros vai darbstacijās, kurām nepieciešams papildu drošības līmenis pret stāvokļa zudumu.

Kā hibernācija darbojas iekšēji GNU/Linux vidē

Kad GNU/Linux sistēma tiek pārslēgta hibernācijas režīmā, kodols izpilda virkni precīzi definētu darbību, lai iegūtu un atjaunotu datora pilno stāvokli . Tas nav tikai jautājums par "RAM saglabāšanu failā", un tas arī viss.

Tipiskais apturēšanas uz diska process notiek šādā vispārīgā secībā:

  • Lietotāja procesi tiek apturēti lai iesaldētu tā stāvokli un neļautu tam turpināt modificēt atmiņu, kamēr tiek veikta tveršana.
  • Aparatūras ierīces tiek iesaldētas vai apturētas, lai novērstu ar kontrolleriem un DMA saistītās atmiņas izmaiņas.
  • Tiek izveidots ziemas guļas attēls: Viss RAM saturs tiek kopēts ar atspējotiem pārtraukumiem.
  • Aparatūras ierīces tiek atkārtoti aktivizētas kontrolētā veidā.
  • Attēls ir uzrakstīts valodā maiņas vieta, kas pēc tam tiek uzskatīta par apturēšanas apgabalu (swsusp vai linux-suspend).
  • Visbeidzot, visas ierīces tiek apturētas, un dators ir pilnībā izslēgts.

Pēc restartēšanas sāknēšanas sistēma pārbauda, ​​vai ir derīgs hibernācijas attēls :

  • Ja tāds ir, Tas nesākas normāli.bet nolasa attēlu no mijmaiņas.
  • Ierīces atkal tiek iesaldētas, lai novērstu traucējumus.
  • Attēls tiek kopēts no mijmaiņas atmiņas uz RAM un atkārtoti aktivizēt procesus un ierīces tādi, kādi tie bija pirms ziemas miega.

Viena interesanta detaļa, kas novērota reālās pasaules testos, ir tā, ka pēc hibernācijas bijušais "linux-swap partition" tādos rīkos kā GParted vai parted tiek apzīmēts kā linux-suspend vai swsusp . Šīs nodalījuma veida izmaiņas ir viena no norādēm, ko sistēma izmanto, lai noteiktu, vai atjaunot sistēmu no hibernācijas vai veikt tīru sāknēšanu.

Apmaiņas nozīme ziemas miega laikā

Viss šis mehānisms ietver galveno prasību: lai pārietu hibernācijas režīmā operētājsistēmā Linux, ir nepieciešama pietiekama mijmaiņas vieta gan izmēra, gan konfigurācijas ziņā. Bez mijmaiņas vietas sistēmai nebūs, kur saglabāt RAM attēlu.

Apmaiņa var būt šāda:

  • A veltīts nodalījums ar sistēmas tipu linux-swap.
  • Un mijmaiņas fails atrodas parastā failu sistēmā (piemēram, /swapfile).

Praktisku apsvērumu dēļ kodols abus apstrādā kā mijmaiņas telpu caurspīdīgi. Tomēr, lai izmantotu swapfile kā hibernācijas galamērķis Izmantojot sāknēšanas pārvaldnieku, jums jānorāda kodolam tādi parametri kā resume= (ierīce) un resume_offset= (pārvietošana faila ietvaros). Ja tas netiks izdarīts, sistēma tiks startēta no jauna un neatjaunos attēlu, pat ja tas tiks ierakstīts diskā.

Runājot par izmēru, klasiskais ieteikums uzticamai hibernācijai ir tāds, ka mijmaiņas vietai jābūt vismaz fiziskās RAM lielumam . Ir taisnība, ka, ja sistēma ir ļoti noslogota, dažreiz var pāriet hibernācijā ar nedaudz mazāku mijmaiņas vietu, taču tas nav droši un to nevajadzētu vispārināt. Sistēmās ar 32 GB vai 64 GB RAM vai vairāk daudzi administratori neiesaka hibernāciju vispār laika un vietas ierobežojumu dēļ.

Ir arī vērts atcerēties, ka tādi mehānismi kā zram vai zswap izveido saspiestu mijmaiņas apgabalu pašā RAM. Tie ir lieliski piemēroti veiktspējas uzlabošanai sistēmās ar ierobežotu atmiņu, taču tie nav piemēroti hibernācijai: tā kā tie ir mainīgi, attēls pazustu, pārtraucot strāvas padevi.

Hibernācija mijmaiņas nodalījumā salīdzinājumā ar mijmaiņas failu

Gadiem ilgi īpaša mijmaiņas nodalījuma izveide tika uzskatīta par gandrīz obligātu, ja vēlējās pāriet uz hibernāciju bez sarežģījumiem. Kodola un tādu rīku kā initramfs darbība lielā mērā balstījās uz šo klasisko modeli.

Tomēr daudzas mūsdienu distribūcijas, piemēram, jaunākās Ubuntu versijas, pēc noklusējuma ir pārgājušas uz swapfaila izmantošanu nodalījuma vietā . Tas nenozīmē, ka jūs zaudējat iespēju pārslēgties uz hibernācijas režīmu; tas vienkārši maina vietu, kur tiek saglabāts sistēmas stāvoklis.

  Kā konfigurēt Ubuntu, lai tas izskatītos kā Windows 11 vai macOS

Abos gadījumos pamatā esošais process ir vienāds: Attēls no RAM nonāk pastāvīgā mijmaiņas vietāAtšķirība ir tāda, ka, izmantojot swapfile, sistēmai ir jāzina precīzs bloks diskā, kur fails sākas (tātad parametrs). resume_offset), lai varētu nolasīt attēlu jau startēšanas laikā.

Praktiski eksperimenti ar Debian un Debian balstītām iekārtām ir parādījuši, ka mijmaiņas nodalījuma , kurā tika saglabāts hibernācijas attēls, formatēšana vai dzēšana nodrošina tīru sāknēšanu, it kā hibernācija nekad nebūtu notikusi. Tas apstiprina, ka attēls patiešām ir saglabāts mijmaiņas nodalījumā, nevis citur diskā.

Kodola prasības un atbalsts distribūcijās

Papildus mijmaiņas vietai Linux kodolam ir jābūt iespējotam hibernācijas atbalstam . Ja kompilēsiet savu kodolu un atspējosiet šo opciju, neatkarīgi no tā, cik daudz konfigurāciju mainīsiet izplatījumā, jūs nevarēsiet pārslēgties hibernācijas režīmā.

Praksē lielākā daļa izplatījumu izmanto paša projekta iesaiņoto kodolu, un šajos gadījumos hibernācija parasti ir iespējota pēc noklusējuma kopā ar pārējām parastajām enerģijas pārvaldības funkcijām un draiveriem.

Tomēr ne visu distributīvu grafiskajās izvēlnēs vienmēr ir redzama poga "Hibernācija". Dažas, piemēram, Ubuntu noteiktās versijās, pēc noklusējuma paslēpj šo opciju darbvirsmā, pat ja kodols un hibernācijas infrastruktūra darbojas pilnībā.

Kā iespējot hibernāciju Ubuntu, izmantojot PolicyKit

Ubuntu sistēmās, kurās hibernācijas opcija neparādās izslēgšanas izvēlnē, to var relatīvi viegli atkārtoti iespējot, modificējot dažus PolicyKit noteikumus. Ideja ir pilnvarot parastos lietotājus izsaukt upower un logind hibernācijas darbības.

Tipiska procedūra ietver konfigurācijas faila izveidi, piemēram com.ubuntu.enable-hibernate.pklaar līdzīgu saturu (pielāgots jūsu rīku izmantotajai sintaksei):


Identitāte=unix-lietotājs:*
Action=org.freedesktop.upower.hibernate
RezultātsAktīvs=jā


Identitāte=unix-lietotājs:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
RezultātsAktīvs=jā

Kad fails ir izveidots, tas jāievieto /etc/polkit-1/localauthority/50-local.d/Lai to izdarītu, varat atvērt failu pārvaldnieku kā administrators (piemēram, ar gksudo nautilus vidēs, kas to joprojām atbalsta) un ielīmējiet to šajā direktorijā.

Pēc sistēmas restartēšanas Ubuntu darbvirsmā līdzās izslēgšanas, restartēšanas un apturēšanas opcijām tiks parādīta arī hibernācijas opcija . Protams, joprojām ir nepieciešama pietiekami liela mijmaiņas vieta un kodols ar hibernācijas atbalstu.

GNU Linux hibernācijas konfigurācija

Hibernācijas un apturēšanas komandas no termināļa

Ja dodat priekšroku terminālim vai izmantojat vieglas vides (Fluxbox, IceWM, Openbox, JWM utt.), kur nav iepriekš konfigurētu barošanas pogu, varat tieši kontrolēt hibernācijas un miega režīmu ar komandām.

Izmantojot pm-utils

Daudzos klasiskajos Debian/Ubuntu distribūcijas komplektos pm-utils pakotne nodrošina vairākas vienkāršas komandas:

  • pm-apturētTas aiztur datora darbību, ļaujot izmantot RAM. Lielākā daļa ierīču tiek izslēgtas, un stāvoklis tiek saglabāts atmiņā. Enerģijas patēriņš ir ievērojami samazināts, taču enerģija joprojām tiek izmantota.
  • pm-hibernate: pārslēdz sistēmu hibernācijas režīmā, saglabājot RAM diskā (mijmaiņas režīmā) un pilnībā izslēdzot datoru.
  • pm-suspend-hybridTas veic diska hibernāciju un, tā vietā, lai izslēgtu, pārslēdz RAM miega režīmā, tādējādi panākot "hibrīda miegu".

Pamatlietojums būtu šāds:

sudo pm-suspend
sudo pm-pārziemot
sudo pm-suspend-hybrid

Arch Linux sistēmās un citās, kas to uztur savos repozitorijos, varat izmantot arī šīs komandas, lai gan daudzos mūsdienu izplatījumos pm-utils ir atmests par labu systemd.

Izmantojot systemd (systemctl)

Izplatījumos ar systemd (OpenSUSE, daudzas Arch versijas un atvasinājumi, mūsdienu Debian utt.) ieteicamā metode ir izmantot systemctl :

  • systemctl apturēt: aptur RAM darbību.
  • systemctl hibernācija: pāriet hibernācijas režīmā uz disku.
  • systemctl hibrīda miega: aktivizē hibrīda piekari.

Piemēram, OpenSUSE vai jebkurā tipiskā systemd sistēmā varat tieši izsaukt:

sudo systemctl pārziemot

Daudzos izplatījumos, ja vēlaties saglabāt saderību ar vecākiem rīkiem, pm-hibernate joprojām ir pieejams un atkarībā no konfigurācijas vienkārši deleģē vai pastāv līdzās systemd.

Izmantojot uswsusp: s2ram, s2disk un s2both

Vēl viena rīku saime, kas mūsdienās ir retāk sastopama, ir uswsusp , kas nodrošina komandas s2ram, s2disk un s2both. Tas bija pieejams Debian un Ubuntu līdz noteiktām versijām (Debian 10; Ubuntu 20.04 un jaunākās versijās tas ir novecojis).

  • s2ram: aptur sistēmas darbību RAM atmiņā (S3 režīms). Tas ir līdzvērtīgs komandai pm-suspend vai systemctl suspend.
  • s2disks: saglabā visu stāvokli diskā un izslēdz datoru (klasiskā hibernācija).
  • s2both: apvieno abas lietas: ieraksta attēlu diskā un pēc tam ievieto to RAM atmiņā, panākot hibrīda darbību.
  Mārketinga informācijas sistēmas: Nozarē dominējošo uzņēmumu slepenais ierocis

Komandas būtu šādas:

sudo s2ram
sudo s2disk
sudo s2both

Šīm utilītprogrammām ir nepieciešama pareiza initramfs konfigurācija, lai startēšanas laikā tiktu izsaukts atsākšanas mehānisms un attēls tiktu atjaunots, ja tāds pastāv.

Kā atspējot miega un hibernācijas režīmu GNU/Linux sistēmās

Dažās vidēs, piemēram, klasēs, koplietotos datoros vai publiskās darbstacijās, miega un hibernācijas režīmi var izraisīt negaidītas izslēgšanas, tīkla problēmas vai sasalšanu, ko lietotājiem ir grūti izskaidrot . Šādos gadījumos dažreiz vispraktiskākais risinājums ir pilnībā atspējot šīs funkcijas.

Atspējot, izmantojot systemd (mērķa masku)

Ja jūsu sistēma izmanto systemd, vienkārši maskējiet ar miegu un hibernāciju saistītos mērķus , lai tos nevarētu aktivizēt ne no grafiskajām izvēlnēm, ne no termināļa:

sudo systemctl maska ​​sleep.target suspend.target hibernate.target hybrid-sleep.target

Tas novirza šos mērķus uz /dev/null , simboliski nosūtot tos "uz miskasti". Pēc pārstartēšanas jebkurš mēģinājums apturēt vai pārslēgt hibernāciju neizdosies.

Ja vēlāk vēlaties atjaunot normālu darbību, jums būs jāizmanto tikai:

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

Atspējojiet hibernācijas un aiztures pogas, izmantojot PolicyKit

Vēl viena, precīzāka iespēja ir izmantot PolicyKit, lai noņemtu apturēšanas/hibernācijas atļaujas visiem lietotājiem. Piemēram, varat izveidot failus /etc/polkit-1/localauthority/90-mandatory.d/ kā:

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


Identitāte=unix-lietotājs:*
Action=org.freedesktop.upower.suspend
ResultActive = nē
ResultInactive=no
ResultAny=no


Identitāte=unix-lietotājs:*
Action=org.freedesktop.login1.suspend
ResultActive = nē


Identitāte=unix-lietotājs:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive = nē

Un ziemas guļas laikā :

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


Identitāte=unix-lietotājs:*
Action=org.freedesktop.upower.hibernate
ResultActive = nē
ResultInactive=no
ResultAny=no


Identitāte=unix-lietotājs:*
Action=org.freedesktop.login1.hibernate
ResultActive = nē


Identitāte=unix-lietotājs:*
Action=org.freedesktop.login1.hibernate-multiple-sessions
ResultActive = nē

Pēc restartēšanas aiztures un hibernācijas pogas pazudīs no grafiskajām izvēlnēm, neļaujot lietotājam tās nejauši aktivizēt.

Bloķēt īsinājumtaustiņus un tiešās komandas

Pat ja pogas tiek paslēptas, dažiem galddatoriem un tastatūrām ir īpašas miega/hibernācijas pogas , kas joprojām var darboties. Vecākās vidēs ar klasisko GNOME to var pielāgot ar šādām komandām:

gconftool -s /apps/gnome-power-manager/buttons/hibernate -t ​​​​string interaktīvs

Turklāt jūs varat izveidot skriptus, izmantojot /etc/pm/sleep.d/Kā /etc/pm/sleep.d/000cancel-hibernate-suspendkas vienkārši Atceliet jebkuru mēģinājumu pārslēgties uz apturēšanas vai hibernācijas režīmu. atgriežot kontroli sistēmā. Tipisks skelets būtu:

# / Bin! / Sh
# novērš hibernāciju un apturēšanu
. «$PM_FUNKCIJAS»
lieta «${1}» iekšā
apturēt|pārziemot)
nomāc
;;
atsākt|atkausēt)
izeja 0
;;
Esac

Neaizmirstiet piešķirt tam izpildes atļaujas:

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

Kad ir ieteicams doties ziemas guļā un kad nē?

Pēc visas šīs teorijas izklāsta paliek praktiskā daļa: kad tiešām ir vērts pāriet hibernācijā GNU/Linux vidē? Nav vienas atbildes, taču ir dažas saprātīgas vadlīnijas.

Ja jūsu galvenā prioritāte ir enerģijas taupīšana (piemēram, klēpjdatorā, kuru daudzas stundas neizmantojat) un jums ir pietiekami daudz vietas diskā atmiņas attēlam, hibernācija ir ļoti pievilcīga iespēja; varat izlasīt, kā izvēlēties starp datora izslēgšanu, darbības apturēšanu vai hibernāciju . Enerģijas patēriņš hibernācijas režīmā ir nulle, un, atsākot darbu, tas tiek startēts daudz ātrāk nekā pēc aukstās palaišanas.

Ja, atgriežoties pie darbvirsmas, vēlaties tīru ātrumu un datoru atstāsiet dīkstāvē tikai īsu brīdi , ērtāk varētu būt izmantot RAM. Dators joprojām patērēs zināmu akumulatora enerģiju, taču atsākšana notiks gandrīz acumirklī.

Datoros ar lielu RAM vai sistēmās, kurās stabilitāte pēc atsākšanas nav garantēta (neparasta aparatūra, eksotiski draiveri utt.), bieži vien ir vērts atteikties no hibernācijas un izvēlēties labu miega režīmu un tīru restartēšanu ar dokumentu atjaunošanu, ja nepieciešams.

Galu galā, izprotot, kā tie paļaujas uz mijmaiņas serveri, ko kodols dara zem pārsega un kā tos kontrolēt ar tādiem rīkiem kā systemd, pm-utils, uswsusp vai PolicyKit, jūs varēsiet uztvert hibernāciju un apturēšanu kā sev tīkamus rīkus , nevis kā noslēpumainas funkcijas, kas dažreiz darbojas, bet dažreiz atstāj klēpjdatoru "iestrēgušu" bez jebkāda redzama paskaidrojuma.

izslēdziet datora darbības laika apturēšanu vai hibernāciju
Saistītais raksts:
Datora izslēgšana, darbības apturēšana vai hibernācija: kā vislabāk pagarināt tā kalpošanas laiku