Nie można wznowić po hibernacji

9

Używam hibernacji z Ubuntu 16.04 bez problemu, ale nagle przestał działać poprawnie. Niezależnie od tego, czy hibernuję z menu zasilania, czy korzystam sudo pm-hibernate, wyłącza komputer, ale kiedy ponownie go włączę i wybieram Ubuntu z menu grub, wyświetla tylko czarny ekran. Wypróbowałem niektóre rozwiązania (wymienione poniżej), ale żadne nie działało.

Jestem naprawdę rozczarowany, że z każdą wersją Ubuntu, z której korzystam, zwykle mam podobne problemy z hibernacją (z różnymi laptopami).

PS: Mam podwójny rozruch z Windows 10, ale hibernacja działała z nim doskonale przez długi czas.

Nie działał:

Karim Sonbol
źródło
Mam ten sam problem z moim laptopem - kiedy wracam ze stanu hibernacji - czarny ekran. Dla mnie to nigdy nie działało. „Obejściem” mojego laptopa jest naciśnięcie klawiszy ALT + CTRL + F1, a następnie poczekanie kilku sekund, a następnie naciśnięcie ALT + CTRL + F7. To przywraca go do życia (na moim laptopie).
Vanessa Deagan
Dzięki za sugestię, jednak nie działało dla mnie.
Karim Sonbol
A może po prostu zamknąć pokrywkę i otworzyć ją ponownie? (warto spróbować!)
Vanessa Deagan
Jeszcze raz dziękuję @VanessaDeagan, ale nadal nic się nie stało.
Karim Sonbol
1
Jeśli jeszcze go nie widziałeś: bugs.launchpad.net/bugs/1743094
Steve

Odpowiedzi:

9

Miałem te same problemy. W najnowszym jądrze 16.04 występuje błąd. Oto wyraźne kroki, które zrobiłem. Zrób pierwszy, a jeśli to rozwiąże problem, zatrzymaj się. Jeśli nie, kontynuuj.

1. Ustaw komputer do uruchamiania z poprzednim jądrem

Zacząć od:

uname -r

Mój mówi 4.13 ... Następnie wykonaj:

grep -i "menuentry" "/boot/grub/grub.cfg

Zobaczysz różne pozycje menu w grub. W moim przypadku, wraz z „Ubuntu, z Linux 4.13 ...” była opcja menu do uruchomienia z poprzednim jądrem. Mówi Ubuntu, z Linuksem 4.10.0-28-generic . W tym samym wierszu masz coś w stylu „gnulinux-4.10.0-28-generic-advanced ... (kilka znaków tutaj)” Skopiuj ten tekst, a następnie musimy domyślnie powiedzieć Grub2, aby uruchomił się z tym jądrem:

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

Następnie wstawiłem ten wiersz:

GRUB_DEFAULT = "gnulinux-advanced-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-generic-advanced-4a50e1e8-56d9-413e-9954-55648888a31d”

Nie kopiuj tego wiersza dosłownie, ale użyj danych wyjściowych poprzedniego polecenia grep, jak powiedziano. Następnie zapisz i

sudo update-grub

Następnie uruchom ponownie i sprawdź, czy wyjściem „uname -r” jest starsze jądro (4.10 ... w moim przypadku). Możesz być w stanie hibernacji teraz, czy nie. Jeśli nie, przejdź do następnego kroku.

2. Zainstaluj hibernację w inny sposób niż domyślny:

W moim przypadku przy użyciu starszego jądra pozbyłem się czarnego ekranu śmierci i pozwoliłem mu wznowić po hibernacji, ale zawartość obrazu dysku została wymazana, tzn. Była identyczna z restartem, a nie hibernacją. Więc zainstalowałem trochę gówna, które hibernuje inaczej:

sudo apt-get install uswsusp

Następnie zamknij terminal, otwórz go ponownie i wpisz:

sudo s2disk

Ma to na celu hibernację komputera. Jeśli po wznowieniu wszystko jest tak, jak zostało, to problem został rozwiązany. Ale nadal musisz przejść do kroku 4, aby poinformować Ubuntu, że chcesz domyślnie używać nowych rzeczy, a także, że chcesz mieć opcje hibernacji w aplikacjach.

3. Powiedz grub 2, gdzie jest partycja wymiany:

Nadal nie działało to dla mnie, więc musiałem powiedzieć Grubowi, gdzie jest partycja wymiany:

cat / etc / fstab

Mogłem przeczytać tam „# swap był włączony / dev / sda2 podczas instalacji”, więc ponownie edytowałem grub:

sudo gedit / etc / default / grub

I dodał:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = wyłącz wznawianie = / dev / sda2"

Ważną częścią jest „resume = / dev / sda2”, ale poprzednia rzecz (intel blablabla) istnieje z innych powodów. Kolejnym krokiem jest:

sudo update-grub

Uruchom ponownie i spróbuj ponownie hibernować, gdy trwają pewne rzeczy (np. Otwórz film za pomocą VLC) za pomocą:

sudo s2disk

Jeśli po wznowieniu zawartość nadal tam jest, problem został rozwiązany.

4. Powiedzenie Ubuntu, aby użył nowej rzeczy hibernacji, którą zainstalowałeś zamiast domyślnej:

Musisz teraz powiedzieć Ubuntu, aby używał s2disk do hibernacji zamiast domyślnie:

sudo gedit /etc/pm/config.d/00sleep_module

I wstaw tam:

SLEEP_MODULE = "uswsusp"

Zapisz i zamknij plik. Następnie:

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

I wstaw tam:

[Ponownie włącz hibernację domyślnie w górę]

Tożsamość = użytkownik unix: *

Action = org.freedesktop.upower.hibernate

ResultActive = tak

[Ponownie włącz hibernację domyślnie w logind]

Tożsamość = użytkownik unix: *

Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; org.freedesktop.login1; org.freedesktop.login1.hibernate-multiple-session; org.freedesktop.login1.hibernate-ignore- hamować

ResultActive = tak

Uruchom ponownie i spróbuj ponownie.

5. Jeśli po uruchomieniu kroku 4 nie można użyć hibernacji, sudo systemctl hibernatewykonaj następujące czynności

Krok 4 nie wystarczy, aby przejść na uswsusp w Ubuntu 18.10.

Edytuj usługę hibernacji

sudo systemctl edit systemd-hibernate.service

I dodaj następujące

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Zaktualizuj systemd

sudo systemctl daemon-reload

Przetestuj konfigurację, wykonując następujące czynności

sudo systemctl hibernacja

Mefisto
źródło
Dzięki, wybrałem stare jądro z menu startowego i hibernacja z nim współpracuje. Później sprawdzę inne kroki gruba aktualizacji, ale mam nadzieję, że wkrótce naprawią bieżące jądro.
Karim Sonbol
Właściwie wybrałem stare jądro raz z menu grub, a następnie hibernowałem. Kiedy ponownie go otwieram i wybieram normalną opcję „Ubuntu” bez zaawansowanych opcji, to w pewien sposób zapamiętuje mój wybór i używa starego jądra, i na szczęście wszystkie moje otwarte aplikacje są na swoim miejscu.
Karim Sonbol
czy jest jakiś szczególny powód, aby po prostu nie odinstalowywać nowego jądra i trzymać się starego?
lrkwz
3

@karim Miałem ten sam problem tutaj, jak to naprawić:

Użyj UUID partycji wymiany zamiast jego punktu montowania w parametrze RESUME resume=UUID=#zarówno w, jak /etc/default/grubi/etc/initramfs-tools/conf.d/resume

Utwórz wpis dla partycji wymiany /etc/fstab bez punktu montowania coś takiego

# Entry for Swap : 
UUID=# none  swap    sw              0       0

W /etc/default/grubUżyłem osobnego wpisu do wznowienia hibernacji

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Utwórz pakiet zasad we władzach lokalnych (pkla) zgodnie z wyjaśnieniem @Mephisto

Zaktualizuj initramfs i GRUB

sudo update-initramfs -u -k all
sudo update-grub

Uruchom ponownie, otwórz niektóre aplikacje i użyj systemctl hibernate(bez sudo), aby sprawdzić, czy to działa

Roey
źródło
Miałem wszystko skonfigurowane, z wyjątkiem „sudo update-initramfs -u -k all” wydawało się naprawić mój problem. Dziękuję Ci.
Zamicol,
2

Dziękuję wszystkim za odpowiedzi. Problem został rozwiązany w jądrze 4.15. Właśnie tego spróbowałem i działa. Najwyraźniej jądro HWE to naprawiło ( linux-generic-hwe-16.04 package).

Jeśli używasz Ubuntu 16.04, wystarczy zainstalować najnowsze aktualizacje, aby zaktualizować jądro. Możesz przeczytać więcej informacji na ten temat tutaj .

Moja obecna wersja jądra to 4.15.0-33-ogólna.

Karim Sonbol
źródło
2

Miałem też ten problem, który mnie dręczył ... a poprawką po wielu próbach była ponowna instalacja Ubuntu 18.04, a teraz działa idealnie. Używam również „przetestowanego” sterownika Nvidii, ponieważ Nvidia była wcześniej sprawcą.

Być może to właśnie sudo add-apt-repository ppa:graphics-driversppa zainstalowało „Extra” Stuff i / lub sterownik 396, co popsuło hibernację mojego laptopa. Tak czy inaczej, działa bezbłędnie w tym momencie pisania przy użyciu przetestowanego sterownika NVidia 390. Przed przejściem do Nouveau działał sterownik.

markackerman8-gmail.com
źródło