Właściwie moje pytanie może wydawać się identyczne z tym na tym forum (a także tym gdzie indziej ); faktycznie pytanie jest takie samo, ale i tak je zadaję, ponieważ mogę podać więcej informacji i ponieważ wypróbowałem jakieś rozwiązanie znalezione w sieci (możliwe, że pogorszyło się).
Kiedyś hibernowałem Ubuntu 15.10 (zamykając wieko). Teraz, kiedy zaktualizowałem go do 16.04 (myślałem, że to dobrze, ponieważ ta wersja to LTS, w przeciwieństwie do 15.10), nie mogę już używać hibernacji (ani zawieszenia!): Jeśli spróbuję go użyć, Ubuntu nie będzie t Wyłącz, tylko ekran staje się czarny, dioda zasilania jest włączona, i nie mogę zrobić nic poza wyłączeniem go ręcznie (długie naciśnięcie przycisku zasilania). Po ponownym włączeniu widzę następujące wiersze
następnie Ubuntu uruchamia się.
Od tutaj Próbowałem z
sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state
i
sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state
Tylko pierwszy częściowo zadziałał i tylko raz: częściowo mam na myśli, że po brutalnym zamknięciu sesja została odzyskana.
Potem spróbowałem zastosować się do tej sugestii . Nie rozumiałem komentarzy napisanych po poleceniach, więc dosłownie wprowadzałem polecenia takimi, jakie są (myśląc, że wystąpiłby błąd taki jak „to polecenie / folder nie istnieje”, gdyby w poleceniach było coś do zastąpienia ):
EDYTOWAĆ
cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon
mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u
Może to był okropny pomysł, ponieważ teraz to rozumiem.
W końcu znalazłem powyższe pytanie i poszedłem tutaj , ale nie wiem, co robić.
EDYCJA 2 W tej chwili, jeśli wejdę
...$ sudo swapon -s
Nie otrzymuję absolutnie nic
...$
/etc/initramfs-tools/conf.d/resume
i dwie dodane sekcje wznowienia zetc/default/grub
, uruchom dwie ostatnie linie, aby zaktualizować grub i initrd. Usuń / zamień plik. Uruchomsudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
. Wypróbuj dowolny z tych celówsudo systemctl suspend
. Co się dzieje?Odpowiedzi:
Wymuszanie hibernacji w celu wyłączenia maszyny:
Po długim zastanawianiu się nad odpowiedzią na to pytanie (niezwiązaną z tą kwestią), znalazłem tutaj wskazówkę dotyczącą wykonania pracy:
Utwórz plik w
pm
katalogu config:który ustawia zmienną
HIBERNATE_MODE
tak:Po wykonaniu tej czynności hibernacja wyłączyła maszynę po zakończeniu zgodnie z oczekiwaniami. Wyjaśnienie tego, co
HIBERNATE_MODE
robi ustawienie , znajduje się w podręczniku dla pm-hibernacji :Moje domyślne ustawienie w tym pliku to
platform
. Ustawienie powyższej zmiennej w celushutdown
zastąpienia tego i uzyskanie tego, co chcemy zrobić.Powiązane informacje i porady dotyczące poprawnego działania hibernacji:
Jeśli chodzi o te „powiązane problemy”, wydaje się, że każdy ma hibernację i porady dotyczące szybkiego debugowania:
Sprawdź, czy polecenie
sudo pm-hibernate
faktycznie coś robi. Jeśli nie, żadna z tych innych wskazówek nie będzie miała znaczenia. Jeśli to nie działa, upewnij się, że 1) rozmiar partycji wymiany jest większy niż rozmiar pamięci RAM i 2) bezpieczny rozruch jest wyłączony w systemie BIOS.Tylko wtedy, gdy to polecenie zadziała, spójrz na integrację hibernacji z systemem, jak chcesz. Kilka typowych:
Dodaj hibernację do menu Ubuntu: To wydaje mi się najlepszą odpowiedzią. Oficjalna dokumentacja ma również nieco inną wersję.
Uwaga: po dodaniu hibernacji do menu Ubuntu może być konieczne naprawienie alternatywnego połączenia z
sudo systemctl hibernate
. Najwyraźniej (przynajmniej dla Ubuntu 16.04) opcja menu Ubuntu wywołujesudo systemctl hibernate
zamiastsudo pm-hibernate
.systemctl hibernate
został dla mnie naprawiony poprzez dodanie następującej treści do pliku/etc/systemd/sleep.conf
:Jeśli plik jeszcze nie istnieje, możesz go utworzyć. Więcej informacji tutaj .
Zmień sposób działania przycisku zasilania (domyślnie wyświetla się w interaktywnym menu): Aby zmienić go na hibernację bezpośrednio lub zamknąć, musisz zmodyfikować powiązany wpis ustawień gsettings . Wiele innych odpowiedzi przechodzi przez GUI, jeśli to pływa łodzią. Aby zobaczyć dostępne opcje użyj
gsettings range org.gnome.settings-daemon.plugins.power button-power
źródło
Widząc twój ostatni obraz i EDIT 2 , rozumiem, że Ubuntu nie może znaleźć partycji wymiany w twoim systemie. Sugeruję więc, aby utworzyć partycję wymiany równą lub większą niż rozmiar pamięci RAM i spróbować ponownie, uruchamiając
Możesz utworzyć partycję wymiany za pomocą GParted, uruchom ją, aby ją zainstalować
źródło
Miałem ten sam problem po aktualizacji z 15.10 do 16.04:
Rozwiązałem te problemy przez
HandleLidSwitchDocked=suspend
do /etc/systemd/logind.conf (dzięki czemu przełącznik pokrywy znów działa).Myślę, że oba problemy to błędy, które powinny zostać naprawione ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120 ).
źródło
Hibernacja została domyślnie wyłączona.
Spróbuj tego
Przeczytaj więcej o Hibernacji 16.04 z tego linku
Wyłączyć
Zrestartować
źródło