Konfiguracja hibernacji z plikiem swap na partycji systemowej

1. Sprawdź i przygotuj plik swap

Sprawdź, czy masz plik swap:

swapon --show

Jeśli nie masz, utwórz plik swap (X to rozmiar w GB, np. 16):

sudo swapoff -a
sudo fallocate -l XG /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Uwaga: Rozmiar pliku swap powinien być co najmniej równy ilości RAM, jeśli chcesz używać hibernacji.

Sprawdź, czy plik swap jest na tej samej partycji co system:

df -h /swapfile 

Powinien wskazywać na partycję systemową (np. /dev/sda2).

2. Znajdź UUID i offset pliku swap

UUID partycji systemowej:

sudo blkid | grep $(df -h /swapfile | awk 'NR==2 {print $1}')

Skopiuj wartość po UUID=.

Offset pliku swap:

sudo filefrag -v /swapfile | awk 'NR==4 {print $4}' 

Skopiuj wynik (liczba, np. 65536).

3. Skonfiguruj GRUB

Edytuj plik (najlepiej w nowej zakładce) /etc/default/grub:

sudo nano /etc/default/grub

Zmodyfikuj linię GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=TWÓJ_UUID resume_offset=TWÓJ_OFFSET"

TWÓJ_UUID – UUID partycji systemowej
TWÓJ_OFFSET – offset pliku swap

Zapisz i zamknij plik. Zaktualizuj GRUB:

sudo update-grub

4. Skonfiguruj initramfs

Utwórz plik /etc/initramfs-tools/conf.d/resume:

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

Wpisz:

RESUME=UUID=TWÓJ_UUID resume_offset=TWÓJ_OFFSET

Zapisz i zamknij plik.

Zaktualizuj initramfs:

Operacja trwa trochę czasu.

sudo update-initramfs -u

5. Dodaj regułę polkit

Utwórz plik (może być potrzebne utworzenie katalogu) /etc/polkit-1/rules.d/10-enable-hibernate.rules:

sudo mkdir rules.d
sudo nano /etc/polkit-1/rules.d/10-enable-hibernate.rules
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.login1.hibernate" ||
      action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
      action.id == "org.freedesktop.upower.hibernate" ||
      action.id == "org.freedesktop.login1.handle-hibernate-key" ||
      action.id == "org.freedesktop.login1.hibernate-ignore-inhibit") {
    return polkit.Result.YES;
  }
});

Zapisz i zamknij plik.

6. Przetestuj hibernację

sudo systemctl hibernate

Po wznowieniu sprawdź, czy sesja została przywrócona.

7. Skonfiguruj sprzętowy guzik

  1. Uruchom „Ustawienia / power”
  2. Power Button Behavior => Hibernate

8. Dodaj ikonę w menu

Zainstaluj

sudo apt install gnome-shell-extension-manager

Dodaj rozszerzenie

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

9. (Opcjonalnie) Ustaw hibernację po zamknięciu pokrywy

  1. Edytuj plik /etc/systemd/logind.conf:
  • bash
sudo nano /etc/systemd/logind.conf
  • Dodaj lub odkomentuj:
  • text
HandleLidSwitch=hibernate
  • Zrestartuj usługę:
  1. bash sudo systemctl restart systemd-logind

Podsumowanie

Wykonaj powyższe kroki, by poprawnie skonfigurować hibernację z plikiem swap na partycji systemowej.
Po restarcie opcja hibernacji powinna być dostępna w menu GNOME i działać poprawnie.

Kategorie: linux