Posso ibernare Linux senza una partizione di swap?


30

Non avevo impostato una partizione di swap sul mio PC, perché a) Ho molta RAM (8 GB) eb) Ho grandi hard disk che non volevo tagliare in piccoli pezzi, quindi le mie partizioni più piccole sono 50 GiB, e sto già usando quelli per i sistemi operativi.

Ora, per andare in letargo, il mio Linux (Ubuntu Jaunty) ha richiesto lo scambio. Avevo una partizione di riserva da 100 GB, quindi l'ho impostato come swap, ma non ne sono soddisfatto. Viene sempre usato solo per l'ibernazione (c'è sempre molta RAM libera e il sistema non va mai a scambiare) ed è anche un po 'grande per lo scambio. Inoltre, alla fine ne avrò bisogno per qualcos'altro.

Come posso ibernare (sospendere su disco) senza una partizione di swap in Ubuntu Jaunty?


3
Ecco una guida ufficiale di debian su ibernazione senza scambio: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Francesco

Anche se disponi di molta RAM, lo scambio può comunque aiutarti ad aumentare le prestazioni, quando lo spazio del codice dell'applicazione non utilizzato (e quindi scambiato) viene utilizzato per la memorizzazione nella cache dei dati.
Michael Schmid,

Risposte:


23

Idea non testata: perché non creare un wrapper per s2disko quale utilità gestisce la sospensione su disco che gestisce un file di scambio (al contrario di una partizione di scambio) e lo elimina al riavvio?

  • Crea il file di scambio: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8 GB)
  • Imposta il file di scambio: mkswap /swapfile
  • Solo quando è necessario impostare la sospensione è possibile attivarlo: swapon /swapfile
  • Quando riprendi puoi disattivarlo: swapoff /swapfile

È possibile riprendere da file di scambio ed è documentato su kernel.org


Avevo anche pensato a un file di scambio, ma non so come passarlo al kernel all'avvio. Posso semplicemente fare "resume = / path / to / file" come farei con il dispositivo a blocchi?
Hanno Fietz,

Vedi il mio aggiornamento con un link alla documentazione su come riprendere dai file di scambio.
Robert Munteanu,

8
Per favore, aggiungi il comando chmod 0600 /swapfile. Un file di scambio leggibile in tutto il mondo è un'enorme vulnerabilità locale.
user4035,

2
So che questo è vecchio, ma userei 'troncare' invece di 'dd'. Non c'è bisogno di scrivere nulla sul disco.
Guido,

4
In realtà, è necessario scrivere una sequenza di qualcosa sul disco, creando il file con risultati troncati swapon: /swapfile: skipping - it appears to have holes..
hlovdal,

9

Probabilmente hai due modi qui,

  1. Prendi in considerazione un file di scambio anziché una partizione di scambio
    • Utilizzo di una chiavetta USB piccola (rispetto alle dimensioni delle partizioni, ma abbastanza grande per la memoria) per la partizione di swap

Qualunque cosa tu faccia, penso che un swapoffe swapondopo il curriculum sarebbe utile.
E, dal momento che non è necessario lo swap, è possibile lasciarlo swapoffdopo il ripristino.

Aggiornamento: il commento evidenzia l'ibernazione USB lenta.
Quindi, controlla nell'ordine numerato: il primo schema ha note per l'ibernazione usando i file di scambio.


Per curiosità,
vorrei sapere perché vuoi andare in letargo quando Linux come Ubuntu possono spegnersi e avviarsi così velocemente.
Sto indovinando

  • carichi il tuo ram da 8 GB con alcune applicazioni e le lasci lì
  • oppure, Wake-up-on-LAN

Ma è davvero così? o hai qualche altro motivo per andare in letargo?

Uso un USB che avvia Ubuntu e chiudo sempre.


2
La sospensione su chiavetta USB sarebbe così lenta .
Tadeusz A. Kadłubowski l'

6
Tendo ad aprire un sacco di cose durante il lavoro e mi piace riavere tutto come era il giorno successivo. Ubuntu è veloce da avviare (in realtà, a me sembra più veloce quindi riprendere), ma Eclipse, Firefox ecc. Potrebbe non esserlo e altre app potrebbero non salvare nemmeno il loro stato attuale alla chiusura.
Hanno Fietz,

2
@Hanno, Firefox ti consente anche di salvare le sessioni fino alla posizione di scorrimento. Quindi, Save-and-Quite è fantastico. Non sono sicuro di cosa Eclipse possa fare.
nik,

3
Firefox non ricorda lo spazio di lavoro in cui si trovava ciascuna delle sue finestre, quindi c'è la minore PITA di doverle ridistribuire al loro posto, dopo aver aspettato che si caricassero tutte. Inoltre, non è possibile ripristinare lo stato di cose come le finestre dei terminali.
intuito il

L'ibernazione di 8 GB di memoria richiederebbe meno di un minuto con questa chiavetta USB .
intuito il

4

Sì, ma non senza alcuno sforzo. Esistono 2 modi diversi per ibernare (sospensione su disco) su Linux:

  1. swswap , che è incluso nel kernel
  2. tuxonice (precedentemente suspend2), che non lo è.

Tuxonice è disponibile come patch per il kernel e ti permetterà di scrivere l'immagine di sospensione in un normale file.

Da Wikipedia :

TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. It was formerly known as 'swsusp'. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:

    * It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image;
    * It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable;
    * Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able;
    * It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website);
    * It is more flexible and configurable (via a /sys/power/tuxonice interface);
    * Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend.
    * It supports encryption by various methods;
    * It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM.

Dato che non è incluso nel kernel predefinito, sfortunatamente dovresti prendere le patch del kernel disponibili per Jaunty e compilare il kernel da solo.

Ci sono alcune istruzioni estese qui , ma potresti voler provare il suggerimento di Robert prima di vagare per questa strada, a meno che tu non sia un esperto nel rotolare le tue immagini del kernel.


2
Bene, ho scritto a mano un numero di kernel (sono stato un appassionato di Gentoo per alcuni anni), ma c'era un motivo per cui sono passato a Ubuntu ...;)
Hanno Fietz,

3

Come hanno discusso Joel e Jeff sul podcast , disattivare lo scambio non è generalmente una buona idea - anche se ne varrebbe la pena (cosa che non lo è) - lo spazio su disco è così incredibilmente economico al giorno d'oggi che lasciarlo attivo non ti costa nulla. Puoi ottenere un concerto a meno di dieci centesimi (centesimi di euro, cioè)!

per citare:

Atwood: Penso che ogni geek ad un certo punto passi attraverso questo processo di pensiero: ho tonnellate e tonnellate di memoria, forse posso girare il mio file di paging. In realtà ho un post sul blog su questo. ... La battuta finale è: non ne vale la pena.

Ascolta il podcast per ulteriori conversazioni (inizia all'incirca al minuto 59) o leggi la domanda su serverfault collegata alla pagina del podcast (domanda 23621). Parlano del file di paging di Windows, ma l'argomento è ugualmente valido per UNIX (sebbene possano gestire la memoria in modo diverso).


1
Bene, non mi dispiace avere lo swap on, infatti, la mia configurazione attuale usa solo quella partizione di ricambio da 100 gig come swap. Quello che mi dispiace, però, è avere una partizione di swap . Lo scambio di 100 concerti è una totale assurdità e non voglio avere una piccola partizione solo per lo scambio. Swapfile è ottimo per me, grazie alle risposte di Robert e Nik, ora so anche come usarli per l'ibernazione, quindi lo userò.
Hanno Fietz,

4
Qual è il problema con una partizione "minuscola"? Btw. Non prenderei in considerazione una partizione da 8 GB minuscola - ho usato installazioni Linux per anni che vivevano su un / partiton che era più piccolo di quello. E il primo PC che ho usato aveva un disco rigido da 20 MB ..
0x89

1
In realtà, Linux gestisce la memoria in modo completamente diverso da Windows. Anche sul mio vecchio laptop con 2 GB di RAM Swap è a malapena utilizzato, a 200 MB scaricati c'è il valore massimo che ho visto
vava

@vava: potresti aver ragione, ho adattato un po 'la mia risposta. Ma il fatto che tu abbia visto 200 MB scaricati sul tuo swap in realtà supporta il mio punto ..
0x89
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.