Wróciłem opcję hibernacji, ale nie można wznowić od hibernacji

10

W moim Ubuntu 12.04 opcja hibernacji działała dobrze i dobrze. Jednak ostatnio zainstalowałem Debiana na innej partycji i kiedy ponownie spróbowałem uruchomić się na Ubuntu, na ekranie powitalnym rozruchu pojawił się komunikat:

Napęd dyskowy dla / nie jest jeszcze gotowy lub nie jest obecny. Nadal czekaj; lub naciśnij s, aby pominąć montaż lub M w celu ręcznego przywrócenia.

Po zalogowaniu się do Ubuntu okazuje się, że moja opcja hibernacji zaginęła.

Czy istnieje możliwość odzyskania opcji hibernacji?

EDYCJA: Rozwiązałem problem z dyskiem i wróciłem opcję hibernacji. Kiedy zrobiłem „sudo pm-hibernacja”, mój system przeszedł w stan hibernacji. Jednak po ponownym włączeniu uruchomił się normalnie, a zatem nie wystąpił efekt hibernacji.

Jak można to naprawić?

EDIT1: System - Lenovo ideapad s10-2.

wprowadź opis zdjęcia tutaj

EDYCJA 2: / etc / fstab

wprowadź opis zdjęcia tutaj

EDIT3: Zrzut ekranu mojego dysku twardego.

wprowadź opis zdjęcia tutaj

harisibrahimkv
źródło

Odpowiedzi:

12

Zakładam, że zainstalowałeś Debiana w sposób, który wykorzystuje własną oddzielną partycję wymiany. Jeśli nie, radzę to zrobić (utwórz kolejną partycję wymiany i odpowiednio zmień /etc/fstabpliki), ponieważ zbyt różne systemy operacyjne zapisujące na tej samej partycji wymiany mogą odrzucić dane hibernacji przechowywane na partycji przez inny system operacyjny.

Następnie musisz upewnić się, że system operacyjny, na którym chcesz używać hibernacji (zwykle oba), zapisuje na właściwej partycji. Jest to skonfigurowane w /etc/initramfs-tools/conf.d/resumepliku. Musisz tam umieścić UUID właściwej partycji wymiany (użyj, sudo blkid /dev/$device_nameaby uzyskać UUID). Na koniec musisz zaktualizować początkowy ramdysk:

sudo update-initramfs -u -k all

To powinno to naprawić.

LiveWireBT
źródło
1
To działało idealnie dobrze. Dziękuję, odzyskałem hibernację. :)
harisibrahimkv
1
Ja również miałem problemy ze wznowieniem hibernacji. Po zmianie UUID mojej partycji wymiany, mój system nie wznowi się bez względu na to, co wydaje się robić. Naprawienie mojego /etc/initramfs-tools/conf.d/resume , przez skopiowanie i wklejenie UUID z sudo blkidwydaje się rozwiązać problem.
TSJNachos117
2

Niestety hibernacja nie działa w wielu przypadkach, co może spowodować utratę danych, jeśli spodziewasz się, że dokumenty i aplikacje otworzą się ponownie po ponownym włączeniu komputera. Dlatego hibernacja jest domyślnie wyłączona.

Sprawdź, czy hibernacja działa

Uwaga : Zawsze zapisuj swoją pracę przed hibernacją
Powinieneś zapisać całą swoją pracę przed hibernacją komputera, na wypadek, gdyby coś poszło nie tak i nie można odzyskać otwartych aplikacji i dokumentów po ponownym włączeniu komputera.

Za pomocą wiersza polecenia można sprawdzić, czy hibernacja działa na komputerze.

  1. Otwórz terminal, naciskając Ctrl+ Alt+ Tlub wyszukując terminal w Dash.

  2. Wpisz sudo pm-hibernatew terminal i naciśnij Enter.
    Po wyświetleniu monitu wprowadź hasło.

  3. Po wyłączeniu komputera włącz go ponownie. Czy otwarte aplikacje ponownie się otworzyły?

Jeśli hibernacja nie działa, sprawdź, czy partycja wymiany jest co najmniej tak duża, jak dostępna pamięć RAM.

Włącz hibernację

Jeśli test hibernacji działa, możesz nadal używać sudo pm-hibernatepolecenia, gdy chcesz hibernować.

Możesz także włączyć opcję hibernacji w menu. Aby to zrobić, użyj swojego ulubionego edytora tekstu do utworzenia /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla. Dodaj następujące elementy do pliku i zapisz:

[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

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).

Źródło : Ubuntu Docs - Power Hibernate

Źródło : Ubuntu Wiki - Debugowanie jądra Hibernacja

Fergus Incoronato
źródło
0

Spróbuj dodać nobootwaitopcję do /etc/fstabczegoś takiego:

/dev/sda1 / ext4 rw,nobootwait 0 1

Frantique
źródło
Czy możesz to wyjaśnić? Mój / etc / fstab ma następujący wpis dla mojej partycji wymiany: # zamiana była włączona / dev / sda8 podczas instalacji UUID = 08a07061-165b-4f0a-87c3-470a02d1ea4c none swap sw 0 0 Czy powinienem zmienić „sw” na „rw, nobootwait "?
harisibrahimkv
Musisz dodać go do głównego punktu montowania, a nie do wymiany. Opublikuj swój pełny plik fstab, a ja opublikuję zaktualizowaną wersję.
Frantique
Dodałem to do pytania.
harisibrahimkv
1
error = remount-ro, nobootwait
Frantique
0

Przechodząc w stan hibernacji, pełny obraz pamięci RAM jest kopiowany w celu zamiany. Dlatego przez większość czasu ludzie mają problemy z niedziałaniem hibernacji, ich zamiana jest zbyt mała.

Potrzebujesz co najmniej tyle swapów, ile masz pamięci RAM. Jeśli masz dużo pamięci RAM, ustaw swappiness = 0 . Więc jeśli masz 8 GB pamięci RAM, użyj 8,5 lub 9 GB wymiany. Jeśli masz 4 GB pamięci RAM, 6 GB wymiany to dobra liczba.

Mniess
źródło
Mam 1 GB pamięci RAM i mam 1,95 GB przestrzeni wymiany. Zaktualizowano pytanie o zrzut ekranu mojego dysku twardego.
harisibrahimkv
0

O ile wiem Linux wraz z Ubuntu powinien mieć zainstalowane miejsce wymiany 2x pamięci RAM.

Niektóre, jak moja niestandardowa konfiguracja komputera kompilacji nie jest w stanie użyć hibernacji, ponieważ mam więcej niż wystarczającą przestrzeń wymiany. wizerunek

Jeśli uważasz, że zamiana Cię spowalnia, możesz użyć tego skryptu, który znalazłem w Internecie. Czyści swap.

#!/bin/bash

free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    swapoff -a
    swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi
nkvnkv
źródło
Mam 2x dostępną przestrzeń wymiany. Dziękuję za sugestię.
harisibrahimkv,