• Diventa Fan!
  • Seguici Twitter
  • Seguici su Google+

Linux/Ubuntu: come creare un file di Swap (ed evitare un’ulteriore partizione)

Scritto in Backtrack, Debian, Fedora, Kubuntu, Linux, Slackware, Ubuntu, Xubuntu - Da Jessica Lambiase - lunedì 14 febbraio 2011 - 8 Commenti

Sembra scontato, ma in realtà non lo è affatto: capita spesso che dopo aver installato Linux… ci si accorga di aver dimenticato di creare la partizione di swap! Effettivamente non è un gran problema, più che altro la maggior parte delle volte diventa un bello spreco di tempo: infatti – soprattutto se Linux è installato su un disco a sè (e se si ha solo quello a disposizione) – bisogna modificare la tavola delle partizioni, ridimensionare la partizione di Linux, creare una partizione estesa, creare un’altra partizione all’interno dell’estesa e creare la partizione di swap… E rischiare anche – se qualcosa va storto – di perdere un bel po’ di dati! Ne vale la pena? E poi, anche se disponete della partizione di Swap, non sarebbe più ordinato memorizzare lo swap come file e non sporcare il disco rigido?

Un metodo alternativo di mettere a disposizione dello spazio di swap in Linux c’è: creare un file apposta, esattamente come succede con Windows (il corrispettivo dello swap, in Windows, è la cosiddetta memoria virtuale). Questo metodo non era esattamente l’ideale fino a qualche anno fa, in quanto per dei dettagli tecnici il kernel non riusciva ad utilizzare efficientemente l’area di swap memorizzata come file. Oggi invece file e partizione di swap si equivalgono alla grande: questa sorta di estensione della RAM va bene in entrambe le salse!

Scommetto che ora volete sapere come si fa a creare un file di swap in Linux, così da risparmiare la creazione di una nuova partizione. Detto, fatto!

  1. Creiamo un file vuoto della dimensione desiderata (nel mio esempio sarà creato da 1 GB (1000 MB, valore del parametro count), ma potrete allargarlo o restringerlo a vostro piacere). Apriamo un terminale e digitiamo:

    sudo dd if=/dev/zero of=/file_swap bs=1M count=1000

  2. Diciamo al sistema di riconoscere il suddetto file come area di swap, e attiviamolo. Sempre da terminale digitiamo

    sudo mkswap /file_swap
    sudo swapon /file_swap

  3. Aggiungiamo ora il file di Swap a /etc/fstab per far sì che il file venga riconosciuto all’avvio (per semplicità utilizzeremo il terminale):

    echo '/file_swap none swap sw 0 0' | sudo tee -a /etc/fstab

Fatto! Abbiamo creato e attivato il nostro file di swap! Per vedere se questo è effettivamente funzionante non ci resta che guardare l’output del comando cat /proc/meminfo | grep SwapTotal: dovrebbe apparirvi una cosa simile a

malefika@darkstar:~$ cat /proc/meminfo | grep SwapTotal
SwapTotal: 1002220 kB
malefika@darkstar:~$

NB: per i sistemi che non dispongono del comando sudo la cosa è equivalente: basterà soltanto digitare il comando “su” all’inizio della procedura e omettere la parola “sudo” da tutti i comandi di cui sopra.

Buon lavoro!

  • http://twitter.com/0ZN3R0L Lorenzo Merlo

    Ottimo, però ho il problema che al momento dell’ibernazione mi si blocca dicendomi che non è stata trovata lo swap e si impalla. D:

  • Fabrizio

    Per chi scegliesse l’opzione dello swap su file, si può anche gestire la dimensione dell’area in modo dinamico. Esistono diversi servizi che gestiscono questa funzionalità, creando il file in modi e tempi diversi, ma su tutti suggerirei il seguente: http://pqxx.org/development/swapspace/
    Ridimensiona, sia incrementando che riducendo, l’area di swap secondo necessità, e risulta quindi essere molto flessibile.
    Saluti!

  • Sandro

    Favolosa questa tecnica.
    Proprio ieri ho pensato di provare a saturare i miei 4 GB di ram aprendo una caterva di applicazioni; e come cominciava a swappare il sistema rallentava da sembrare inusufruibile.
    allora ho prvato a mettere alla prova windows… e quasi quasi mi veniva da piangere: il file paging di windows risulta quindi meglio di area swap che usiamo su sistemi Linux ?
    mi veniva da piangere.
    Proprio adesso sto provando questa tecnica sulla mia gentoo :P
    Mi hai cambiato la vitaaaaaaaaaaa
    è vero… son condizioni estreme; mica uno apre 200 applicazioni pesanti assieme, ma sono un po’ un patito dei benchmarks e ora si ragiona davvero :)
    Grande….. geniale…. complimenti.
    Grazieeee !!!!!
    Sandro.

  • Pingback: SOURCES.LIST Aggregator » Blog Archive » Linux/Ubuntu: come creare un file di Swap (ed evitare un’ulteriore partizione)

  • http://www.chimerarevo.com Jessica Lambiase

    Giustissima osservazione, complimenti!

  • Antani

    Su Linux puoi fare tutto, o quasi, ma se da anni si fa una partizione per lo swap c’è un motivo: a differenza di quanto dici, il disco non viene ‘sporcato’ aggiungendo una partizione, anzi è proprio il contrario: solo facendo una partizione dedicata si è sicuri di usare spazio sul disco contiguo, e avere quindi prestazioni migliori

    • http://www.chimerarevo.com Jessica Lambiase

      Ti dirò, io la vedo in maniera leggermente diversa. Per quello che mi riguarda, e per quello che ho potuto imparare nel tempo, partizionare troppo (e troppo spesso) il disco rigido non porta assolutamente a buoni risultati, specie per l’efficienza della periferica, oltre al fatto che a lungo andare vengono resi inutilizzabili sempre più settori.
      Per quello che riguarda, poi, la contiguità dei dati.. beh, proprio per la struttura del filesystem Linux riesce ad allocare files di dimensioni fissate (e non) in maniera contigua sul disco. Oltretutto il file di swap ha una dimensione prefissa che NON aumenterà: il processo di eventuale uso (e conseguente riscrittura) del file di swap di fatto è una sostituzione degli /0 (con cui è inizializzato) con le varie pagine dei files che ne faranno uso, ragion per cui anche l’eventuale violazione di contiguità in caso di utilizzo è scongiurata, cosa che dà come risultato il non-rallentamento delle operazioni di I/O sulla periferica stessa.

      Questo è il motivo per cui ho suggerito l’allocazione di un file ad una partizione: con FAT o NTFS non mi sarei sognata una cosa del genere, ma EXT e REISER possono, secondo il mio modesto punto di vista.

      Saluti.

  • Pingback: Tweets that mention Linux/Ubuntu: come creare un file di Swap (ed evitare un’ulteriore partizione) - Chimera Revo -- Topsy.com