Questa pagina presenta l'ibernazione, detta anche sospensione su disco, STD, o S4, in Debian.
Contents
UEFI / Secure Boot
Il kernel Linux disabilità la possibilità dell'ibernazione quando è in uso il Secure Boot perché non può garantire che il file di swap non sia immodificato. cfr. "Unencrypted hibernation/suspend to swap are disallowed as the kernel image is saved to a medium that can then be accessed."
L'ibernazione con l'avvio sicuro (secure boot) è stata disabilitata a partire dal kernel 4.13, ma può essere abilitata se si disabilita kernel_lockdown; i kernel Debian, però, hanno kernel_lockdown abilitato perciò può essere necessario ricompilare dai sorgenti ma questo approccio non è raccomandato.
È più o meno ancora in fase di lavorazione. Una prima patch è stata rifiutata e di fatto è in corso una seconda revisione.
Configurazione della sospensione e dell'ibernazione in in Debian Jessie
Si può avere l'ibernazione che funziona senza fare nulla (anche senza uswsusp), a patto di avere una partizione di swap grande abbastanza per contenere un'immagine del sistema.
Gli utenti di GNOME potrebbero voler installare l'estensione Hibernate Status Button.
Uswsusp
uswsusp è lo strumento predefinito di ibernazione in Debian Etch. Usa una partizione di swap esistente per salvare lo stato della memoria (vedere /etc/uswsusp.conf).
Si dovrebbe invocare s2disk per ibernare il sistema (non hibernate, non usare direttamente "echo" su /proc/acpi/sleep o /sys/power/disk)
Assicurarsi di aver letto /usr/share/doc/uswsusp/README.Debian.
Ibernazione con il comando hibernate
$ sudo apt install hibernate $ sudo hibernate
Ibernazione senza partizione di swap
Come Ibernare senza partizione di swap.
Debug dell'ibernazione
Funzionalità di test del kernel
A partire da Linux 2.6.25, il kernel ha una nuova funzionalità di test dell'ibernazione: changelog.
Rende possibile testare il codice base dell'ibernazione con l'aiuto dell'attributo /sys/power/pm_test introdotto in una precedente patch per testare la sospensione.
La scrittura di una stringa appropriata in questo file fa sì che il codice di ibernazione funzioni in una delle modalità di test definite come segue:
- freezer
- testa il freeze dei processi
- devices
- testa il freeze dei processi e la sospensione dei dispositivi
- platform
- testa il freeze dei processi, la sospensione dei dispositivi e i metodi di controllo globali della piattaforma(*)
- processors
- testa il freeze dei processi, la sospensione dei dispositivi, i metodi di controllo globali della piattaforma(*) e la disabilitazione delle CPU non di avvio
- core
- testa il freeze dei processi, la sospensione dei dispositivi, i metodi di controllo globali della piattaforma(*), la disabilitazione delle CPU non di avvio e la sospensione dei dispositivi di piattaforma/sistema
*) I metodi di controllo globali della piattaforma sono disponibili solamente su sistemi ACPI e vengono testati solamente se la modalità di ibernazione è impostata a "platform"
Successivamente, se un'ibernazione viene avviata normalmente, il nucleo centrale dell'ibernazione eseguirà le operazioni normali fino al punto indicato dal livello di test specificato.
Poi attende 5 secondi ed esegue le operazioni di ripresa necessarie per la transizione del sistema ad uno stato completamente funzionante.
I messaggi effettivi (riportati per chi usa google) sono hibernation debug: Waiting for 5 seconds e swsusp debug: Waiting for 5 seconds.
Rimuovere la configurazione vecchia
Nella configurazioni precedenti era raccomandato definire il ripristino del device nella configurazione di grub. Tali informazioni vanno rimosse. Controllare e pulire il proprio /etc/default/grub e la variabile GRUB_CMDLINE.
Cambiare o spostare la partizione di swap
In caso sia necessario cambiare la partizione di swap, oltre ad aggiornare /etc/fstab, si deve cambiare anche /etc/initramfs-tools/conf.d/resume ed eseguire
apt-get install --reinstall initramfs-tools
o
update-initramfs -u
Non dimenticarsi che nel file di ripristino non si può fornire l' UUID lvm, in questo caso deve essere fornito il percorso per dev/mapper
RESUME=/dev/mapper/vg0-swap
