• Home
  • Ubuntu: aggiungere un file di swap dopo l’installazione

Per una serie di motivi può capitare di trovarsi nella situazione di dover aggiungere un file di swap nella propria distibuzione Ubuntu. Magari abbiamo dimenticato di creare la partizione di swap in fase di installazione, oppure non c’era spazio sufficiente sul disco per approntarla.

In genere usare uno swapfile più grande di 4Gb è abbastanza inutile. Per questo motivo, nella seguente guida vediamo come procedere passo dopo passo alla creazione di un file di swap da 4Gb all’interno della partizione su cui abbiamo montato “/” (la root del sistema).

Sicuri di non avere partizioni swap?

Prima di procedere, accertiamoci di non avere realmente una partizione o un file di swap in uso. Da terminale, digitiamo: free -h

Questo ci restituirà in output la memoria libera, compresa la swap, che nel nostro caso dovrebbe essere pari a 0.
Ecco un esempio:

    total used free shared buff/cache available
Mem: 15G 3.4G 9.5G 286M 2.5G 12G
Swap: 0B 0B 0B

Se la swap è a 0, possiamo procedere. Cerchiamo dunque di capire se abbiamo abbastanza spazio libero per creare il file.
Tramite df -h verifichiamo che la partizione “montata su” / sia sufficientemente libera leggendo “Uso” e “Disponibilità” della stessa.


Creare un file vuoto

Procediamo alla creazione di un file vuoto che useremo successivamente per il nostro scopo. Per farlo, andiamo a creare una directory che verrà usata appositamente dal nostro file. Successivamente creiamo in essa un file –miofileswap – di dimensione pari a 4Gb ed infine rendiamo il medesimo file accessibile al solo utente root.

sudo mkdir -v /var/cache/swap
sudo fallocate -l 4G /var/cache/swap/miofileswap
sudo chmod 600 /var/cache/swap/miofileswap


Convertire il file in swapspace file

Fino ad ora abbiamo solamente creato un file che funzionerà da swap per il nostro sistema. Ma allo stato attuale è un semplice file, niente più. Quindi, procediamo a convertirlo in swapspace tramite il seguente comando:

sudo mkswap /var/cache/swap/miofileswap

In output riceveremo l’UUID del tipo: no label, UUID=6e968505-2abb-450f-eed6-517e74089dbf

Facciamo attenzione che se, al passaggio precedente non abbiamo dato privilegi su questo file al solo root, in questa fase riceveremo un ALERT in merito.

Dunque se in precedenza non l’abbiamo fatto, eseguiamo sudo chmod 600 /var/cache/swap/miofileswap.


Abilitare il file per lo swapping ed il paging

Il nostro file miofileswap può essere finalmente abilitato per paging e swapping. Per farlo digitiamo:

sudo swapon /var/cache/swap/miofileswap


Rendere il file di swap persistente

A questo punto vogliamo che ad ogni riavvio il nostro file venga utilizzato. Dobbiamo quindi aggiungerlo ad fstab.

Come al solito, da terminale:

echo "/var/cache/swap/miofileswap none swap sw 0 0" | sudo tee -a /etc/fstab

in alternativa possiamo semplicemente aggiungere il file “a mano” in fstab, tramite:
sudo nano /etc/fstab

ed aggiungendo alla fine del file
/var/cache/swap/miofileswap none swap sw 0 0

Fate molta attenzione a questo passaggio, perchè se fstab ha qualche errore di sintassi, Ubuntu non eseguirà correttamente il boot. Al riavvio possiamo testare che la swap sia stata correttamente caricata con il semplice comando: sudo swapon che ci restituirà qualcosa del tipo
NAME TYPE SIZE USED PRIO
/var/cache/swap/miofileswap  file 4,0G 0B -1

Il precedente test effettuato con free -h questa volta ci restituirà un risultato di questo tipo

    total used free shared buff/cache available
Mem: 15G 3.4G 9.5G 286M 2.5G 12G
Swap: 4.0G 0B 4.0G


Condividi: