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