Un fichier de swap est un fichier ordinaire ; il n'a rien de particulier pour le noyau. La seule chose qui importe pour le noyau est qu'il n'ait pas de trous, et qu'il soit préparé pour être utilisé avec mkswap. Cependant, il doit résider sur un disque local, pas sur un système de fichiers monté par NFS, ceci pour des raisons d'implantation.
Le point sur les trous est important. Le fichier de swap réserve l'espace disque pour que le noyau puisse rapidement échanger une page mémoire sans avoir à se soucier de tout ce qui est nécessaire pour allouer un secteur du disque à un fichier. Le noyau utilise purement et simplement tous les secteurs qui ont été déjà alloués au fichier. Comme un trou dans un fichier signifie qu'il n'y a pas de secteurs alloués (pour cet emplacement dans le fichier), il ne serait pas bon que le noyau essaie de les utiliser.
Une bonne façon de créer un fichier de swap sans trou est d'utiliser la
commande suivante :
où /extra-swap est le nom du fichier de swap et sa taille est donnée
après count=. Il est préférable que la taille soit un multiple de 4
car le noyau écrit des pages mémoires, qui font 4 Kilo-octets. Si la
taille n'est pas un multiple de 4, les derniers Kilo-octets peuvent être
inutilisés.
Une partition de swap n'a rien de spécial non plus. On la crée comme n'importe quelle partition ; la seule différence est qu'elle est utilisée comme une partition brute, c'est à dire qu'elle ne contiendra pas de système de fichiers. Il est préférable de marquer les partitions de swap comme étant de type 82 (Linux swap) ; ceci rend le listage des partitions plus clair, bien que ce ne soit pas strictement nécessaire pour le noyau.
Après avoir créé un fichier ou une partition de swap, il faut écrire une
signature à son début ; celle-ci contient des informations
d'administration et est utilisée par le noyau. La commande réalisant cette
opération est mkswap, utilisée de la façon suivante :
On notera que l'espace de swap n'est pas immédiatement utilisé : il existe,
mais le noyau ne l'exploite pas encore pour fournir de la mémoire virtuelle.
On doit être très prudent lorsque l'on utilise mkswap, car la commande
ne vérifie pas si le fichier ou la partition est utilisée pour autre
chose. On peut facilement écraser des fichiers importants et des
partitions avec mkswap! Heureusement, on ne doit utiliser
mkswap que lors de l'installation du système.
Le gestionnaire de mémoire de Linux limite la taille de chaque espace de swap à 127 Mo environ (pour diverses raisons techniques, la limite réelle est (4096-10) x 8 x 4096 = 133890048 octets, soit 127,6875 Mo). Cependant, on peut utiliser jusqu'à 16 espaces de swap simultanément, ce qui donne un total de presque 2 Go4.2.