Un file di swap è un file ordinario: non viene considerato in maniera speciale dal kernel. L'unica cosa che importa al kernel è che non deve avere buchi, e che sia preparato all'uso con mkswap . Deve risiedere su un disco locale, comunque, e non può risiedere su un filesystem montato via NFS per ragioni di implementazione.
La parte sui buchi è importante: il file di swap riserva lo spazio disco in modo che il kernel possa fare velocemente lo swap di una pagina senza dover fare tutti i passi necessari per allocare un settore di un disco ad un file. Il kernel usa semplicemente i settori che sono stati allocati al file; dato che un buco nel file significa che per quel posto nel file non sono allocati settori, non è bene che il kernel provi ad usarli.
Un modo buono per creare il file di swap senza buchi è usando questo comando:
dove /extra-swap è il nome del file di swap e la sua dimensione viene data dopo count=. È meglio che la dimensione sia un multiplo di 4, perché il kernel manda in swap pagine di memoria di 4 kilobyte. Se la dimensione non è un multiplo di 4 l'ultimo paio di kilobyte può restare inutilizzato.$
dd if=/dev/zero of=/extra-swap bs=1024 count=1024
1024+0 records in
1024+0 records out
$
Anche una partizione di swap non è in nessun modo una partizione speciale. La si crea come una qualsiasi altra partizione, l'unica differenza è che viene usata così com'è, e non contiene un filesystem. È una buona idea segnare le partizioni di swap come tipo 82 (Linux swap); in questo modo renderete più chiara la tabella delle partizioni, anche se non è strettamente necessario per il kernel.
Dopo che avete creato un file o una partizione di swap bisogna scrivere al suo inizio una firma che contiene delle informazioni di amministrazione e viene usata dal kernel. Il comando per farlo è mkswap , che si usa così:
Notate che lo spazio di swap non è ancora in uso: esiste, ma il kernel non lo usa per fornire memoria virtuale.$
mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
$
Dovreste stare molto attenti ad usare mkswap , dato che non controlla che il file o la partizione non siano usati per altre cose. Potete facilmente sovrascrivere file e partizioni importanti!. Per fortuna dovete usare mkswap solo quando si installa il sistema.
Il gestore di memoria di Linux limita la dimensione di ciascuno spazio di swap a circa 127 MB (per varie ragioni tecniche, il limite reale è
byte, o 127.6875 megabyte). Potete comunque usare fino a 16 spazi di swap simultaneamente, per un totale di circa 2 GB.5.2