GNU/Linux >> Znalost Linux >  >> Debian

Jak povolit hibernaci na Ubuntu (při použití stránkovacího souboru)

Tento článek vysvětluje, jak pomocí systemd povolit hibernaci na novějších verzích Ubuntu při použití stránkovacího souboru (který je pro Ubuntu standardem minimálně od verze 18.04).

Baterie mého notebooku se během spánku vybíjí velmi rychle. Vyzkoušel jsem některá řešení / zástupná řešení, jako je toto zde (kromě mě problém nebyl v tom, že notebook ztratil polovinu výkonu přes noc, ale všechno během několika hodin), ale bez úspěchu. Rozhodl jsem se tedy povolit možnost Suspend to Disk a použít ji místo standardní možnosti Suspend to RAM, protože spotřebovává méně energie, takže se baterie notebooku nevybíjí, když se nepoužívá, i když bude probuzení trvat o něco déle. z hibernace než ze spánku. Tak se to dělá.

Níže uvedené pokyny mohou fungovat na jiných distribucích Linuxu, ale testoval jsem to pouze na Ubuntu (mělo by to fungovat stejně na všech distribucích Linuxu založených na Debianu a Ubuntu, včetně Pop! _OS atd.). V distribucích Linuxu jiných než Debian budete možná muset použít různé příkazy k aktualizaci GRUB 2 (krok 4) a obnovení initramfs (krok 6), protože se jedná o příkazy specifické pro Debian.

Je také důležité poznamenat, že hibernace je v Ubuntu zakázána, protože na některých počítačích způsobí problémy, a proto nemusí fungovat na všech. Bylo to trochu blábolení o opětovné návštěvě hibernace na Ubuntu s verzí 20.10, ale ve výchozím nastavení zůstalo zakázáno.

požadavky

To stojí za zmínku Měli byste mít stránkovací soubor, který je alespoň tak velký jako paměť počítače (Hibernace může nebo nemusí být úspěšná, pokud má váš počítač stránkovací soubor, který je menší než paměť systému). Tento článek vysvětluje, jak přepnout z odkládacího oddílu na odkládací soubor – tyto pokyny můžete také použít k vytvoření většího odkládacího souboru.

Pokud jste svůj swap speciálně zašifrovali, tyto pokyny nebudou fungovat . Protože swap mého notebooku není šifrovaný, nemohu se o to pokusit pomocí šifrovaného swapu, takže níže uvedené pokyny platí pouze pro nezašifrované odkládací soubory. Měli byste však vědět, že pokud již máte zašifrovaný kořenový souborový systém, všechny soubory v něm – včetně stránkovacího souboru – budou také zašifrovány a v tomto případě budou fungovat následující pokyny.

Chcete-li zjistit velikost odkládacího prostoru vašeho počítače a zda používá odkládací soubor nebo oddíl (budete to muset vědět později), můžete použít tento příkaz:

cat /proc/swaps

Zde je příklad s výstupem z mého notebooku:

$ cat /proc/swaps
Filename	Type	Size		Used		Priority
/swapfile	file	8388604		3213700		-2

Jak můžete vidět níže Type říká file , takže můj počítač používá stránkovací soubor (a jeho cesta je /swapfile ) a jeho velikost je 8388604 Kilobajty (8,3 GB).

Ve výchozím nastavení Ubuntu nějakou dobu používá stránkovací soubor (alespoň počínaje Ubuntu 18.04), takže níže uvedené pokyny předpokládají, že jej používáte. Pokud používáte odkládací oddíl, v následujících pokynech použijte UUID odkládacího oddílu místo UUID oddílu, na kterém je odkládací soubor umístěn, a nepřidávejte offset odkládacího souboru (resume_offset Parametry) všude. Toto jsou rozdíly mezi hibernací s odkládacím oddílem a odkládacím souborem.

Také by vás mohlo zajímat:3 nástroje pro zobrazení informací o baterii notebooku Linux z příkazového řádku

Jak povolit hibernaci na Ubuntu (při použití stránkovacího souboru)

1. Určete UUID oddílu, na kterém je umístěn odkládací soubor.

Musíme to přidat do souboru GRUB a souboru resumé initramfs.

Chcete-li zjistit UUID oddílu, kde se nachází váš stránkovací soubor, můžete použít následující příkaz:

findmnt -no UUID -T /swapfile

(/swapfile je cesta k odkládacímu souboru a může se na vašem počítači lišit; Použijte přesnou cestu, která je vrácena z cat /proc/swaps Příkaz).

Příklad z mého počítače (s výstupem):

$ findmnt -no UUID -T /swapfile

4a59c6a7-ca54-4e24-a362-3eac83bfe226

2. Zjistěte posun stránkovacího souboru.

Dále musíme zjistit offset stránkovacího souboru. Stejně jako UUID jej musíme přidat do souboru GRUB a souboru resumé initramfs.

To lze provést spuštěním následujícího příkazu:

sudo filefrag -v /swapfile

Ve výstupu tohoto příkazu je první blok čísel ze sloupce „physical_offset“ posunutím odkládacího souboru, který budete později potřebovat. Zkopírujte pouze čísla, nikoli tečky, které následují po numerické klávesnici.

V mém případě je to například výstup sudo filefrag -v /swapfile Příkaz:

$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 8589934592 (2097152 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..    6143:    4974592..   4980735:   6144:
   1:     6144..    8191:    4982784..   4984831:   2048:    4980736:
   2:     8192..   10239:    4988928..   4990975:   2048:    4984832:
   3:    10240..   12287:    4997120..   4999167:   2048:    4990976:
........................................

V tomto příkladu je offset stránkovací soubor 4974592 (Toto je první číselný blok z psysical_offset pilíř).

3. Upravte /etc/default/grub Soubor pro zavedení s parametry jádra „resume“ a „resume offset“.

Je velmi důležité se ujistit, že vaše úpravy tohoto souboru jsou správné, jinak se váš počítač nemusí spustit!

Otevřete to /etc/default/grub Soubor s textovým editorem jako root, např. následujícím příkazem jej otevřeme v textovém editoru příkazového řádku Nano:

sudo nano /etc/default/grub

V tomto souboru na konci GRUB_CMDLINE_LINUX_DEFAULT Řádek před koncem " , přidejte následující:resume=UUID=UUID_FROM_STEP_1 resume_offset=SWAP_OFFSET_FROM_STEP_2 . Nahraďte hodnoty UUID, které jste získali v kroku 1, a offset obnovení swapu, který jste získali v kroku 2.

Chcete-li uložit soubor a ukončit Nano, stiskněte Ctrl + o a poté Enter a poté Ctrl + x .

Příklad. Tak se to dělá GRUB_CMDLINE_LINUX_DEFAULT řádek vypadá na mém počítači takto po přidání swap UUID a swap offsetu:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=4a59c6a7-ca54-4e24-a362-3eac83bfe226 resume_offset=4974592"

4. Aktualizujte konfiguraci GRUB.

Chcete-li upgradovat GRUB 2 na distribucích Linuxu založených na Debianu, vše, co musíte udělat, je spustit následující příkaz:

sudo update-grub

5. Vytvořte (nebo upravte, pokud již máte) /etc/initramfs-tools/conf.d/resume s odkládacím UUID a offsetem obnovení.

Dále musíme soubor upravit (nebo jej vytvořit, pokud neexistuje). /etc/initramfs-tools/conf.d/resume Soubor s textovým editorem jako root. Pomocí následujícího příkazu otevřete tento soubor pomocí editoru příkazového řádku Nano:

sudo nano /etc/initramfs-tools/conf.d/resume

Pokud máte v tomto souboru řádek, který začíná „RESUME“, upravte tento řádek, nebo pokud žádný takový řádek neexistuje (nebo je soubor zcela prázdný), přidejte řádek tak, aby vypadal takto:

RESUME=UUID=UUID_FROM_STEP_1 resume_offset=SWAP_OFFSET_FROM_STEP_2

Chcete-li uložit soubor a ukončit Nano, stiskněte Ctrl +o a poté Enter a poté Ctrl + x .

Příklad s obsahem /etc/initramfs-tools/conf.d/resume Soubor z mého notebooku:

RESUME=UUID=4a59c6a7-ca54-4e24-a362-3eac83bfe226 resume_offset=4974592

6. Obnovit initramfs.

Nyní musíte znovu vygenerovat initramfs tímto příkazem:

sudo update-initramfs -c -k all

7. Restartujte počítač.

Po restartování počítače použijte k přepnutí počítače do režimu spánku následující příkaz:

sudo systemctl hibernate

Prozatím budete muset zadat své heslo pro přechod do režimu spánku a neexistuje žádná možnost nabídky pro přepnutí počítače do režimu spánku, takže to vše budete muset provést z příkazového řádku. Chcete-li systém přepnout do režimu spánku bez zadání hesla (a mít možnost hibernace počítače v možnosti napájení plochy (např. v apletu na ovládacím panelu)), postupujte podle následujících 2 kroků.

Chcete-li obnovit režim spánku, stiskněte tlačítko napájení na počítači.

Pokud se při spuštění tohoto příkazu zobrazí chybová zpráva, která říká, že systém nelze hibernovat pomocí přihlášení:Nedostatek odkládacího prostoru k hibernaci, pak jste možná přehlédli poznámku na začátku článku, kde zmiňuji, že je nejlepší mít stránkovací soubor, který je alespoň tak velký jako paměť vašeho počítače. Tento článek vysvětluje, jak přepnout z odkládacího oddílu na odkládací soubor – tyto pokyny můžete také použít k vytvoření většího odkládacího souboru.

Chyby související se službou Hibernate systemd můžete zkontrolovat pomocí:

systemctl status systemd-hibernate.service

8. Volitelný. Povolit hibernaci bez zadání hesla (vyžadováno pro další krok). V některých desktopových prostředích se tím znovu aktivují možnosti nabídky napájení „Hibernate“ a „Hybrid Sleep“.

Chcete-li počítač přepnout do režimu spánku, budete muset ve výchozím nastavení zadat heslo. Chcete-li povolit hibernaci bez hesla, vytvořte / otevřete /etc/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla s textovým editorem jako root.

Následující příkaz otevře /etc/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla jako root pomocí editoru příkazového řádku nano:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla

Do tohoto souboru vložte následující:

[Enable hibernate in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Enable hibernate in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

Nyní uložte soubor a ukončete Nano (stiskněte Ctrl + o a poté Enter a poté Ctrl + x ).

V některých desktopových prostředích pak obdržíte (a po odhlášení / opětovném přihlášení) možnosti napájení hibernace a hybridní spánek. Zde je příklad možností napájení Xfce po provedení tohoto kroku:

Toto však nefunguje v některých desktopových prostředích, která používají Ubuntu, jako například:B. s prostředím GNOME. V tomto případě potřebujeme další krok (viz níže).

to jde přes AskUbuntu

9. Volitelný. Přidejte položku nabídky pro aplikace hibernace nebo použijte tlačítko hibernace pro prostředí GNOME.

Pokud používáte prostředí GNOME, můžete použít rozšíření, které přidá možnost přepnutí počítače do režimu spánku v nabídce napájení systému na horní liště, která se nazývá Tlačítko spánku.

Zde je nabídka Vypnout / Odhlásit GNOME Shell s povoleným tímto rozšířením:

Pokud nepoužíváte prostředí GNOME, ale vaše pracovní prostředí nezobrazuje možnost napájení hibernace, nebo nechcete používat výše uvedené rozšíření prostředí GNOME, můžete vytvořit položku v nabídce aplikace vytvořením soubor s názvem hibernace. desktop v ~/.local/share/applications/ , např. otevřete textový editor příkazového řádku Nano s tímto souborem:

nano ~/.local/share/applications/hibernate.desktop

A do tohoto souboru přidejte následující:

[Desktop Entry]
Type=Application
Name=Hibernate desktop
GenericName=Hibernate desktop
Comment=Enter hibernation
NoDisplay=false
Icon=drive-multidisk
Exec=systemctl hibernate
Terminal=true
Categories=System;Utility;Settings;

Nyní můžete přejít do nabídky aplikace na ploše a kliknout na Hibernate Ikona pro uspání systému. Aby to fungovalo, musíte podle volitelného kroku 9 výše přejít do režimu spánku bez zadání hesla.

Měl bych také objasnit, co se týká možnosti Hybrid Sleep . Kromě režimů Spánek / Suspend (Suspend to RAM) a Hibernate (Suspend to Disk) existuje také možnost Hybrid Sleep (také nazývaná Hybrid Suspend), která přepne váš počítač do hibernace a po určité době přejde do hibernace. . Dobu hybridního spánku mezi režimem Suspend a Hibernace (spolu s dalšími možnostmi) můžete nastavit pomocí /etc/systemd/sleep.conf Soubor a poté restartujte systém. Více o tom můžete najít na Arch Wiki.

Mohlo by se vám líbit toto:Jak povolit hardwarově akcelerované dekódování videa v prohlížečích Google Chrome, Brave, Vivaldi a Opera v systémech Debian, Ubuntu nebo Linux Mint


Debian
  1. Jak přidat odkládací soubor na Ubuntu

  2. Jak nainstalovat g ++ na Ubuntu

  3. Jak zkopíruji soubor přes FTP pomocí Ubuntu Linux?

  1. Ubuntu 20.04 – Jak povolit Hwe?

  2. Jak zvýšit velikost swapu na Ubuntu Linux

  3. Jak povolit protokolování error-log.txt pomocí souboru .htaccess?

  1. Jak povolit SSH na Ubuntu 18.04

  2. Jak přidat odkládací prostor na Ubuntu 18.04

  3. Jak přidat odkládací prostor na Ubuntu 20.04