Jak włączyć hibernację?

424

W Ubuntu 12.04 i nowszych hibernacja jest domyślnie wyłączona w policykit . Jak mogę to włączyć?

Dima
źródło
11
Dlaczego przede wszystkim to wyłączyli? Czy ma to coś wspólnego z utratą dźwięku?
Ali,
2
13.10 patrz askubuntu.com/questions/361734/…
rogerdpack
4
Aby odpowiedzieć na pytanie Ali, zostało wyłączone, ponieważ wiele osób miało problemy z hibernacją z powodu problemów z partycjami wymiany. Jednak w Ubuntu 14.10 Utopic Unicorn istnieją plany, aby hibernacja działała na dobre, z przyciskiem i wszystkim.
John Scott
1
Do 15.04 możesz potrzebować tego pytania askubuntu.com/q/614662/178596
Wilf
Hibernacja może nie działać, gdy btrfsużywana jest partycja. Zobacz tutaj askubuntu.com/questions/768136/…
Anwar,

Odpowiedzi:

334

Jeśli ta odpowiedź nie działa w systemie Ubuntu 13.10, zobacz tutaj alternatywną odpowiedź


Możesz śledzić oficjalną dokumentację tutaj . Hibernacja została wyłączona 12.04 dla komputerów, które nie posiadają certyfikatu Ubuntu.

Aby włączyć hibernację, musisz sprawdzić, czy działa poprawnie, uruchamiając ją sudo pm-hibernatew terminalu. System spróbuje hibernować. Jeśli możesz ponownie uruchomić system, możesz mniej lub bardziej bezpiecznie dodać nadpisanie.

Aby to zrobić, rozpocznij edycję:

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

Wypełnij to:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Lub w 14.04 i później:

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate
  ResultActive=yes

[Re-enable hibernate for multiple users by default in logind]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

Zapisz, naciskając Ctrl- Onastępnie, entera następnie wyjdź z nano, naciskając Ctrl- X.

Uruchom ponownie i hibernacja powraca!

Lub uruchom, killall unity-panel-serviceaby po prostu zresetować menu.

Niektórzy użytkownicy będą musieli uruchomić, sudo update-grubaby opcja hibernacji była dostępna w menu zasilania. Niektórzy użytkownicy mogą również wymagać wylogowania, a następnie zalogowania, aby pojawił się w menu zasilania (w prawym górnym rogu).

Dima
źródło
1
To rozwiązanie działa również w powłoce GNOME 3.4 z rozszerzeniem „Alternative Status Menu”.
Robert Wohlfarth,
1
@ cuda.geek tak, nie będę się już przejmować całą rzeczą z GUI, wpisywanie tego małego polecenia jest szybsze (nawet szybciej z aliasem ...) :)
Aditya MP
15
Naprawdę? Czy to bardziej przyjazna dla użytkownika wersja zmiany tak prostego ustawienia? Z każdym dniem robi się coraz gorzej ...
Esteban
1
Świetny samouczek! Przerzuciłem się z Windows na Ubuntu i uwielbiam to! wy ludzie jesteście niesamowici :)
gfivehost
8
Nie sądzę, żeby o to chodziło Estebanowi. Włączenie hibernacji nie powinno wymagać tajemnej magii. Pomyśl o czymś w katalogu / etc / default, w którym zmieniasz jedną linię z enable_hibernate = "false" na enable_hibernate = "true". Pomyśl o posiadaniu okna dialogowego Ustawienia systemowe>, które pozwala tylko włączyć go z ostrzeżeniem „to może nie działać, urządzenie może nie obudzić się poprawnie”.
Scott Marlowe
47

Najpierw musisz sprawdzić, czy urządzenie obsługuje hibernację. Przetestuj za pomocą polecenia:

 sudo pm-hibernate
 # or for newer Ubuntus like 17.04
 sudo systemctl hibernate

Ubuntu 16.04 i nowsze wersje

Aby włączyć w interfejsie, musisz uruchomić sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklai wypełnić:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

Ubuntu 14.04 i 15.04

Aby włączyć w interfejsie, musisz uruchomić system sudo nano /etc/polkit-1/localauthority.conf.d/52-enable-hibernation.confUbuntu 14.04 i 15.04 i wypełnić:

[Re-enable hibernate by default]
  Identity=unix-user:*
  Action=org.freedesktop.upower.hibernate
  ResultActive=yes

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

Ma kilka zwrotek, ponieważ możesz mieć wielu użytkowników (więc to nie zależy od wielu użytkowników lub osób pełniących funkcję menedżera zamiast loginu1)

ps: oficjalna najnowsza dokumentacja https://help.ubuntu.com/stable/ubuntu-help/power-hibernate.html

morhook
źródło
1
To działało dla mnie na Ubuntu 15.04 , podczas gdy oryginalna zaakceptowana odpowiedź nie.
Mike B.
@MikeB. Działa to, ponieważ od Ubuntu 15.04, podstawowy system Ubuntu zaczyna używać systemd - nowszego zamiennika starego upstartu. Ostatnia sekcja w powyższym kodzie zawierająca „logind” dotyczy systemów opartych na systemie. Mam nadzieję, że to rzuci nieco światła na twoją sytuację. : D
x__x
Pracował dla mnie na Ubuntu 16.04 . jedynym problemem był błąd odmowy uprawnień, który rozwiązałem za pomocą sudo.
Sandeep,
Pierwszy krok sudo pm-hibernateskutkuje command not found. Próbowałem również sudo apt install sudo pm-hibernate, co również nie jest dostępne. To jest wersja Ubuntu 16.04.
LD James
Twoja odpowiedź powinna pojawić się na górze listy, mimo że ma mniej głosów, jest bardziej znacząca dla użytkowników korzystających z dzisiejszego oprogramowania.
WinEunuuchs2Unix
32

Dodatkowo dla tych, którzy chcą wyłączyć przycisk zawieszenia (z różnych powodów), postępuj analogicznie ...

Wybierz dowolną nazwę pliku, ale jest to pełna / konwencja:

sudoedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla

Wypełnij to:

[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Ctrl+ O, Enter, Ctrl+X

Nie ma potrzeby restartowania, powinien zniknąć, gdy tylko przejdziesz do menu zamykania.

nacs
źródło
Masz na myśli:ResultActive=yes
1
Nie powinno tak być ResultActive=no. Odpowiedź określa, że ​​ma to na celu wyłączenie zawieszenia.
Michael Mior
14

Jeszcze jedna rzecz:

Jeśli chcesz dodać opcję hibernacji do panelu XFCE , musisz kliknąć prawym przyciskiem myszy swoje imię (prawy górny róg) i wybrać properties.

Następnie pojawia się ekran:

wprowadź opis zdjęcia tutaj

Upewnij się, że sprawdziłeś Hibernację tak jak ja.

mreq
źródło
14

Po pierwsze, polecam przetestowanie, czy Twój laptop obsługuje hibernację, ponieważ powodem, dla którego hibernacja jest domyślnie wyłączona, jest to, że czasami ma fatalne wyniki na niektórych komputerach. Przetestuj swój komputer przez

Ctrl+ Alt+ Ta następniesudo pm-hibernate

Twoja maszyna powinna hibernować. Obudź swoją maszynę po hibernacji i sprawdź, czy źle się zachowuje lub czy działa normalnie. Jeśli po hibernacji wystąpią jakiekolwiek nieprawidłowości, radzę nie kontynuować poniższej procedury. Jeśli jednak działa dobrze, kontynuuj aktywowanie hibernacji przez

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Edytuj otwarty plik i dodaj następujące linie:

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Następnie uruchom ponownie komputer, a po zalogowaniu powinieneś zobaczyć opcję hibernacji w prawym górnym rogu ustawień.

Kelvinelove
źródło
Dlaczego wycofanie?
to było błędne wycofanie
Kelvinelove
6

Jeśli odpowiedź z /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklanie działa jak w moim przypadku, nie zapomnij usunąć pliku przez:

sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

I spróbuj użyć TuxOnIce .


Najpierw upewnij się, że masz dość wymiany. Powinien być tego samego rozmiaru lub większy niż ilość pamięci RAM. Użyj polecenia

free

reguła Zamień> Pamięć Jeśli tak nie jest, powiększ swój rozmiar wymiany. Następnie zainstaluj TuxOnIce przez

sudo add-apt-repository ppa:tuxonice/ppa
sudo apt-get update
sudo apt-get install tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice

Następnie możesz spróbować przeprowadzić test hibernacji, uruchamiany przez:

sudo pm-hibernate

Nie zapomnij zapisać swojej pracy, zanim to zrobisz.

Jeśli wszystko pójdzie dobrze, komputer się wyłączy. Po włączeniu pulpitu uzyskasz stan, w którym pozostawiłeś go przed hibernacją.

Dee
źródło
tuxonice działa również dla mnie, podczas gdy natywna hibernacja Ubuntu 14.04 z jakiegoś powodu kończy się niepowodzeniem!
Leszek
5

Włączanie hibernacji za pomocą skryptu

Przetłumaczyłem powyższe odpowiedzi na bashskrypty. To sprawia, że ​​montaż na wielu maszynach jest mniej męczący.

Skrypt enable-hibernate:

#!/bin/bash
#http://askubuntu.com/a/94963/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
_EOF_
clear
echo
echo 'Hibernate enabled.'
echo

Skrypt disable-suspend:

#!/bin/bash
#http://askubuntu.com/a/154821/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla
[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
_EOF_
clear
echo
echo 'Suspend disabled.'
echo

Uwaga: Nie zapomnij chmod +xobu skryptów, aby były one wykonywalne.

Serge Stroobandt
źródło
4

Proste polecenie, które robi dokładnie to samo, co zaakceptowana odpowiedź, z wyjątkiem braku interakcji:

cat <<EOF | sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
EOF
kiri
źródło
2

W 12.04 z powodzeniem włączyłem opcję hibernacji w menu wskaźnika hibernacji. Ale nadal nie udało mi się wznowić od hibernacji. Wykonałem następujące kroki, aby rozwiązać ten problem:

Włącz hibernację w 12.04

Aby włączyć Hibernację, podążyłem za tą odpowiedzią od Dimy.

Po włączeniu hibernacji mogłem hibernować. Ale problem polega na tym, że nie mogę pomyślnie wznowić od hibernacji. Za każdym razem, gdy uruchamiam komputer ze stanu hibernacji, uruchamia się jak normalny rozruch. Musiałem więc zrobić te rzeczy, aby móc wznowić hibernację.

Poprawki pozwalające wznowić od hibernacji

Można to naprawić na dwa sposoby.

1. Edycja /etc/initramfs-tools/conf.d/resumepliku

  1. Najpierw pobierz UUID partycji wymiany.

     sudo blkid | grep swap
    

    Spowoduje to wyświetlenie wiersza podobnego do tego:

    /dev/sda12: UUID="a14f3380-810e-49a7-b42e-72169e66c432" TYPE="swap"
    

    Rzeczywista linia nie będzie z tym zgodna. Skopiuj wartość UUID pomiędzy "..."podwójnym cudzysłowem.

  2. Otwórz plik CV

    gksudo gedit /etc/initramfs-tools/conf.d/resume
    

    I w tym pliku dodaj taką linię

    RESUME=UUID=a14f3380-810e-49a7-b42e-72169e66c432
    

    Nie zapomnij zastąpić rzeczywistej wartości UUID uzyskanej w kroku 1. Zapisz plik i zamknij gedit

  3. Następnie w terminalu wykonaj to polecenie

    sudo update-initramfs -u
    

Możesz teraz wznowić od hibernacji

2. Edycja /etc/default/grubpliku.

  1. Otwórz terminal i wykonaj poniższe polecenie, aby go otworzyć

    gksudo gedit / etc / default / grub

  2. Będzie taka linia GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" . Edytuj wiersz, który chcesz wstawić RESUME=UUID=<your-uuid-value-here>po słowie splash.

    Na przykład w moim przypadku linia wygląda tak po edycji

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a14f3380-810e-49a7-b42e-72169e66c432" 
    

    Upewnij się, że użyłeś swojej wartości UUID uzyskanej z sudo blkid | grep swappolecenia.

  3. Następnie wykonaj to polecenie

     sudo update-grub
    

Umożliwia to także pomyślne wznowienie pracy po hibernacji.


Testowane na dwóch instalacjach Ubuntu, oba działały

Anwar
źródło
zgłoś to jako osobne pytanie i odpowiedź. Ponieważ ludzie mogą wyszukiwać słowa „nie można wznowić zawieszenia” i nie mogą znaleźć doskonałego opisu.
Dima
Po Twojej sugestii utworzyłem to pytanie, na które udzielono odpowiedzi na pytanie askubuntu.com/questions/196364/...
Anwar,
0

Mam na swoim komputerze Ubuntu Gnome 17.04 amd64. Wykonałem następujące czynności, aby włączyć hibernację:

$ sudo apt-get install hibernate( źródło )

To również zostało zainstalowane libx86-1uswsuspvbetool

Wtedy mogłem z powodzeniem hibernować sudo systemctl hibernate. Na pm-hibernatemojej ścieżce nie ma pliku wykonywalnego.

$ sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

Wstawiono: ( źródło )

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default 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

Zainstalowano https://extensions.gnome.org/extension/755/hibernate-status-button/

ominug
źródło