GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ibernazione nel 18.04?

Questa domanda ha già risposte qui :Come eseguire il debug della sospensione?

(3 risposte)
Chiuso 2 anni fa.

Ibernazione sul mio Ubuntu 18.04 non ha funzionato immediatamente (intendo sudo systemctl hibernate ). Quindi ho fatto diversi tentativi per risolverlo qualche tempo fa e purtroppo non riesco a ricordare esattamente cosa ho fatto.

Ma ora:

sudo hibernate

iberna correttamente il sistema e al successivo avvio lo stato del sistema viene ripristinato correttamente, tranne per il fatto che la schermata di accesso non viene visualizzata, il che non va bene. E se ho molte applicazioni in esecuzione dopo un tale ripristino, il sistema potrebbe essere bloccato per un massimo di 20 minuti (vedo le finestre delle applicazioni, posso spostare il puntatore del mouse, ma il sistema non risponde ai clic), ma in seguito funziona normalmente.

sudo systemctl hibernate

fa qualcosa, spegne il sistema, ma al prossimo avvio vedo diversi messaggi elimina nodo orfano e infine avvio pulito, come se non ci fosse l'ibernazione.

Per favore aiutami a chiarire e abilitare l'ibernazione nell'interfaccia gui.

Allo stesso tempo, la sospensione in memoria e il ripristino dalla memoria funzionano senza problemi, compresa la schermata di accesso al ripristino .

La domanda principale che ho è:quale dei due meccanismi hibernate o systemctl hibernate dovrei usare con 18.04?

Dettagli

Il sistema ha una partizione di scambio

$ lsblk | grep SWAP
└─sda5   8:5    0  16,8G  0 part [SWAP]
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15894        3386        9945        1311        2561       11848
Swap:         17163        2150       15013

e in /etc/default/grub ha

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=/dev/sda5″
GRUB_CMDLINE_LINUX=””

e

$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume

[RISOLTO] 🙂

Alla fine sono riuscito a portare l'ibernazione al lavoro. Finché non ho una profonda comprensione dell'argomento, preferisco descrivere quello che ho fatto. Quindi

  1. Rimosso completamente pm-utils e uswsusp , quindi sudo update-initramfs -c -k all e reboot

Dopo questo tentativo di ibernazione è finito in un avvio pulito invece di riprendere. Allora

  1. Reinstallato systemd quindi cambiato i nomi dei dispositivi in ​​UUID così come

in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1″

in /etc/initramfs-tools/conf.d/resume

RESUME=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1

poi

$ sudo update-initramfs -c -k all
$ sudo update-grub
$ reboot

Dopo questo sudo systemctl hibernate e riprendere riuscito ma senza schermata di accesso, quindi

  1. In Impostazioni (gui) per l'azione del pulsante di accensione ho assegnato "Ibernazione"

Ora, quando premo il pulsante di accensione, il sistema si iberna e quindi si ripristina tramite la schermata di accesso.

Grazie mille a tutte le persone coinvolte

UPD:ora ho trovato una soluzione ancora migliore:usa il file di scambio

L'ho verificato su una nuova installazione desktop di Ubuntu 18.10 e suppongo che funzioni anche con una nuova installazione desktop 18.04 poiché entrambi usano il file di scambio per impostazione predefinita, ovvero non allocano la partizione di scambio per impostazione predefinita. Ma il file di scambio predefinito è 2Gb indipendentemente dalle dimensioni della memoria di sistema, quindi dovrebbe essere aumentato.

La descrizione completa è ad esempio qui.

Migliore risposta

Ci sono due eccellenti risposte alle domande sull'ibernazione con un po' più di dettaglio qui:

Piccolo Kami della Foresta Antica La risposta a:Ubuntu 18.04 non può riprendere dopo l'ibernazione

Relazionato:Deja-dup continua a chiedere la password?

Zanna La risposta a:come posso ibernarmi su Ubuntu 16.04?

Normalmente non uso Hibernate ma stavo tentando di usarlo di recente mentre cercavo un bug e mi sono reso conto che per funzionare su 18.04 è necessario aggiungere una riga a /etc/default/grub per dirgli da dove riprendere.

Il 16.04 non era necessario per me aggiungere il parametro 'resume=' a grub, quindi penso che la modifica sia avvenuta relativamente di recente.

Probabilmente è meglio usare l'UUID (Universaly Unique Identifier) ​​e puoi usare il programma "Dischi" per scoprire l'UUID della tua partizione di swap e copiarlo e incollarlo da lì.

Usa sudo nano /etc/default/grub da aggiungere alla linea

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

in modo che abbia il parametro del kernel aggiuntivo resume=UUID=theUUIDofyourswappartition tra le virgolette.

Il tuo sarà diverso, ma nel mio caso la linea è:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"

(esci da nano usando Ctrl +x , premi y per apportare le modifiche e invio per accettare il nome del file)

Devi eseguire sudo update-grub per rendere effettive le modifiche, ma al prossimo riavvio dovresti essere in grado di andare in ibernazione senza problemi.

Per quanto ne so, la funzionalità di ibernazione consiste nel riprendere da dove avevi interrotto, quindi non è progettata per andare alla schermata di accesso e richiedere la password.

Non so se puoi cambiarlo in modo che ti chieda la password, ma potrebbe valere la pena porre una domanda separata per vedere se qualcun altro sa cosa fare.

Scambia file

Se hai un file di scambio invece di una partizione di scambio separata, devi anche aggiungere il resume_offset= extra parametro.

Il Wiki di Arch Linux ha un'ottima sezione su questo, ma fondamentalmente il tuo file di scambio dovrebbe trovarsi sulla partizione principale su cui hai installato Ubuntu.

Per scoprire l'offset da inserire in resume_offset= puoi aprire un terminale e digitare

sudo filefrag -v /swapfile

otterrai qualcosa che assomiglia a questo:

ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..   32767:      34816..     67583:  32768:            
   1:    32768..   63487:      67584..     98303:  30720:            
   2:    63488..   96255:     100352..    133119:  32768:      98304:
   3:    96256..  126975:     133120..    163839:  30720:   
etc...

e vuoi il primo numero, nella prima riga che si trova sotto physical_offset (in questo caso 34816 )

Quindi, solo a titolo di esempio, utilizzando l'UUID e l'offset fisico della mia macchina con uno Swapfile, ho modificato il GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" linea da essere

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"

Non dimenticare di eseguire sudo update-grub e riavvia, ma dopo l'ibernazione dovrebbe funzionare correttamente.


Ubuntu
  1. Come eseguire il downgrade a Subversion 1.6?

  2. N Alternativa al terminale Gnome?

  3. Nessuna rete dopo l'aggiornamento a 16.04?

  4. Il mio Bluetooth è disabilitato in Ubuntu 14.10?

  5. Ciclo di accesso Ubuntu 14.04?

Come creare un utente Sudo su Debian

Come installare Tomcat 9 su CentOS 7

Installazione di Ubuntu 20.04 Tomcat

Comando Sudo in Linux

Come ibernare Ubuntu 20.04 LTS fossa focale

bello sudo o sudo bello?