Finalmente!

*GUIDA*: Attivare l’ibernazione su Ubuntu e derivate!

Tempo fa vi pubblicai una piccola guida su come riattivare l’ibernazione su Ubuntu e derivate. Ai tempi, la guida (per quella specifica situazione), bastava. Ma oggi, con la mia Ubuntu MATE 18.04, le cose si sono fatte molto complicate. Sarà perché ho una situazione particolare con le partizioni, sarà che Ubuntu ha deciso sempre di più di abbandonare l’idea dell’ibernazione a causa di hardware poco compatibile, ma sarà che io senza ibernazione non ci posso stare. C’ho sbattuto la testa 2 giorni (1 e mezzo, ok), ma mettendo insieme roba da vari forum ed un pizzico di cervello, sono arrivato alla soluzione. Vi condivido i dettagli. Nel frattempo vi lascio questa guida (che se avete una vecchia versione di Ubuntu e derivate, dovrebbe ancora andare bene):

Come attivare l’ibernazione su Ubuntu e derivate!

NOTA: Nella guida utilizzerò più volte il comando sudoedit. Questo comando aprirà l’editor di testo di nome nano. Per quanto ottimo, questo editor è noioso da utilizzare, in quanto si salva con CTRL+O, poi si da Enter per scegliere il nome del file e poi si chiude con CTRL+X (che non è una cosa così immediata da capire per un novizio). Di conseguenza, potete tranquillamente sostituire sudoedit con sudo pluma, sudo gedit o l’editor di testo che preferite, l’importante è che abbia pieno accesso al ROOT con sudo.

La mia situazione: partizioni, Hard Disk, ecc.

Ogni computer con Linux che non ha disponibile l’ibernazione (o la ha ma non funziona) è un caso a sé, nel senso che ovviamente le cause possono essere multiple. Cercherò di chiarirvi le idee il più possibile ma, prima di farlo, devo ovviamente spiegarvi com’è combinata la mia di situazione, che partizioni ho, quante ne ho e via dicendo. Il mio PC ha:

  • Dal BIOS, Secure Boot disattivato (fondamentale per attivare l’ibernazione);
  • Linux con due partizioni, su EXT4 (80-90GB) Ubuntu MATE 18.04 LTS, SWAP (20GB)(ai tempi avevo letto che doveva essere almeno uguale alla quantità di RAM che si ha, così ho abbondato. Balle. Fatela da 5-10 e state apposto, tranne se fate editing video e CAD a palla ed ibernate, lì la situazione cambia). Ora, EXT4 è su un SSD (sdb5) e la SWAP su un Hard Disk Meccanico (sda2). Mi serviva spazio su SSD quindi ho creato la swap sull’HDD interno.
  • Kernel Linux 4.20 aggiornato tramite questo tool (anche sullo “stock” l’ibernazione non andava);
  • nessuna particolare modifica software relativa a dischi ecc.
  • nessun hardware particolarmente introvabile/speciale, anzi.

Cosa ho provato

E’ importante capire anche quali passaggi/prove ho eseguito prima di testare il tutto per tutto, evitandovi magari di seguire una lunga guida senza necessità.

Tra i primi risultati online trovate il classico “prova con il comando…” e “prova con questo comando”. Si. Ho provato sia sudo hibernate, sia sudo systemctl hibernate, sia sudo pm-hibernate (che ormai è stato deprecato da anni). Nulla, schermata nera, il PC si spegneva, all’avvio partiva…un avvio normale, senza salvare nulla ed avvisandomi con “Si è verificato un problema, vuoi segnalare questo assoreta?”.

Poi ho provato comandi misti, aggiunte varie, le classiche modifiche al file /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla che non hanno cambiato una mazza (così da sole com’erano). Ho spulciato infiniti forum, fino a mettere insieme tante piccole parti che…hanno risolto il problema. Almeno, nel mio caso. Per logica, potrete semplicemente seguire la mia guida andando ad esclusione, fino a far funzionare l’ibernazione anche a voi.

Cos’ha funzionato

Alla fine, per attivare l’ibernazione su Ubuntu, ho seguito questi passaggi (NOTA: Non sono perfettamente sicuro che ogni singolo passaggio sia obbligatorio, tuttavia non vi consiglierò comandi che so che vi incasinerebbero il PC):

  • Aprite un terminale e date sudo install hibernate;
  • Identificate il nome (sdax, sdbx e via dicendo) della partizione su cui avete sia Ubuntu che la SWAP. Nel mio caso, ripeto, erano rispettivamente sdb5 ed sda2. Per saperlo, avete vari metodi, o date sudo fdisk -l e vi cercate la stringa corrispondente, o aprite il Monitor di sistema e sulla scheda File-System dovreste avere le stringe ben visibili, o date grep swap /etc/fstab che dovrebbe intanto dirvi la posizione della SWAP.
  • una volta trovato, date il comando sudo blkid -c /dev/null che vi mostrerà una cosa simile:
La mia UUID della partizione SWAP.
  • è fondamentale a questo punto trovare la UUID (un altro metodo, molto più specifico, di chiamare un disco)(acronimo di identificativo univoco universale) della SWAP. Quindi, cercate la partizione corrispondente alla vostra SWAP (sda2 nel mio caso) e segnatevi la UUID (copiatevi proprio tutta la stringa segnata in rosso dopo sda2, senza virgolette, vi servirà dopo);
  • ora che avete la UUID della SWAP, dovete andare a modificare due file. Questi due file devono avere le UUID identiche e corrispondenti. Date quindi il comando sudoedit /etc/fstab (potete usare anche l’editor di testo, io preferisco usare Pluma o Gedit (sudo pluma /etc/fstab o sudo gedit ecc), molto più comodi di nano che vi si aprirà con sudoedit) e avrete una situazione simile:
fastab.
  • nella parte che ho evidenziato in rosso, dovreste avere (invece dell’UUID), sdx o sdbx o comunque qualcos’altro che non è la UUID. Bene, eliminatela ed incollateci la vostra UUID, così come vedete nell’immagine. Salvate e chiudete. Ora date il comando sudoedit /etc/default/grub (al solito, utilizzate un editor di testo, è meglio). Si aprirà la seguente:
Il file di configurazione del grub.
  • nel vostro caso, la parte in rosso sarà GRUB_CMDLINE_LINUX=”” (quindi vuoto). Così come ho fatto io, all’interno delle virgolette metteteci resume=UUID=il vostro UUID della swap. Salvate e chiudete;
  • date il comando sudoedit /etc/initramfs-tools/conf.d/resume ed incollateci dentro resume=UUID=il vostro UUID della swap. Salvate e chiudete;
  • date ora il comando sudoedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla (in questo caso siete obbligati ad usare sudoedit) ed incollateci dentro tutto il seguente contenuto (il file dovrebbe essere vuoto):
[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$
ResultActive=yes

[Enable hibernate to be run via cron] Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multip$
ResultAny=yes

e salvate con CTRL+O, poi date Enter, e per finire CTRL+X per chiudere il file;

  • ora date il comando sudo update-initramfs -c -k all. Una volta finito, date il comando sudo update-grub.

Fatto! A questo punto, riavviate e, ad avvio terminato, dovreste avere la voce Iberna nel menù in alto a destra. Se non l’avete, create un lanciatore con il comando dell’ibernazione. Potete dare direttamente sudo systemctl hibernate per vedere se funziona. Dovrebbe andare 😀

Riguardo a: Salvo Cirmi (Tux1)

Un pinguino intraprendente che dopo diversi anni di "servizio" online (e soprattutto delle guide) ha acquisito conoscenze non di poco conto sui settori Android, Linux e Windows. Le mie specialità sono il modding e le review. Nel tempo libero (che è raro trovare) suono il piano, mi diverto effettuando modding e provando distribuzioni Linux, BSD ed altre.

Guarda anche..

*GUIDA*: POCO M3 Pro (Camellia), SBLOCCO BOOTLOADER E RECOVERY TWRP!

Oggi vi presenteremo una guida leggermente diversa per sbloccare il bootloader e installare una recovery …

3 commenti

  1. ciao, innanzi tutto grazie per la guida!

    fatto tutto passo passo, e questo dimostra quanto le indicazioni siano puntuali.
    risultato pero’ nessuno, nessun tasto iberna sul menu’ di arresto e se faccio “sudo systemctl hibernate” il pc si spegne ma si riavvia immediatamente sulla sessione aperta.
    Sto usando Ubuntu 19.04 su ssd esterno con un Thinkpad X1 Carbon.
    Che dire, non credo ci sia da stupirsi se in 30 anni, lato client, Linux sia rimasto inchiodato a si e no un 7% di share mondiale!
    Risolvero’ riavviando invece di arrestare, facendo ripartire windows 10 e li, senza neppure loggarmi, chiudero’ il monitor, attivando in automatico l’ibernazione… almeno li funziona sempre e bene!!!! senza fare nessuna di queste beghe.
    Un saluto e grazie ancora.

  2. Ciao x1carbon, mi fa piacere tu abbia trovato piacevole la guida. Si, Linux ha sempre litigato con la funzione ibernazione (purtroppo).
    Alla prossima 😛

  3. l’ibernazione funziona su jellyfish , ma senza alcuna voce “iberna” nel menù citato, semplicemente dando il comando da terminale.
    Ciao e grazie tante veramente.

Lascia un commento