(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
- Rimosso completamente pm-utils e uswsusp , quindi
sudo update-initramfs -c -k all
ereboot
Dopo questo tentativo di ibernazione è finito in un avvio pulito invece di riprendere. Allora
- 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
- 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.