Creare file di swap su Linux

Con questa piccola guida descriveremo come creare semplicemente un file di swap da utilizzare sulla nostra Linux Box.

L'utilizzo di un file al posto della partizione di swap nativa di Linux, permette un utilizzo flessibile di questa area di memoria in base alle proprie necessità.

Procediamo…

Con il versatile comando dd creiamo un file vuoto della dimensione desiderata (es 1GiB):

$ dd if=/dev/zero of=/1GiB.swap bs=1G count=1

Adesso spieghiamo le opzioni utilizzate:

  • if=/dev/zero, indichiamo quale file/dispositivo leggere, in questo caso abbiamo utilizzato /dev/zero un dispositivo che restituisce sempre “zero” (0x00, NUL)
  • of=1GiB.swap, indichiamo il file di destinazione
  • bs=1G, indichiamo il byte-size da scrivere, in questo caso 1G (ovvero 1 giga)
  • count=1, indichiamo quanti blocchi leggere

Premiamo invio e dovremmo avere un output simile:

$ dd if=/dev/zero of=/1GiB.swap bs=1G count=1
1+0 record dentro
1+0 record fuori
1073741824 byte (1,1 GB) copiati, 346,477 s, 3,1 MB/s

Accertiamoci prima di creare swap file di notevoli dimensioni, che abbiamo sufficiente spazio su disco!

Il prossimo passo è rendere area di swap il file appena creato. Da root digitiamo:

# mkswap /1GiB.swap

Al termine dell'operazione avremo un output come questo:

# mkswap /1GiB.swap 
Setting up swapspace version 1, size = 1048572 KiB
nessuna etichetta, UUID=8c4f4de8-821c-4347-9063-c39723cc4a97

Adesso diremo al sistema di utilizzare anche questo file come memoria swap. Da root basta digitare:

# swapon 1GiB.swap

Per verificare che tutto ha funzionato a dovere proviamo a leggere il file /proc/swaps:

$ cat /proc/swaps 
Filename             Type            Size    Used    Priority
/dev/dm-1            partition       1048572 900804  -1
/1GiB.swap           file            1048572 0       -2

Da utente root editiamo il file /etc/fstab aggiungendo la seguente riga:

/1GiB.swap  none  swap  defaults  0  0

In questo modo al riavvio della macchina il file di swap verrà utilizzato fin da subito rendendo superfluo l'utilizzo del comando swapon.